supports-terminal-graphics
v0.1.0
Published
Detect which terminal graphics protocols are supported (Kitty, iTerm2, Sixel)
Maintainers
Readme
supports-terminal-graphics
Detect which terminal graphics protocols are supported (Kitty, iTerm2, Sixel)
Detects support for terminal graphics protocols using environment variables. This allows apps to choose the best available protocol for displaying images in the terminal.
Protocols
| Protocol | Quality | Description | |----------|---------|-------------| | Kitty | Best | Truecolor RGBA, transparency, animation support | | iTerm2 | Good | Full color, native macOS rendering | | Sixel | Basic | Palette-based, widely supported legacy protocol |
Install
npm install supports-terminal-graphicsUsage
import supportsTerminalGraphics from 'supports-terminal-graphics';
if (supportsTerminalGraphics.stdout.kitty) {
// Use Kitty graphics protocol (best quality)
} else if (supportsTerminalGraphics.stdout.iterm2) {
// Use iTerm2 inline images protocol
} else if (supportsTerminalGraphics.stdout.sixel) {
// Use Sixel protocol
} else {
// Fall back to ANSI block characters
}You can also check stderr:
if (supportsTerminalGraphics.stderr.kitty) {
// Use Kitty graphics protocol on stderr
}API
supportsTerminalGraphics
Returns an object with stdout and stderr properties, each containing:
kitty-boolean- Whether Kitty graphics protocol is supportediterm2-boolean- Whether iTerm2 inline images protocol is supportedsixel-boolean- Whether Sixel protocol is supported
createSupportsTerminalGraphics(stream?)
Create a custom check for a specific stream.
import {createSupportsTerminalGraphics} from 'supports-terminal-graphics';
const support = createSupportsTerminalGraphics(process.stdout);
console.log(support.kitty); // true or false
console.log(support.iterm2); // true or false
console.log(support.sixel); // true or falseTerminal Support
| Terminal | Kitty | iTerm2 | Sixel | |----------|-------|--------|-------| | Kitty | ✓ | | | | Ghostty | ✓ | | | | WezTerm | ✓ | ✓ | ✓ | | iTerm2 (v3.6+) | ✓ | ✓ | | | iTerm2 (v2.9.20150512+) | | ✓ | | | Konsole (22.04+) | ✓ | ✓ | ✓ | | VS Code (v1.80+) | | ✓ | ✓ | | Rio | ✓ | ✓ | ✓ | | Warp | ✓ | | | | mintty | | ✓ | ✓ | | mlterm | | | ✓ |
Related
- supports-color - Detect whether a terminal supports color
- supports-hyperlinks - Detect whether a terminal supports hyperlinks
- terminal-image - Display images in the terminal
