KeyMapPlus is an open-source macOS keyboard and mouse remapping app with a native SwiftUI interface. It is built for direct distribution through GitHub Releases as an unsigned DMG or from source, with no Apple Developer Program membership required.
KeyMapPlus uses
CGEventTapand CoreGraphics in the signed-in user's session. It does not use DriverKit, a privileged helper, a system extension, virtual HID, XPC services, or notarization.
- Keyboard, consumer-key, and mouse-button mapping rules.
- Single, double, triple, and hold gestures.
- App, input-source, keyboard-layout, variable, and layer conditions.
- Built-in browser navigation, mouse productivity, JIS-to-ANSI, Fn, and Hyper presets.
- Profile management, JSON import/export, layout detection, Event Viewer, logs, and a menu-bar control surface.
- First-launch permission setup for Accessibility and Input Monitoring, followed by an automatic restart.
- A panic hotkey:
Command-Control-Option-Shift-Escapedisables mapping immediately.
- macOS 14 or later.
- Accessibility permission.
- Input Monitoring permission.
On first launch, KeyMapPlus only shows its permission setup window. If Input Monitoring does not list KeyMapPlus automatically, use the + button in System Settings > Privacy & Security > Input Monitoring and select the app bundle shown by the onboarding screen.
- Download an unsigned DMG from GitHub Releases.
- Approve the app in Gatekeeper.
- Complete the permission setup window.
swift test
swift build --product KeyMapPlusAppCreate an unsigned release DMG:
scripts/package-unsigned-dmg.sh 0.1.0The generated .app and DMG are written to dist/.
- Input is session-level, so device-specific grabbing and per-device mappings are not supported.
- Double and triple taps are observed and dispatched after the gesture window; physical events cannot be safely delayed and replayed without virtual HID.
- Secure Input can prevent reliable capture or remapping.
See unsigned runtime limitations for the full behavior contract.
Bug reports, usability feedback, documentation improvements, and pull requests are welcome. Please run swift test before opening a pull request.
KeyMapPlus is licensed under the GNU General Public License v3.0.



