[BUG] Enter inserts a newline instead of submitting; keybindings.json override is ignored

Open 💬 1 comment Opened Jun 2, 2026 by athornbro

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?

In the chat input, pressing Enter inserts a newline instead of submitting. To send, I must press Ctrl+Enter. This is the inverse of the documented default (chat:submit = enter), and it cannot be changed via ~/.claude/keybindings.json — the override is ignored.

What Should Happen?

Enter submits (chat:submit); Ctrl+J inserts newline; a keybindings.json override takes effect after restart.

Error Messages/Logs

No stack trace or error output is produced — Enter silently inserts a newline
instead of submitting (no crash, no console error).

Relevant diagnostics:

$ claude --version
2.1.140 (Claude Code)

$ /doctor
/doctor isn't available in this environment.   # cannot validate keybindings load

OS: Windows 11 Pro (build 10.0.26200.0)
Node: v24.14.1

~/.claude/keybindings.json  (override created, no effect after full restart):
{
  "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
  "$docs": "https://code.claude.com/docs/en/keybindings",
  "bindings": [
    { "context": "Chat",
      "bindings": { "enter": "chat:submit", "ctrl+j": "chat:newline" } }
  ]
}

~/.claude/settings.json  (no send-key / newline setting present):
{
  "autoUpdatesChannel": "latest",
  "theme": "dark",
  "permissions": { "defaultMode": "bypassPermissions" }
}

Observed: Enter -> newline; Ctrl+Enter -> submit (inverse of documented
chat:submit=enter default). keybindings.json override is not honored by this client.

Steps to Reproduce

Steps to Reproduce

  1. Windows 11, Claude Code 2.1.140 (GUI/desktop client).
  2. Type a message in the chat input.
  3. Press Enter → a newline is inserted instead of sending.
  4. Press Ctrl+Enter → the message sends.

Claude Model

Opus

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.140

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

What I Tried (all unsuccessful)

  1. Created ~/.claude/keybindings.json with Chat"enter": "chat:submit", "ctrl+j": "chat:newline".
  2. Fully quit and relaunched → Enter still inserts a newline.
  3. /doctor to validate → not available in this environment.
  4. Checked ~/.claude/settings.json and ~/.claude.json → no send-key/newline setting exists.

Likely Root Cause

Specific to the GUI/desktop client: the observed mapping (Enter = newline, Ctrl+Enter = submit) doesn't match the default keybinding table, /doctor is absent, and the keybindings override is ignored — strongly suggesting this client's chat input handles Enter/submit internally and does not consult ~/.claude/keybindings.json for chat:submit/chat:newline. Result: no user-facing way to make Enter submit.

Suggested Fixes

  1. Make the GUI chat input honor ~/.claude/keybindings.json (consistent with the TUI/docs), or
  2. Add an in-app "Send message with Enter" toggle, or
  3. Document that this client submits with Ctrl+Enter and isn't currently configurable.

BUG_REPORT_enter.md

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗