[BUG] Enter inserts a newline instead of submitting; keybindings.json override is ignored
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
- Windows 11, Claude Code 2.1.140 (GUI/desktop client).
- Type a message in the chat input.
- Press Enter → a newline is inserted instead of sending.
- 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)
- Created
~/.claude/keybindings.jsonwithChat→"enter": "chat:submit","ctrl+j": "chat:newline". - Fully quit and relaunched → Enter still inserts a newline.
/doctorto validate → not available in this environment.- Checked
~/.claude/settings.jsonand~/.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
- Make the GUI chat input honor
~/.claude/keybindings.json(consistent with the TUI/docs), or - Add an in-app "Send message with Enter" toggle, or
- Document that this client submits with Ctrl+Enter and isn't currently configurable.
Showing cached comments. Read the full discussion on GitHub ↗
4 Comments
As a Japanese IME user on Windows, this issue is especially painful.
When typing in Japanese, pressing Enter can either:
It's easy to misjudge which state you're in, leading to accidental submissions.
If Ctrl+Enter were the submit key, this risk would be completely eliminated.
This is a significant quality-of-life issue for Japanese (and other CJK language) users.
I reproduced the same Enter → newline / Ctrl+Enter → submit behavior on Windows. A forced-termination workaround cleared it on one machine after both a normal app restart and a full Windows restart had failed. I posted the full n=1 observation and caveats here: https://github.com/anthropics/claude-code/issues/79696#issuecomment-5088866794
What I would like to see is a user-selectable option for the "Enter" key. The user selects whether the Enter key generates a new line, in which case the user would click on the already-existing "Send" arrow, or the user can select that the Enter key immediately sends the query and a new line is generated with Shift+Enter.
My preference is for the first option since too I often mistakenly send an incomplete query when I just wanted to generate a new line.
https://github.com/anthropics/claude-code/issues/85013 Raised, then closed as duplicate of https://github.com/anthropics/claude-code/issues/64804