/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+btask: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

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗