[BUG] chat:submit keybinding with custom key (e.g. ctrl+y) not working
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?
When binding a custom key (e.g., ctrl+y) to chat:submit in ~/.claude/keybindings.json, the custom keybinding is silently ignored. This happens regardless of whether the binding is placed in the Chat context or the Global context.
Only the default enter key works for chat:submit. Any additional custom key bound to the same action has no effect.
ctrl+shift+y was also tested and does not work either.
However, when ctrl+y is mapped to a different action such as chat:stash, it works correctly. This confirms that the ctrl+y key itself is being received by Claude Code — the issue is specific to the chat:submit action.
What Should Happen?
A custom keybinding mapped to chat:submit should trigger message submission, just like the default enter key does.
Error Messages/Logs
Steps to Reproduce
Test 1: Chat context
- Create or edit
~/.claude/keybindings.json:
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Chat",
"bindings": {
"enter": "chat:submit",
"ctrl+y": "chat:submit"
}
}
]
}
- Start (or restart) Claude Code CLI.
- Type any message in the chat input.
- Press
ctrl+y— nothing happens. - Press
enter— the message is submitted normally.
Test 2: Global context
- Move the
ctrl+ybinding to the Global context:
{
"$schema": "https://platform.claude.com/docs/schemas/claude-code/keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Global",
"bindings": {
"ctrl+y": "chat:submit"
}
},
{
"context": "Chat",
"bindings": {
"enter": "chat:submit"
}
}
]
}
- Restart Claude Code CLI.
- Type any message and press
ctrl+y— still nothing happens.
Result: ctrl+y does not trigger chat:submit in either context. Only enter works.
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.59
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other
Additional Information
Use Wezterm. Bug the bug occur in all terminals.
MacOS Tahoe 26.3
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗