[FEATURE] Allow swapping Enter/Shift+Enter behavior in the VS Code extension's chat input
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
In the VS Code extension's chat panel, Enter submits the message and Shift+Enter inserts a
newline. For anyone who regularly composes multi-line messages (e.g. pasting structured
requests, code, or multi-part instructions), the newline action is used far more often than
submit — yet it's the one that requires an extra modifier key, while the rare action (submit)
is on the plain, easiest-to-hit key.
This also causes accidental sends: it's easy to hit plain Enter out of habit while still in
the middle of composing a multi-line message, sending it before it's finished.
This was previously raised in #80892 (closed as "not planned"), which focused on the extension
not honoring ~/.claude/keybindings.json the way the CLI does. This request is narrower: just
the ability to reverse which key does which action in the chat input specifically.
Proposed Solution
Add a setting (either a dedicated VS Code setting like claude.chatInput.swapEnterKeys, or by
having the extension honor ~/.claude/keybindings.json for chat input the way the CLI already
does) that lets users swap the two behaviors: Enter -> newline, Shift+Enter -> submit.
Alternative Solutions
- Using an alternative newline shortcut (if one exists, e.g. Ctrl+J) alongside the current
Enter=submit behavior — this only adds a second way to insert a newline, it doesn't remove
the risk of accidentally submitting with plain Enter while still composing.
- Being more careful not to hit Enter by accident — not a real fix, just constant manual
attention to work around a UI default that fights how the message is actually being typed.
- Requesting the extension honor ~/.claude/keybindings.json for chat input the same way the
CLI does (this was the ask in #80892) — this would be a broader fix that could also solve
this, but that specific request was already closed as "not planned."
Priority
High - Significant impact on productivity
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
Related: #80892 (extension doesn't read ~/.claude/keybindings.json for chat input)