opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

OBS plugin for showing keyboard, mouse and gamepad input on stream
GitHub RepoImpressions3

Project Description

View on GitHub

Show Your Inputs on Stream Without Pointing a Webcam at Your Keyboard

If you've ever watched a speedrunner or a fighting game player and wondered how they're pulling off a specific combo, you've probably wished you could see their inputs in real time. Maybe you're the one streaming and you want your viewers to follow along, but the thought of rigging up a second camera aimed at your desk sounds like a hassle. That's exactly the problem input-overlay solves.

What It Does

input-overlay is an OBS Studio plugin that displays your keyboard, mouse, and gamepad input directly on your stream. It's available for OBS Studio on Windows and Linux, both 64-bit. Instead of capturing a physical camera feed of your peripherals, the plugin reads your actual input events and renders them as an overlay you can position however you like within your scene.

Under the hood, it leans on a few well-established libraries. Input capture is handled by libuiohook, networking and web-related functionality by mongoose, and gamepad support comes by way of SDL2. The plugin itself is distributed as binaries through the project's releases page, so you don't need to build anything from source unless you want to.

Why It's Cool

  • It solves a real streaming problem without extra hardware. You don't need a second camera, a phone mount, or any physical setup. The plugin hooks into your system's input events and draws them as part of your OBS scene. That's a meaningful simplification for anyone who's tried the camera-over-the-keyboard approach and hated the result.

  • Config creation gets its own tool. The project ships a browser-based config creation tool (hosted on the project's GitHub Pages site) that lets you build your overlay layouts. This is a smart decision, because hand-authoring JSON configs for every key position would be tedious. Having a visual tool lowers the barrier considerably.

  • There's a converter for old presets. If you've been using input-overlay for a while and have old .ini presets lying around, there's a converter tool to migrate them to JSON. It's marked as work-in-progress, but the fact that it exists at all shows the maintainers care about not leaving existing users behind when formats change.

  • Cross-platform without much fanfare. Windows and Linux support, 64-bit, both handled. The README doesn't make a big deal of it, but cross-platform input hooking is genuinely fiddly work, and the fact that it's just stated as a baseline feature is worth noting.

  • The dependency choices are sensible. libuiohook handles low-level input capture across platforms, SDL2 covers gamepads (which is basically the standard choice), and mongoose handles the web-facing bits. Nothing exotic, nothing overengineered. Just tools that do their jobs.

How to Try It

  1. Head to the releases page and grab the binary for your platform (Windows or Linux, 64-bit).

  2. Follow the installation instructions on the wiki. The wiki is the canonical source for setup details, so don't skip it.

  3. Once installed, use the config creation tool to build your overlay layout. This runs in your browser, so there's nothing extra to install.

  4. If you have old .ini presets, run them through the converter tool to bring them into the JSON format. It's marked WIP, so expect some rough edges.

  5. Add the input overlay source to your OBS scene and position it however you like.

The repository lives at github.com/univrsal/input-overlay.

Final Thoughts

input-overlay is a focused tool that does one thing well: getting your inputs onto the screen without hardware gymnastics. It's clearly built by someone who understands the streaming use case, and the supporting tools (config creator, preset converter) show attention to the actual workflow rather than just the core functionality. If you stream games where your inputs matter to the audience—speedruns, fighting games, rhythm games, or anything technical—this is worth trying. The wiki is your friend here; the README itself is lean, so plan to spend some time there. For everyone else, it's a good example of a plugin that stays in its lane and executes cleanly.


Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: 3c1f0e86-4de1-45c8-9a75-b14878c11b1dLast updated: September 10, 2026 at 05:44 AM