Can your terminal do that? Feature support tables for terminal emulators — powered by automated testing.
Live at terminfo.dev
npx terminfo.dev test # test your terminal's feature support
npx terminfo.dev submit # test + submit results to terminfo.dev
npx terminfo.dev detect # what terminal am I running in?Or without Node.js: curl -sL terminfo.dev/test | sh
It runs feature tests by sending standard terminal escape sequences (the same ones vim, htop, and every TUI app send) and checking how your terminal responds. For example, it sends ESC[38;2;255;0;0m (truecolor red) and asks "where is the cursor?" — if the terminal responds, the feature is supported.
It does not write files, install software, or send data over the network. Results are printed as JSON to your terminal. You can read the script source before running it.
See the full contributor guide.
terminfo.dev is the "caniuse.com for terminal emulators." It shows which terminals support which features (SGR styling, cursor modes, Kitty keyboard, sixel graphics, OSC 8 hyperlinks, etc.) based on automated probe results from termless.
Currently testing 161 features across 19 terminals and backends.
- Probes (
packages/probe-defs/) define tests with dual callbacks — headless (sync) and TTY (async) - Results are collected as pass/fail per feature per backend
- The site (
docs/) renders an interactive matrix at build time via VitePress
- Site: terminfo.dev
- API: terminfo.dev/api — JSON data + SVG badges
- Contribute: terminfo.dev/contribute
- Termless: termless.dev — headless terminal testing
- Silvery: silvery.dev — React TUI framework
# Install dependencies
bun install
# Run probes probes (requires termless backends installed)
bun run probes:run
# View results
bun run probes:report
# Local dev server
bun run dev
# Build for production
bun run buildbun run probes:run # Run probes + show report
bun run probes:run --force # Re-run even if cached
bun run probes:run xtermjs/* # All xtermjs versions
bun run probes:run xtermjs/5.4.0 # Specific version
bun run probes:report # Show cached results
bun run probes:status # Config, backends, cache info| Backend | Engine | Type |
|---|---|---|
| xtermjs | @xterm/headless 5.5 | JS |
| ghostty | ghostty-web 0.4 | WASM |
| vt100 | Pure TypeScript | JS |
| alacritty | alacritty_terminal 0.26 | Native (Rust) |
| wezterm | tattoy-wezterm-term | Native (Rust) |
| vt100-rust | vt100 0.15 | Native (Rust) |
| libvterm | neovim/libvterm 0.3 | WASM (C) |
| ghostty-native | libghostty-vt 1.3 | Native (Zig) |
| kitty | kitty 0.40 | Native (C, GPL) |
| peekaboo | OS automation | macOS |
Built with VitePress, deployed via Cloudflare Pages.
- Build command:
bun install && bun run build - Output:
docs/.vitepress/dist - Custom domain: terminfo.dev