Best Terminals with Inline Image Support
Terminals that show images inline: kitty, WezTerm and Rio compared by protocol support (kitty graphics, Sixel, iTerm2) and platform.
Updated
short verdict
Pick WezTerm or Rio if you want all three image protocols (kitty graphics, Sixel, iTerm2) on Linux, macOS and Windows. Pick kitty if you rely on `kitten icat`, including over SSH. Use iTerm2 on macOS, foot on Wayland, and mintty on Windows under a Unix-like runtime.
Inline images in a terminal depend on which protocol the emulator speaks and which one your tool emits. The kitty graphics protocol, Sixel and the iTerm2 image protocol are the three in common use, and the terminals below cover them in different combinations. They also differ in platform: some run on one OS only, and some need a specific display server or runtime.
this page is for
- Developers who preview images, plots or diagrams from the shell
- Users who need the same image protocol on Linux, macOS and Windows
- Users on a single platform who want the native terminal with image support
The terminal that introduced the kitty graphics protocol, with `kitten icat` for showing images, including over SSH.
best for
- Image previews over SSH
- Keyboard-driven Linux and macOS users
strengths
- `kitten icat` displays images and works over SSH
- `kitten diff` is a diff viewer with image support
- Built-in tabs, splits and seven layouts with session files
- Remote control lets scripts open windows and send text
weaknesses
- Custom `xterm-kitty` terminfo breaks hosts without it; `kitten ssh` is the documented fix
- No Windows build; Linux, macOS and BSD only
Supports the iTerm2 image protocol with a built-in `imgcat`, kitty graphics and Sixel on Linux, macOS and Windows.
best for
- One image setup across three operating systems
- Users who configure in Lua
strengths
- Covers iTerm2, kitty graphics and Sixel protocols
- Built-in `imgcat` command
- Runs on Linux, macOS, Windows 10, FreeBSD and NetBSD
- Lua config reloads on save; `wezterm cli` scripts a running instance
weaknesses
- Sixel is marked experimental in the docs
- Docs describe multiplexing as young and still evolving
GPU terminal in Rust with Sixel, iTerm2 image and kitty graphics support, plus a TOML config that applies on save.
best for
- Cross-platform users who want all three protocols
- Users who want per-platform overrides in one config file
strengths
- Supports Sixel, the iTerm2 image protocol and kitty graphics
- Runs on Windows, Linux, FreeBSD and macOS
- Tabs and split panels, with `navigation.mode` choosing the tab style
- One `config.toml` with sections like `macos.renderer.backend`
weaknesses
- The experimental CPU rasterizer (`renderer.use-cpu`) does not yet draw image overlays
- Features page says many features are still in development
Native-UI terminal for macOS and Linux that supports images through the Kitty graphics protocol only.
best for
- Kitty-protocol image tools on macOS or Linux
- Users who want few config steps
strengths
- Implements the Kitty graphics and keyboard protocols
- Native UI: SwiftUI on macOS, GTK on Linux
- Ships embedded fonts and themes, so it works without config
- Shell integration is injected automatically for common shells
weaknesses
- No Sixel or iTerm2 image protocol is documented
- No Windows build; remote hosts without its terminfo cause problems
macOS-only terminal that shows inline images and animated GIFs through `imgcat`.
best for
- macOS users who want `imgcat` and GIFs
- Users who rely on multiplexer integration
strengths
- Inline images and animated GIFs via `imgcat`
- Split panes, triggers and shell integration with marks
- Python scripting API for status bar components and triggers
- Dynamic Profiles in JSON or plist reload when changed
weaknesses
- macOS only; no Linux or Windows build
- Kitty graphics and Sixel support are not documented by the project
Wayland-native terminal in C with Sixel image support, a small footprint and no GPU rendering.
best for
- Wayland compositor users who need Sixel
- Low-memory setups
strengths
- Sixel images in a Wayland-native terminal
- `foot --server` with `footclient` shares fonts and glyph cache
- INI config at `~/.config/foot/foot.ini`, documented in a man page
- Few dependencies and low memory use
weaknesses
- Sixel only; kitty graphics and iTerm2 images are not documented
- Linux Wayland only, with no tabs or splits
- No programming-font ligatures
Windows terminal for Unix-like runtimes with Sixel and iTerm2-style image display (PNG, JPEG, GIF).
best for
- Windows users running a Unix-like shell
- Users who also want ReGIS or Tektronix graphics
strengths
- Sixel plus image display through iTerm2's image controls
- Supports ReGIS and Tektronix 4014 emulation
- Plain-text config with no registry entries
- Screenshot export as HTML or image
weaknesses
- Runs only under a Cygwin-type runtime, not `cmd` or PowerShell
- No splits; tabs are separate windows behind `--tabbar`
- Kitty graphics is not documented
GPU terminal in C++ with Sixel images and ReGIS graphics, aimed at broad VT protocol coverage.
best for
- Users who want Sixel and strict VT conformance
- Cross-platform users who want a modal input mode
strengths
- Sixel inline images and ReGIS vector graphics
- Runs on Linux, macOS, FreeBSD, OpenBSD and Windows 10+
- Vi-like modes for selection and copy
- Daemon mode keeps sessions alive after window close
weaknesses
- Sixel is the only documented image protocol
- Daemon mode is marked experimental
- Needs OpenGL 3.3 and AES-NI or ARMv8 crypto extensions
How to choose
Match the protocol your image tool emits first, then the platform.
- Widest protocol coverage: WezTerm or Rio support iTerm2, kitty graphics and Sixel
- Kitty graphics and images over SSH: kitty, using `kitten icat`
- macOS with `imgcat` and animated GIFs: iTerm2
- Sixel on a lightweight Wayland desktop: foot
- Windows with a Unix-like shell: mintty; native Windows: WezTerm or Rio
When not to use these
- Your tools only emit ASCII or block-character previews, so any terminal works and image protocols add nothing.
- You work in a separate terminal multiplexer that does not pass image sequences through; test passthrough first.
Also worth a look
- KonsoleKDE terminal with tabs and splits; inline image protocol support is not documented by the project.
FAQ
- Which terminals support the kitty graphics protocol?
- kitty, WezTerm, Ghostty and Rio document support for it. kitty also provides `kitten icat` for displaying images, including over SSH.
- Which terminals support Sixel?
- WezTerm (marked experimental), foot, Contour, mintty and Rio document Sixel support.
- Which terminals support the iTerm2 image protocol?
- iTerm2 provides it through `imgcat`. WezTerm has a built-in `imgcat`, and Rio and mintty also support it.
- What is the best option on Windows?
- WezTerm and Rio run natively on Windows and support several protocols. mintty supports Sixel and iTerm2-style images but only under a Cygwin-type runtime.