Find where your keyboard shortcuts clash.
Open-source macOS menu bar utility that scans running apps, config files, and system shortcuts to detect keyboard shortcut conflicts. Master-detail split view shows every clash at a glance.
- Scans running apps' menu bar shortcuts via Accessibility API
- Parses Karabiner-Elements, skhd, Keyboard Maestro, and BetterTouchTool configs
- Reads macOS system shortcuts (Spotlight, Mission Control, Screenshots, etc.)
- Classifies conflicts as definite (global vs global) or potential (menu vs menu)
- 720x520 split view: conflict sidebar + detail pane with app icons and source badges
- Zero external dependencies. Pure Apple frameworks.
brew install --cask wunderlandmedia/tap/hotkeyclashTo update later: brew upgrade --cask hotkeyclash.
Grab the latest DMG or ZIP from Releases.
git clone https://github.com/Wunderlandmedia/HotkeyClash.git
cd HotkeyClash
xcodebuild -scheme HotkeyClash -configuration Release buildRequires Xcode 16+ and macOS 14+.
# Local build (skip notarization)
./scripts/build-release.sh --skip-notarize
# Full notarized release (after one-time Keychain setup)
./scripts/build-release.shArtifacts land in build/release/.
| Source | Method |
|---|---|
| Running apps | Accessibility API (AXMenuBar traversal) |
| Karabiner-Elements | ~/.config/karabiner/karabiner.json |
| skhd | ~/.config/skhd/skhdrc |
| Keyboard Maestro | ~/Library/Application Support/Keyboard Maestro/Keyboard Maestro Macros.plist |
| BetterTouchTool | ~/Library/Application Support/BetterTouchTool/btt_data_store.* (SQLite, read-only) |
| macOS system shortcuts | com.apple.symbolichotkeys plist |
Accessibility permission is required to scan running apps. Config files and system shortcuts work without it.
- Hammerspoon, Alfred, Raycast parsers
- Real-time "test this shortcut" mode (press a combo, see which app catches it)
- Export conflict report as Markdown
- Auto-rescan on app launch/quit
- QuietClip -- Privacy-first clipboard manager for macOS
- WunderType -- AI text correction via keyboard shortcuts
Issues and pull requests welcome. Each config file parser is a self-contained method in ConfigFileScanner.swift, making it straightforward to add support for new tools.