/doctor falsely warns about duplicate when unbinding a key used as second keystroke in a chord
Resolved 💬 2 comments Opened Feb 25, 2026 by sthaber Closed Mar 26, 2026
Description
/doctor keybinding validator reports a false-positive "Duplicate binding" warning when unbinding a single key that also appears as the second keystroke in a chord binding within the same context.
Steps to Reproduce
Add this to ~/.claude/keybindings.json:
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Task",
"bindings": {
"ctrl+b": null,
"ctrl+x ctrl+b": "task:background"
}
}
]
}
This unbinds the default ctrl+b → task:background and re-binds it to the chord ctrl+x ctrl+b, freeing ctrl+b for terminal passthrough (readline/emacs cursor-left).
Run /doctor.
Observed Behavior
Keybinding Configuration Issues
Location: ~/.claude/keybindings.json
└ [Warning] Duplicate binding "ctrl+x ctrl+b" in Task context
→ Previously bound to "null". Only the last binding will be used.
The warning persists regardless of:
- Key order within the bindings object
- Splitting into separate context blocks for the same context
Expected Behavior
No warning. ctrl+b (single keystroke) and ctrl+x ctrl+b (two-keystroke chord) are distinct bindings and should not be flagged as duplicates.
Related Issues
- #21008 — Ctrl+B conflicts with readline/emacs cursor movement (the use case motivating this config)
- #21729 — Duplicate keybindings in default bindings cause persistent warning (similar validator issue, different root cause)
Environment
- Platform: Linux
- Claude Code: latest
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗