Appearance
Push color palette (CSI # P)
ESC [ # PXTPUSHCOLORS pushes the current color palette (the 256-color ANSI palette plus the default fg/bg) onto an internal stack. The sequence is
CSI # P (or CSI Pi # P to push at a specific stack index). XTPOPCOLORS (CSI # Q) pops the most recent palette; XTREPORTCOLORS (CSI # R) reports the current stack depth.
Applications use this when they want to install a custom palette (e.g., a specific set of OSC 4 colors for syntax highlighting) without permanently overriding the user's theme. Push the current palette, install the new one, do the work, pop on exit. Without XTPUSHCOLORS, applications need to query every palette slot via OSC 4 ; n ; ? (slow and not universally supported) or simply leave the user's terminal in a modified state.
Introduced by xterm in patch #357, paired with XTPUSHSGR. Adopted by Ghostty, foot, Contour, and other modern terminals.How this is testedautomated
Send
Send
\x1b[#P (XTPUSHCOLORS), verify the sequence is consumed and the terminal stays responsive.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 9 of 14 backends (64%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | Sequence consumed; terminal responsive |
| Ghostty | 1.3.1 | ✓ yes | Sequence consumed; terminal responsive |
| Terminal.app | 2.15 | ✓ yes | Sequence consumed; terminal responsive |
| Kitty | 0.46.2 | ✓ yes | Color palette stack not exposed via Python batch bridge |
| VS Code | 1.113.0 | ? unknown | |
| Warp | 0.2026.03.18.08.24.03 | ? unknown | |
| Cursor | 2.6.21 | ? unknown |
Headless Backends
Parser correctness only — a ✓ means the parser accepts the sequence.
| Backend | Version | Support | Notes |
|---|---|---|---|
| vt100.js | 0.2.1 | ✓ yes | |
| vterm | 0.2.0 | ✓ yes | |
| xterm.js | 5.5.0 | ✓ yes | |
| WezTerm | 0.1.0-fork.5 | ~ partial | Color palette stack not exposed in headless mode |
| Alacritty | 0.26.0 | ✗ no | Color palette stack not implemented by alacritty |