BindBoard is a macro keyboard app for Windows. Assign actions to keys on a second keyboard — your main keyboard keeps working as normal.
Built on Windows Raw Input API — no drivers, no third-party software required.
| Keyboard setup | Bindings |
|---|---|
![]() |
![]() |
| Launch | Theme |
|---|---|
![]() |
![]() |
- 🎹 Per-device key interception — keys from the second keyboard trigger actions; your main keyboard is untouched
- 🗂 Modes — create multiple binding profiles and switch between them with a single key press
- 🖥 Mode overlay — a brief on-screen hint appears whenever you switch modes
- 🚀 Action types — open a URL, launch a program or shortcut, start a Steam game, play a sound via Soundpad, or switch mode
- 🔍 App & game picker — browse installed programs and Steam games by name, no manual path or ID entry needed
- 🌐 English & Russian UI — language is detected automatically from your system locale
- 🔔 System tray — closing the window minimizes to tray; the listener keeps running in the background
- Go to Releases
- Download
BindBoard.zip - Extract to any folder
- Run
BindBoard.exe
Requires Windows 10/11 with WebView2 Runtime (already included in Windows 11)
Requirements: Python 3.10+, Windows 10/11
git clone https://github.com/Mark-mark-228/BindBoard.git
cd BindBoard
pip install -r requirements.txt
python app.py- Launch BindBoard
- Go to Keyboard → click Refresh → select your second keyboard → click Apply layout
- Go to Bindings → click any key → choose an action on the right → click Save
- Go to Launch → click Start
Your keys are live!
Modes let you have multiple sets of bindings on the same physical keys — for example one profile for music control and another for gaming.
- Click + Mode to create a new profile
- Assign any key the "Switch mode" action to jump between profiles
- A brief overlay appears on screen whenever the mode changes
pip install -r requirements.txt
pyinstaller BindBoard.spec --noconfirmThe output folder will be at dist\BindBoard\.
BindBoard/
├── app.py — backend: Raw Input, bindings engine, tray, API
├── app.html — frontend: single-page app (HTML / CSS / JS)
├── bindboard.ico — app icon
├── BindBoard.spec — PyInstaller build config
├── requirements.txt — Python dependencies
├── screenshots/ — README screenshots
└── assets/ — UI icons and resources
| Package | Purpose |
|---|---|
pywebview |
App window (Chromium WebView2) |
pystray |
System tray icon |
Pillow |
Icon processing |
pyinstaller |
EXE build (dev only) |
MIT — free to use, modify, and distribute.



