[BUG] keybindings.json ignored in Claude desktop app — Enter/Shift+Enter always submit

Open 💬 15 comments Opened Feb 11, 2026 by jnikolaidis

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.json config should be respected in the Claude desktop app, just as it is in the CLI

Error Messages/Logs

Steps to Reproduce

  1. Create ~/.claude/keybindings.json with 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"
      }
    }
  ]
}
  1. Open Claude Code in the Claude desktop app (not terminal or VS Code)
  2. Type a message in the chat input
  3. Press Enter — it submits the message instead of inserting a newline
  4. Press Shift+Enter — it also submits the message instead of inserting a newline
  5. 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)

View original on GitHub ↗

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