`/doctor` and footer indicator false-positive on functional `command+v` binding
Note on prior issue: This was previously filed as #49738 and auto-closed by the duplicate-detection bot as a duplicate of #40291. It is not a duplicate — see the "Not a duplicate of #40291" section at the bottom for a side-by-side comparison and independence proof. Re-filing so it can be triaged on its own merits.
Issue
Claude Code persistently reports a keybinding error for my command+v → chat:imagePaste binding, even though the binding actually works correctly.
The error is shown in two places:
- Bottom-right footer indicator — always visible while Claude Code is running
/doctoroutput — when explicitly checked
Environment
- Claude Code 2.1.112
- macOS 15.4 (Sequoia, Darwin 24.4.0)
- Terminal: Ghostty 1.3.1
- Karabiner-Elements 15.9.0 (ctrl ↔ cmd swap)
Steps to reproduce
- Set up Karabiner ctrl ↔ cmd swap — edit
~/.config/karabiner/karabiner.jsonand addsimple_modificationsinside the profile:
``json``
"simple_modifications": [
{ "from": { "key_code": "left_command" }, "to": [{ "key_code": "left_control" }] },
{ "from": { "key_code": "left_control" }, "to": [{ "key_code": "left_command" }] },
{ "from": { "key_code": "right_command" }, "to": [{ "key_code": "right_control" }] },
{ "from": { "key_code": "right_control" }, "to": [{ "key_code": "right_command" }] }
]
Reload Karabiner (it auto-reloads on file change). Verify swap works: pressing physical Ctrl+C in a regular app should copy (since it reaches the OS as cmd+c).
- Create
~/.claude/keybindings.json:
``json``
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"bindings": [
{ "context": "Chat", "bindings": { "command+v": "chat:imagePaste" } }
]
}
- Launch Claude Code inside Ghostty (fresh session so the new keybindings file is loaded).
- Copy an image to the clipboard — e.g.,
Shift+Cmd+Ctrl+4screenshot-to-clipboard, or copy an image from Finder / a browser. Verify with:
``bash`
osascript -e 'clipboard info'
«class PNGf»` or similar image class.
Output should include
- Focus Claude Code input and press physical
Ctrl+V.
Expected: an image is attached to the prompt.
Actual: an image is attached to the prompt (the binding works correctly).
- Open a new terminal window, launch Claude Code fresh, and look at the bottom-right footer immediately — a keybinding-error indicator is shown from session start, without any user action needed. It persists throughout the session.
- In that fresh session, run
/doctor— it reports:
````
Keybinding configuration issues · /Users/maxwell.house/.claude/keybindings.json
"cmd+v" may not work: macOS system paste
Request
Claude Code should not flag explicit user bindings that function correctly. In this case, steps 6 and 7 of the reproduction above should not occur.
Not a duplicate of #40291
The auto-duplicate bot matched on a surface-level keyword ("keybinding / shortcut / macOS") — the two issues describe fundamentally different bugs.
| Aspect | This issue | #40291 |
|---|---|---|
| Symptom | Binding works correctly, but /doctor and the footer falsely flag it as broken (UI false-positive) | Shortcuts actually do not work (silent functional failure) |
| Trigger | Having command+v → chat:imagePaste defined in ~/.claude/keybindings.json | Switching the macOS input source to the Korean (Hangul) IME |
| Scope | Exactly one user-defined binding (command+v) | All Ctrl+key shortcuts (Ctrl+C, Ctrl+A, Ctrl+L, Ctrl+E, …) |
| User environment | Karabiner-Elements ctrl↔cmd swap; English input | Korean (Hangul) input source; no Karabiner required |
| Impacted component | /doctor validator + footer keybinding-error indicator | TUI raw-input / control-character handling layer |
Independence proof:
- If #40291 were fixed tomorrow, this issue would remain — the false warning appears at session start with no input activity, produced by static config validation, not by runtime input handling.
- If this issue were fixed, #40291 users would still be unable to use Ctrl+key shortcuts under the Korean IME.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗