Description
Image paste via Ctrl-V does not work in Ghostty terminal on macOS. The feature is documented (clipboard-image-hint.ts shows "Image in clipboard — Ctrl+V to paste"), but pressing Ctrl-V after copying an image to the clipboard does nothing.
Additionally, drag-and-drop is not supported in TUI mode, which is expected for a terminal app. However, Claude Code (same Ink-based TUI framework) supports Ctrl-V image paste reliably in the same terminal.
Environment
- kimi-code: 0.31.1
- OS: macOS 15.5 (Darwin 25.5.0, arm64)
- Terminal: Ghostty (xterm-ghostty)
- Model: K3 with
image_in capability enabled
Steps to Reproduce
- Copy an image to clipboard (Cmd-C on a file in Finder, or screenshot with Cmd-Shift-4)
- Switch to kimi-code TUI in Ghostty
- Press Ctrl-V
- Nothing happens — no hint appears, no image is pasted
Expected Behavior
- A hint "Image in clipboard — Ctrl+V to paste" should appear
- Pressing Ctrl-V should attach the image to the next message
- This works correctly in Claude Code with the same terminal setup
Workaround
We implemented a hook-based workaround: user types "看图" (Chinese for "look at image"), the hook extracts the clipboard image via pngpaste/osascript, saves it to a temp file, and injects the path for ReadMediaFile. But this should not be necessary.
Description
Image paste via
Ctrl-Vdoes not work in Ghostty terminal on macOS. The feature is documented (clipboard-image-hint.ts shows "Image in clipboard — Ctrl+V to paste"), but pressing Ctrl-V after copying an image to the clipboard does nothing.Additionally, drag-and-drop is not supported in TUI mode, which is expected for a terminal app. However, Claude Code (same Ink-based TUI framework) supports
Ctrl-Vimage paste reliably in the same terminal.Environment
image_incapability enabledSteps to Reproduce
Expected Behavior
Workaround
We implemented a hook-based workaround: user types "看图" (Chinese for "look at image"), the hook extracts the clipboard image via
pngpaste/osascript, saves it to a temp file, and injects the path for ReadMediaFile. But this should not be necessary.