Battuta for macOS
How to Add Mechanical Keyboard Sounds on Mac
Want mechanical keyboard sounds on your Mac without changing your physical keyboard? Battuta is a free, open-source menu bar app that adds responsive press and release sounds across browsers, editors, chat apps, and other macOS software.
Free and open source · MIT License · Updated 2026-08-28
Step-by-step setup
Install Battuta on macOS
- 01
Download the current DMG
Download Battuta from the official Wormforce GitHub release. The macOS build is a Universal app for Apple silicon and Intel Macs.
- 02
Move Battuta to Applications
Open the DMG, drag Battuta into the Applications folder, and launch it from Applications rather than from the disk image.
- 03
Allow the first launch
The current build is self-signed and not notarized. Control-click Battuta, choose Open, and confirm. If macOS still blocks it, use System Settings → Privacy & Security → Open Anyway.
- 04
Enable Input Monitoring
Open System Settings → Privacy & Security → Input Monitoring and enable Battuta. Quit and reopen the app if macOS asks you to do so.
- 05
Choose a sound profile
Open Battuta from the menu bar, select one of the 21 keyboard profiles, and adjust keyboard and pointer volume independently.
A keyboard sound app that works across macOS
Battuta listens for physical key-down and key-up events, then plays matching recordings with low latency. It runs from the menu bar, so the same keyboard profile works while you type in Safari, Chrome, VS Code, Terminal, Notes, or a chat app.
The selected samples are preloaded as 48 kHz PCM audio. A keystroke therefore triggers an in-memory lookup and playback instead of reading or converting a file in the input path.
- 21 keyboard profiles and five separate pointer-click styles
- Distinct press, release, keyboard-row, and large-key samples
- DIY editor for per-key recordings and reusable sound packs
- Local typing trends without storing the text you type
Why Battuta needs Input Monitoring
macOS only lets an app receive system-wide keyboard events after you grant Input Monitoring permission. Battuta needs those events so a key can make a sound even when another app is in front.
That permission is broad at the operating-system level, but Battuta uses only hardware key codes, button identifiers, and down/up state. It does not read characters, passwords, pointer location, or the contents of the active window. Aggregated typing statistics stay on the device, and the source code is public for inspection.
Choose a profile or make your own
Start with a built-in mechanical profile, then tune the volume and natural variation. Press and release recordings are handled separately, which makes the result feel less like a single sound pasted onto every key.
The DIY editor accepts common audio formats and lets you assign a general sound, keyboard rows, large keys, or an individual key. Completed packs can be exported as a .simuboardpack file and moved to another computer.
Troubleshooting
Common macOS questions
Battuta opens, but typing makes no sound
Confirm that Battuta is enabled under Input Monitoring, then quit and reopen it. Also check the app's keyboard volume, the selected macOS output device, and system volume.
macOS says the app cannot be opened
Use the copy downloaded from the official GitHub release, Control-click it in Applications, and choose Open. If needed, approve that same app under Privacy & Security. This extra step is required because the current DMG is not notarized.
Input Monitoring is on, but Battuta still asks for access
Toggle Battuta off and back on in Input Monitoring, then fully quit and relaunch it. macOS may not apply a newly granted permission to an already running process.
Can Battuta start automatically?
Yes. Enable launch at login in Battuta after you have completed the first launch and permission setup.