[FEATURE] VS Code extension should read ~/.claude/keybindings.json
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
The CLI supports custom keybindings via ~/.claude/keybindings.json, but the VS Code extension's graphical chat panel ignores this file entirely. This means users can't customize keyboard shortcuts for the chat input — bindings like the newline key are hard-coded to Shift+Enter with no override.
This is a problem for users whose muscle memory comes from apps with different conventions (e.g., Opt/Alt+Enter in Slack). I repeatedly send incomplete messages by accidentally hitting Enter or Opt+Enter when I mean to insert a newline. The config file exists, the CLI respects it, but the extension does not.
This is part of a broader pattern where the VS Code extension does not respect CLI configuration files (see also #15772, #29159, #18191, #33865). #25087 describes the same issue with the Claude Code desktop app.
Proposed Solution
The VS Code extension should read ~/.claude/keybindings.json and apply custom bindings in the graphical chat panel, consistent with CLI behavior. For example, the following config works in the CLI today but is ignored by the extension:
{
"bindings": [
{
"context": "Chat",
"bindings": {
"alt+enter": "chat:newline"
}
}
]
}
With this change, Opt/Alt+Enter would insert a newline in the extension's chat input, just as it does in the CLI.
Alternative Solutions
Karabiner-Elements: I'm currently using a macOS-level key remap (Opt+Enter → Shift+Enter, scoped to VS Code) as a workaround. It works but requires a system-level tool dependency for what should be a simple config option.
useCtrlEnterToSend setting: This changes Enter to newline and Ctrl+Enter to send, which avoids accidental sends but doesn't allow customizing the newline key itself.
Priority
Low - Nice to have
Feature Category
Other
Use Case Example
- User configures ~/.claude/keybindings.json with alt+enter → chat:newline
- User opens Claude Code in the VS Code extension
- User types a multi-line prompt, pressing Opt+Enter between lines
- Currently: each Opt+Enter sends the incomplete message
- Expected: Opt+Enter inserts a newline, matching the CLI behavior with the same config file
Additional Context
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗