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

  1. Add a custom binding in ~/.claude/keybindings.json:
{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "cmd+shift+x": "chat:cycleMode"
      }
    }
  ]
}
  1. Restart the desktop app
  2. Press Cmd+Shift+X in the chat input — nothing happens

Additional observations

  • The default Shift+Tab binding for chat:cycleMode also doesn't work in the desktop app (it behaves like regular Tab)
  • The built-in Cmd+Shift+M opens a mode selection menu but does not cycle — you still need arrow keys or mouse to pick a mode
  • A true cycleMode action (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

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗