[BUG] keybindings.json ignored in Claude desktop app — Enter/Shift+Enter always submit
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
The ~/.claude/keybindings.json configuration file is completely ignored when running Claude Code through the Claude desktop app on macOS.
Both Enter and Shift+Enter submit the message, regardless of the keybindings config. The config sets "enter": null to unbind Enter from submit and "ctrl+enter": "chat:submit" to use Ctrl+Enter instead, but this has no effect.
The file is valid JSON, correct encoding, located at the correct path (~/.claude/keybindings.json), and verified with python3 -c "import json; json.load(open(...))".
keybindings.json contents:
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"enter": null,
"ctrl+enter": "chat:submit"
}
}
]
}
What Should Happen?
- Enter should insert a newline (unbound from submit via
"enter": null) - Ctrl+Enter should submit the message (bound via
"ctrl+enter": "chat:submit") - Shift+Enter should insert a newline
- The
~/.claude/keybindings.jsonconfig should be respected in the Claude desktop app, just as it is in the CLI
Error Messages/Logs
Steps to Reproduce
- Create
~/.claude/keybindings.jsonwith the following content:
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"enter": null,
"ctrl+enter": "chat:submit"
}
}
]
}
- Open Claude Code in the Claude desktop app (not terminal or VS Code)
- Type a message in the chat input
- Press Enter — it submits the message instead of inserting a newline
- Press Shift+Enter — it also submits the message instead of inserting a newline
- The keybindings.json config appears to be completely ignored
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.39 (Claude Code)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
Terminal/Shell note: Running Claude Code inside the Claude desktop app on macOS (not a standalone terminal). The desktop app is not listed in the Terminal/Shell dropdown, so "Other" was selected.
This issue may be that the Claude desktop app simply does not read ~/.claude/keybindings.json at all. Either the desktop app should respect the keybindings config, or there should be a separate keybinding setting within the desktop app itself.
OS: macOS (Darwin 25.3.0)
This issue has 15 comments on GitHub. Read the full discussion on GitHub ↗