claude-code - 💡(How to fix) Fix keybindings.json not working in desktop app (macOS) [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#48147Fetched 2026-04-15 06:31:50
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Author
Timeline (top)
labeled ×4commented ×1

Custom keybindings defined in ~/.claude/keybindings.json have no effect in the Claude Code desktop app on macOS. They only work in the CLI.

Root Cause

Custom keybindings defined in ~/.claude/keybindings.json have no effect in the Claude Code desktop app on macOS. They only work in the CLI.

Code Example

{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "cmd+shift+x": "chat:cycleMode"
      }
    }
  ]
}
RAW_BUFFERClick to expand / collapse

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

extent analysis

TL;DR

The custom keybindings defined in ~/.claude/keybindings.json may not be properly loaded or handled by the Claude Code desktop app on macOS, requiring a potential fix or workaround to enable their functionality.

Guidance

  • Verify that the ~/.claude/keybindings.json file is correctly formatted and located, as the provided example suggests it should work in the CLI.
  • Check if there are any desktop app-specific settings or configurations that might override or affect the custom keybindings.
  • Consider reporting this issue to the developers, as the expected behavior is for the keybindings.json to be respected by the desktop app.
  • Test the default Shift+Tab binding and the built-in Cmd+Shift+M shortcut in the desktop app to see if they behave as expected, which might provide more insight into the issue.

Example

No code snippet is provided, as the issue seems to be related to configuration or app behavior rather than code.

Notes

The issue might be specific to the macOS version or the Claude Code desktop app version, and more information about the app's configuration or settings could be necessary to resolve the issue.

Recommendation

Apply workaround: Report the issue to the developers and await a fix, as the custom keybindings are expected to work in the desktop app.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

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.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix keybindings.json not working in desktop app (macOS) [1 comments, 2 participants]