keybindings.json not working in desktop app (macOS)
Resolved 💬 3 comments Opened Apr 14, 2026 by RinkuLabs Closed Apr 18, 2026
Description
Custom keybindings defined in ~/.claude/keybindings.json have no effect in the Claude Code desktop app on macOS. They only work in the CLI.
Steps to reproduce
- Add a custom binding in
~/.claude/keybindings.json:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"cmd+shift+x": "chat:cycleMode"
}
}
]
}
- Restart the desktop app
- Press
Cmd+Shift+Xin the chat input — nothing happens
Additional observations
- The default
Shift+Tabbinding forchat:cycleModealso doesn't work in the desktop app (it behaves like regular Tab) - The built-in
Cmd+Shift+Mopens a mode selection menu but does not cycle — you still need arrow keys or mouse to pick a mode - A true
cycleModeaction (press once to switch to next mode) would be very useful for keyboard-driven workflows
Expected behavior
keybindings.json should be respected by the desktop app, or at minimum chat:cycleMode should have a working default shortcut that cycles through modes without requiring a menu interaction.
Environment
- macOS (Darwin 24.6.0)
- Claude Code desktop app (latest version)
- Claude Opus 4.6 1M
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗