[FEATURE] Trust the kitty graphics probe for SwiftTerm terminals (Moo), not only kitty/ghostty by name

Status Open
Reported on v2.1.289
Maintainer reply None cached
Activity 0 comments · opened Oct 5, 2026

Claude Code (2.1.289) decides kittyGraphics by sending a graphics query and XTVERSION, then accepts the terminal only if its XTVERSION name is kitty(>=0.28) or starts with kitty/ghostty. Terminals built on SwiftTerm answer the graphics query correctly and support Unicode placeholders (U=1) and every transmission medium, but they report XTVERSION as SwiftTerm <version>, so images are refused. Image plugins such as intermission show nothing.

Affected: Moo (https://github.com/ventz/moo-mac-terminal), a macOS terminal on SwiftTerm, which accepts t=d, t=f and t=s as of its next release.

Request, either of:

  1. Add SwiftTerm to the XTVERSION allowlist (this covers every SwiftTerm host, which then rely on the existing probes of what each one actually accepts), or
  2. Trust a successful graphics query reply plus the existing imageFiles probe, instead of a name.

Workaround today: CLAUDE_CODE_FORCE_TERMINAL_IMAGES=1.

Repro: run Moo, start claude --debug, and the Terminal capabilities: line reports kittyGraphics=no (probe: graphics reply …, terminal SwiftTerm …), although the terminal answered the graphics query.

View original on GitHub ↗