claude-code - 💡(How to fix) Fix `/doctor` and footer indicator false-positive on functional `command+v` binding [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#53114Fetched 2026-04-25 06:12:00
View on GitHub
Comments
0
Participants
1
Timeline
4
Reactions
0
Author
Participants
Timeline (top)
labeled ×4

Error Message

Claude Code persistently reports a keybinding error for my command+vchat:imagePaste binding, even though the binding actually works correctly. The error is shown in two places: 6. 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. | Impacted component | /doctor validator + footer keybinding-error indicator | TUI raw-input / control-character handling layer |

Code Example

"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" }] }
   ]

---

{
     "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
     "bindings": [
       { "context": "Chat", "bindings": { "command+v": "chat:imagePaste" } }
     ]
   }

---

osascript -e 'clipboard info'

---

Keybinding configuration issues · /Users/maxwell.house/.claude/keybindings.json
   "cmd+v" may not work: macOS system paste
RAW_BUFFERClick to expand / collapse

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+vchat:imagePaste binding, even though the binding actually works correctly.

The error is shown in two places:

  1. Bottom-right footer indicator — always visible while Claude Code is running
  2. /doctor output — 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

  1. Set up Karabiner ctrl ↔ cmd swap — edit ~/.config/karabiner/karabiner.json and add simple_modifications inside the profile:

    "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).

  2. Create ~/.claude/keybindings.json:

    {
      "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
      "bindings": [
        { "context": "Chat", "bindings": { "command+v": "chat:imagePaste" } }
      ]
    }
  3. Launch Claude Code inside Ghostty (fresh session so the new keybindings file is loaded).

  4. Copy an image to the clipboard — e.g., Shift+Cmd+Ctrl+4 screenshot-to-clipboard, or copy an image from Finder / a browser. Verify with:

    osascript -e 'clipboard info'

    Output should include «class PNGf» or similar image class.

  5. 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).

  6. 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.

  7. 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.

AspectThis issue#40291
SymptomBinding works correctly, but /doctor and the footer falsely flag it as broken (UI false-positive)Shortcuts actually do not work (silent functional failure)
TriggerHaving command+vchat:imagePaste defined in ~/.claude/keybindings.jsonSwitching the macOS input source to the Korean (Hangul) IME
ScopeExactly one user-defined binding (command+v)All Ctrl+key shortcuts (Ctrl+C, Ctrl+A, Ctrl+L, Ctrl+E, …)
User environmentKarabiner-Elements ctrl↔cmd swap; English inputKorean (Hangul) input source; no Karabiner required
Impacted component/doctor validator + footer keybinding-error indicatorTUI 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.

extent analysis

TL;DR

The issue can be resolved by modifying the keybinding configuration to account for the Karabiner-Elements ctrl/cmd swap.

Guidance

  • Review the ~/.claude/keybindings.json file and consider updating the binding to use ctrl+v instead of command+v to match the Karabiner-Elements configuration.
  • Verify that the Karabiner-Elements configuration is correctly swapping ctrl and cmd keys.
  • Check the Claude Code documentation for any specific guidance on configuring keybindings with Karabiner-Elements.
  • Test the updated keybinding configuration to ensure it resolves the issue.

Example

{
  "$schema": "https://www.schemastore.org/claude-code-keybindings.json",
  "bindings": [
    { "context": "Chat", "bindings": { "ctrl+v": "chat:imagePaste" } }
  ]
}

Notes

The issue is specific to the interaction between Claude Code, Karabiner-Elements, and the macOS environment. The solution may not apply to other environments or configurations.

Recommendation

Apply the workaround by updating the keybinding configuration to use ctrl+v instead of command+v. This should resolve the issue and prevent the false keybinding error indicator.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix `/doctor` and footer indicator false-positive on functional `command+v` binding [1 participants]