Appearance
24-bit truecolor
ESC [ 38;2;R;G;B m24-bit truecolor allows terminals to display any of 16.7 million colors (256 values per R/G/B channel), far beyond the 256-color palette. The escape sequences are
ESC [ 38 ; 2 ; R ; G ; B m for foreground and ESC [ 48 ; 2 ; R ; G ; B m for background.
There are two syntax variants: the original semicolon-separated format (38;2;R;G;B) introduced by xterm, and the colon-separated format (38:2::R:G:B) defined by ITU T.416. The colon format is technically more correct and avoids parsing ambiguities, but the semicolon format has wider support. Applications should use the semicolon variant for maximum compatibility.
Applications can detect truecolor support via the COLORTERM=truecolor environment variable. Nearly all modern terminals support 24-bit color; the main exceptions are older versions of macOS Terminal.app and some minimal terminal emulators.How this is testedautomated
Write text with 24-bit RGB foreground color (
Write text with 24-bit RGB foreground color (
ESC [ 38;2;R;G;B m) and verify the cell stores the exact RGB values.The same probe runs against headless backends (via Termless) and real terminal apps (via a daemon launched in each terminal). This lets us distinguish parser correctness from rendering correctness.
Analysis2026-04-06
Supported by 11 of 12 terminals (92%). Not supported by: vt100.js. Part of the Modern TUI baseline. Notes: vt100.js: Not in VT100/VT220 — only 8 standard colors supported.
Supported by 12 of 14 backends (86%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.3.1 | ✓ yes | |
| VS Code | ✓ yes | ||
| Warp | ✓ yes | ||
| Cursor | ✓ yes | ||
| Terminal.app | ✓ yes |