Skip to content

macOS: Image paste (Cmd+V) into Claude Code fails after 2 pastes, performable: keybind has no effect #11444

Description

@dmsdc-ai

Issue Description

Image pasting into Claude Code (and likely other terminal apps using clipboard image data) has two issues on macOS:

  1. Image paste stops working after 2 successful pastes in a single session
  2. performable:super+v=paste_from_clipboard keybind has no effect on macOS — it works on Linux/GTK (per PR gtk: pass through keypress when clipboard has no text #10089) but the macOS AppKit equivalent is not implemented

Expected Behavior

  • Image paste via Cmd+V should work reliably for any number of pastes in a session
  • performable: keybind flag should work on macOS, passing the keypress through to the application when clipboard contains no text (e.g., image only)

Actual Behavior

  • First 2 image pastes work correctly (shows [Image #N] in Claude Code)
  • 3rd paste and beyond: nothing happens, paste is silently ignored
  • Adding keybind = performable:super+v=paste_from_clipboard to config has no effect — +show-config output shows default super+v=paste_from_clipboard without the performable: prefix
  • Restarting Ghostty resets the counter (2 pastes work again)

Reproduction Steps

  1. Open Ghostty on macOS
  2. Start a Claude Code session (claude)
  3. Have an image in clipboard (e.g., screenshot via Shift+Cmd+Ctrl+4, or copy image from browser)
  4. Paste with Cmd+V → works (shows [Image Crash when copying selection that runs to end of window #1])
  5. Copy another image, paste with Cmd+V → works (shows [Image Reflow on Resize #2])
  6. Copy another image, paste with Cmd+V → fails (nothing happens)

Workaround Attempted

Added to ~/.config/ghostty/config:

keybind = performable:super+v=paste_from_clipboard

This was suggested in Discussion #10478 but has no effect on macOS. The commenter noted:

"this requires the embedded apprt to also support a synchronous clipboard content check (like GTK does after PR #10089), otherwise clipboardRequest always returns true and the performable flag has no effect. That macOS-side change would be needed to make this work out of the box."

Comparison with Other Terminals

  • Warp: Image paste via Cmd+V works reliably, unlimited pastes ✅
  • iTerm2: Image paste works reliably ✅
  • Ghostty: Fails after 2 pastes ❌

Related Discussions

Ghostty Version

Ghostty 1.3.0

Version
  - version: 1.3.0
  - channel: stable
Build Config
  - Zig version   : 0.15.2
  - build mode    : .ReleaseFast
  - app runtime   : .none
  - font engine   : .coretext
  - renderer      : renderer.generic.Renderer(renderer.Metal)
  - libxev        : kqueue

Also tested with Ghostty tip (build 15209) — different issue: escape sequences ([12621;9u) leak through instead of pasting.

OS Version Information

macOS (Darwin 24.6.0, Apple Silicon)

Minimal Ghostty Configuration

clipboard-read = allow
clipboard-write = allow
clipboard-paste-protection = false

I acknowledge that:

  • I have reviewed the FAQ and confirm that my issue is NOT among them.
  • I have searched the Ghostty repository (both open and closed Discussions and Issues) and confirm this is not a duplicate of an existing issue or discussion.
  • I have checked the "Preview" tab on all text fields to ensure that everything looks right, and have wrapped all configuration and code in code blocks with a group of three backticks on separate lines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions