π Description
KeyMaster Pro is a powerful desktop application for Windows built around a single idea: everything is a rule. Instead of juggling separate screens for remapping, macros, layers, and text expansions, you build one rule at a time in a unified Rule Builder:
[ TRIGGER ] + [ CONDITIONS ] β [ ACTIONS ]
A key press, mouse click, typed abbreviation, or tap-hold fires a rule. Optional conditions (active window, active layer) decide whether it runs. Then one or more actions execute β remap a key, run a macro, snap a window, control media, and more.
Built with Rust + Tauri v2 + React 19, it runs at the OS level using SetWindowsHookEx to intercept and process input in real time, with zero input logging and a tiny memory footprint (~23 MB RAM, <1% CPU).
> Looking for a free, source-available alternative to AutoHotkey, PowerToys Keyboard Manager, or Key Manager? You found it.
βοΈ How it compares
KeyMaster Pro is the only Windows tool that combines a unified rule system (trigger β condition β action) with a no-code GUI β covering remapping, macros, layers, text expansion, window management, and per-app profiles in one place.
| Feature | KeyMaster Pro | PowerToys KBM | AutoHotkey | kanata | SharpKeys | Espanso |
|---|
| Unified Rule Builder (no code) | β
| β | β | β | β | β |
| Key remapping | β
| β
| β
| β
| β
| β |
| Mouse remapping | β
| β | β
| β οΈ | β | β |
| Macro recorder (key + mouse) | β
| β | β
| β οΈ | β | β |
| Text expansions | β
| β | β
| β | β | β
|
| Layers (toggle + hold, QMK-style) | β
| β | β οΈ | β
| β | β |
| Tap-Hold (home-row mods) | β
| β | β οΈ | β
| β | β |
| Per-app conditions (window match) | β
| β | β οΈ | β οΈ | β | β |
| Window management (snap/min/max) | β
| β | β
| β | β | β |
| Media keys & volume control |
> [!NOTE]
> PowerToys users have requested per-app remapping (#6756), mouse remapping (#1475), and text expansion (#5074) for years β KeyMaster Pro ships with all three today, composable inside a single rule.
β¨ Features
Everything lives inside the Rule Builder β a single modal where you compose a rule from three parts. No more flipping between disconnected screens.
π― Triggers (what fires a rule)
- Key Down / Key Up β any keyboard key or shortcut
- Mouse Down / Mouse Up β left, right, middle, X1, X2 buttons
- Tap-Hold β tap for one action, hold for another (home-row mods, kanata-style)
- Typed Text β type an abbreviation to fire an expansion
β‘ Actions (what happens when a rule fires)
| Category | Actions |
|---|
| Remap | Remap Key, Remap Mouse Button |
| Input | Type Text, Run Macro (recorded key + mouse steps with delays) |
| Layers | Toggle Layer, Hold Layer (while key is held) |
| System | Volume (mute / up / down), Media Key (play / next / prev / stop), Sleep, Monitor Off |
| Windows | Snap left / right / center, Minimize, Maximize, Close, Focus Process Window |
| Launch | Launch Application |
π§© Conditions (optional β when a rule should apply)
- Layer Active β rule only fires while a specific layer is on
- Window Match β rule only fires when the active window matches a process name and/or window title
- Virtual Desktop β rule scoped to a specific virtual desktop
π Per-App Profiles
Group rules into profiles that auto-switch based on the focused application's window. Different rules for your editor, browser, and games β automatically.
π₯ Layers (QMK-style)
Toggle or hold a layer to completely change what your keys do β the same keycap can do different things in different layers. Layers are first-class citizens: toggle them from any rule or hold a key to keep a layer active only while pressed.
π Two-Process Architecture
A lightweight background daemon (Rust) handles the low-level input hooks and rule execution, while the GUI (React) stays responsive. Kill the UI and your remaps keep working.
Plus
| Feature | Description |
|---|
| π§ Onboarding Wizard | Built-in starter examples for new users β get a working remap in seconds |
| π Real-time Stats | CPU, RAM, latency, and keystroke counter in the status bar |
| π Auto-updates | Update in-app via Tauri updater (or winget upgrade) |
| π Multilingual | English and Russian interface (i18next) |
| π¨ Modern UI | Radix UI + TailwindCSS + Lucide icons, dark/light theme |
| π Per-session Logs | Debug logs for diagnosing rule behavior |
| π‘οΈ System Tray | Minimize to tray, autostart with Windows |
π₯ Download
Option A: WinGet (recommended)
Install KeyMaster Pro with a single command on Windows 10/11:
winget install KeyMasterPro.KeyMasterPro
- Automatically updates with
winget upgrade KeyMasterPro.KeyMasterPro
- No manual download needed β WinGet handles everything
> Requires WinGet (pre-installed on Windows 10 1709+ and Windows 11).
Option B: Installer
β‘οΈ Go to Releases and download KeyMaster-Pro_x.x.x_x64-setup.exe
- No dependencies required β just download and run
- WebView2 Runtime is pre-installed on Windows 10/11 (auto-downloaded if missing)
- The installer supports auto-updates via GitHub
Option C: Portable
Soon β a portable .zip version is planned for a future release.
π οΈ Build from Source
Prerequisites
- Node.js 18+ and pnpm (
npm i -g pnpm)
- Rust 1.70+ (rustup.rs)
- Visual Studio Build Tools β workload:
Microsoft.VisualStudio.Workload.VCTools
Steps
# Clone
git clone https://github.com/zsanya322-maker/keymaster-pro.git
cd keymaster-pro
# Install frontend dependencies
pnpm install
# Run in dev mode
pnpm tauri dev
# Build production binary (.exe)
pnpm tauri build
The built installer will appear in src-tauri/target/release/bundle/nsis/.
ποΈ Tech Stack
| Layer | Technology |
|---|
| Backend | Rust + Tauri v2 |
| Frontend | React 19 + TypeScript 5 + Vite 6 |
| UI | Radix UI + TailwindCSS 4 + Lucide Icons |
| State | Zustand 5 |
| i18n | i18next (EN + RU) |
| Input Hooks | SetWindowsHookEx (WH_KEYBOARD_LL, WH_MOUSE_LL) via windows-rs |
| IPC | Named Pipes + JSON-RPC 2.0 |
| Storage | Local JSON files (%APPDATA%\KeyMaster Pro\) |
π‘οΈ Security & False Positives
Since KeyMaster Pro uses low-level Win32 APIs to intercept and remap input (SetWindowsHookEx), some antivirus software may flag it as a potential keylogger or input injection tool. This is a false positive.
Our security commitments:
- No input logging β The app does not save, record, or transmit your keystrokes. All processing happens in real time, in memory.
- Offline-first β All configurations are stored locally as JSON in
%APPDATA%. No cloud, no telemetry.
- No hidden network activity β The only network request is checking for updates via HTTPS to GitHub.
If Windows Defender or your antivirus blocks the app, add KeyMasterPro.exe to the exclusions list.
πΊοΈ Roadmap
| Status | Feature |
|---|
| β
Done | Unified Rules Engine & Rule Builder, key/mouse remapping, macros, layers (toggle/hold), tap-hold, text expansions, per-app profiles, window management, media keys & volume, system actions, onboarding wizard, system tray, autostart, dark/light theme, auto-updates, per-session logs, winget distribution |
| π Next | Portable .zip build, code signing certificate, settings UI polish |
| π Planned | Rhai scripting engine, browser extension, plugin system |
π€ Contributing
Contributions are welcome! Here's how you can help:
- Fork the repo
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit:
git commit -m 'Add amazing feature'
- Push:
git push origin feature/amazing-feature
- Open a Pull Request
Found a bug? Open an issue.
π¬ Community
π License
This project is licensed under the Fair Core License (FCL) β the source code is open, but protected from competitive use. See LICENSE for details.
On January 1, 2030, the license automatically converts to MIT.
Built with β€οΈ using Rust, Tauri, and React
Keywords: keyboard remapping Windows, key rebinding tool, AutoHotkey alternative, PowerToys alternative, macro recorder, text expansion, input automation, Tauri desktop app, Rust Windows utility, keyboard macro, mouse remapping, key mapping software