VSCode extension chat input doesn't honor ~/.claude/keybindings.json — causes accidental submits
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
Summary
The CLI supports remapping Enter/Shift+Enter behavior in the chat input via ~/.claude/keybindings.json (chat:submit / chat:newline actions, documented at https://code.claude.com/docs/en/keybindings). The VSCode native extension does not read this file at all — its chat panel hardcodes Enter=submit, Shift+Enter=newline, with no way to swap them short of the unrelated useCtrlEnterToSend setting.
Impact
Users who prefer Shift+Enter-to-submit / Enter-for-newline (e.g. to draft multi-line prompts safely) cannot get this behavior in the extension. In practice, a slightly mistimed Shift key press sends an incomplete/wrong prompt, since a bare Enter always submits regardless of intent. This happens repeatedly and wastes real time — not a cosmetic issue.
Steps to reproduce
Set ~/.claude/keybindings.json:
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{ "context": "Chat", "bindings": { "enter": "chat:newline", "shift+enter": "chat:submit" } }
]
}
Fully quit and relaunch VS Code (not just reload window).
In the Claude Code extension chat panel, press Enter.
Expected: Enter inserts a newline, per the configured binding.
Actual: Enter submits immediately; the config is silently ignored.
Proposed Solution
Ask
Please have the VSCode extension read the same ~/.claude/keybindings.json (or an equivalent extension-level setting) so Enter/Shift+Enter behavior can be customized consistently with the CLI. At minimum, surface a dedicated "swap Enter/Shift+Enter" setting in the extension if reusing the full keybindings file isn't feasible.
Alternative Solutions
_No response_
Priority
High - Significant impact on productivity
Feature Category
Configuration and settings
Use Case Example
_No response_
Additional Context
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗