Windows 10 / 11 Built with Rust v0.2.0 MIT β€” Free & Open Source

Show your audience exactly what you press

KeyOverlay displays every keystroke, shortcut, click, and scroll in a clean, always-on-top overlay β€” so viewers can follow along instead of guessing what just happened.

Why KeyOverlay?

Made for anyone who demonstrates software on a screen. Your hands are on the keyboard β€” KeyOverlay makes sure the screen tells that story.

⚑

Lightweight by design

A small native Rust application with no runtime, no browser engine, and no background bloat. It idles quietly and stays responsive during the fastest typing bursts.

πŸ‘»

Never in your way

The overlay is transparent, always on top, and fully click-through. It never steals focus, never blocks a click, and never interferes with the application you're demonstrating.

🎯

Built for recordings

Crisp, high-contrast key pills read clearly at any capture resolution, and the overlay scales for high-DPI displays β€” so shortcuts stay legible in the final video, not just on your monitor.

πŸ”“

Free and open source

MIT-licensed with the full source on GitHub. Use it in classrooms, companies, and commercial videos. Audit it, fork it, improve it β€” contributions are welcome.

Best for…

If people watch your screen, KeyOverlay earns its place in the corner of it.

Everything it can do

Every feature is optional and adjustable from the built-in settings window β€” no config files to hand-edit.

⌨️

Keystroke display

Every key appears as a large, readable pill the moment you press it. Modifier combos like Ctrl + Shift + S are grouped and ordered consistently, and held keys stay visible until released.

πŸ–±οΈ

Mouse visualization

An animated mouse icon highlights left, middle, and right buttons as you click, with directional arrows for scroll-wheel activity β€” optional event text included.

β­•

Cursor highlight

Six cursor themes β€” rings, dots, and glows β€” follow your pointer so viewers never lose it. Adjustable size, thickness, opacity, glow, and an auto-hide timer for when the mouse is idle.

πŸ’₯

Click animation

An expanding ring pulses outward on every click, making mouse actions unmistakable in recordings β€” even at a glance in a video thumbnail.

πŸ”Š

Keystroke sounds

Optional audio feedback with four generated sound packs β€” Typewriter, Mechanical, Soft Click, and Pop β€” with adjustable volume. No audio files needed; the sounds are synthesized in-app.

🎨

Themes & appearance

Dark and light themes out of the box, plus a fully custom mode with your own colors for keys, modifiers, mouse, and scroll events. Font size, opacity, scale, and pill rounding are all tunable.

πŸ“

Flexible positioning

Anchor the overlay to any corner, edge, or the center of the screen β€” or place it pixel-perfectly with manual X/Y coordinates. Margins, size, and display-scaling baselines keep it where you put it.

πŸ’Ύ

Settings that stick

Every option is saved automatically and restored on the next launch. Settings are validated on load, so an old or damaged config file can never break the app.

Cursor highlight themes

Open source, no strings attached

KeyOverlay is released under the MIT license. That means it's free for personal, educational, and commercial use β€” forever.

πŸ¦€

Native Rust workspace

Four focused crates β€” core, input, overlay, and app β€” with a test suite covering key formatting, positioning math, settings validation, and animation timing.

πŸ›‘οΈ

Nothing leaves your machine

Input is only used to draw the overlay. There is no network code, no telemetry, and no logging of what you type. The source is right there to verify it.

🀝

Contributions welcome

Found a bug or want a feature? Open an issue or a pull request on GitHub. CI checks formatting, linting, tests, and release builds on every change.