Skip to content

xterm

The reference implementation for most of what other emulators call "xterm behavior". Maintained by Thomas Dickey since 1996; its XTerm Control Sequences document is the closest thing the field has to a shared specification for non-DEC extensions.

Identity

  • TERM: xterm-256color on most distributions; the build default is xterm and the termName resource overrides it.
  • TERM_PROGRAM: not set.
  • XTERM_VERSION: set in the environment, e.g. XTerm(406).
  • DA1: CSI ? 64 ; … c by default (VT420 class); the model class follows the decTerminalID resource.
  • DA2: CSI > 41 ; Pv ; 0 c where Pv is the patch level.
  • XTVERSION: DCS > | XTerm(406) ST.

Documentation

Notable behavior

  • Originated the mouse tracking modes (1000–1006), bracketed paste (2004), the alternate screen with cursor save (1049), modifyOtherKeys, XTVERSION, XTGETTCAP, XTWINOPS, and OSC 4/10/11/12 color control.
  • Implements Sixel and ReGIS graphics when built with them enabled; DA1 advertises 4 when Sixel is available.
  • Many reporting features are disabled by default through the allowWindowOps, allowTitleOps, allowFontOps, allowTcapOps, and disallowedWindowOps resources; a probe that "fails" in xterm is often refused rather than unsupported.
  • Does not implement the Kitty keyboard protocol, OSC 8 hyperlinks, or the Kitty graphics protocol.
  • Cursor blink interacts with resources (cursorBlink, cursorBlinkXOR) in ways other emulators do not copy; see Cursor controls.

Version notes

Patch numbers, not semantic versions. Additions are recorded per patch in the changelog; the ctlseqs document notes the patch introducing each extension where relevant.

Probe

xterm -v
tools/query '\033[>0q'   # XTVERSION
tools/query '\033[c'     # DA1

Feature support

Records are maintained independently in tdn/terminals/xterm.yaml. Unlisted features are unknown. See the comparison for all features.

FeatureSupportAs ofNotes and evidence
BEL urgency/visual
c0-bel-attention
SupportedImported · unverifiedUnversionedYes

import

14/16 pixel sizes
csi-14-16-t-pixel-sizes
SupportedImported · unverifiedUnversionedYes

import

18 size in cells
csi-18-t-text-size
SupportedImported · unverifiedUnversionedYes

import

20/21 report
csi-20-21-t-title-reports
PartialImported · unverifiedUnversionedPartial (Denied by the default `disallowedWindowOps` list when `allowWindowOps` is false. Removing `GetIconTitle` or `GetWinTitle` from that list permits the corresponding report; true overrides the list.)

import

21 title report
csi-21-t-title-report
SupportedImported · unverifiedUnversionedGated

import

22/23 title stack
csi-22-23-t-title-stack
SupportedImported · unverifiedUnversionedYes

import

Move/resize (3,4,8)
csi-3-4-8-t-move-resize
SupportedImported · unverifiedUnversionedGated

import

ED 3 (scrollback)
csi-3-j-erase-scrollback
SupportedImported · unverifiedUnversionedYes

import

DECRQM
csi-decrqm
SupportedImported · unverifiedUnversionedYes

import

DECSLRM / ?69
csi-decslrm
SupportedImported · unverifiedUnversionedYes

import

DECSTBM
csi-decstbm
SupportedImported · unverifiedUnversionedYes

import

DECSTR
csi-decstr
SupportedImported · unverifiedUnversionedYes

import

ED/EL/ECH/ICH/DCH/IL/DL
csi-editing-operations
SupportedImported · unverifiedUnversionedYes

import

modifyOtherKeys
csi-modify-other-keys
SupportedImported · unverifiedUnversionedYes; Origin; both formats, `XTQMODKEYS` since patch 372 ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html) and the [xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), resources `modifyOtherKeys` and `formatOtherKeys`.)

import

CSI # P / # Q
csi-palette-stack
SupportedImported · unverifiedUnversionedYes

import

REP
csi-rep
SupportedImported · unverifiedUnversionedYes

import

SU/SD
csi-su-sd-scroll
SupportedImported · unverifiedUnversionedYes

import

Kitty keyboard protocol
csi-u-kitty-keyboard
UnknownImported · unverifiedUnversioned?; Not implemented (Not present in [XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html).)

import

XTPUSHSGR
csi-xtpushsgr
SupportedImported · unverifiedUnversionedYes (opt)

import

DECRQSS
dcs-decrqss
SupportedImported · unverifiedUnversionedYes; [ctlseqs](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Device-Control-functions); reply `1` = valid

import

ReGIS
dcs-regis
SupportedImported · unverifiedUnversionedYes, build option ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html); [xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), `-t` and Tek window.)

import

Sixel
dcs-sixel
SupportedImported · unverifiedUnversionedYes, build option ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html); requires `--enable-sixel-graphics` and a `decTerminalID` of 240 or higher.) | Also recorded: Yes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Sixel Graphics".); Build with `--enable-sixel-graphics`; `-ti vt340` or `decTerminalID: 340`; `sixelScrolling` resource

import import

XTGETTCAP
dcs-xtgettcap
SupportedImported · unverifiedUnversionedYes; [ctlseqs](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Device-Control-functions); `allowTcapOps`

import

1000 mouse
dec-mode-1000-mouse
SupportedImported · unverifiedUnversionedYes

import

1002 button motion
dec-mode-1002-button-motion
SupportedImported · unverifiedUnversionedYes

import

1003 all motion
dec-mode-1003-all-motion
SupportedImported · unverifiedUnversionedYes

import

1004 focus
dec-mode-1004-focus
SupportedImported · unverifiedUnversionedYes ([XTerm Control Sequences, Mouse Tracking](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking).)

import

1006 sgr mouse
dec-mode-1006-sgr-mouse
SupportedImported · unverifiedUnversionedYes

import

1007 alternate scroll
dec-mode-1007-alternate-scroll
SupportedImported · unverifiedUnversionedYes

import

1015 urxvt mouse
dec-mode-1015-urxvt-mouse
SupportedImported · unverifiedUnversionedYes

import

1016 pixel mouse
dec-mode-1016-pixel-mouse
SupportedImported · unverifiedUnversionedYes

import

1049 alternate screen
dec-mode-1049-alternate-screen
SupportedImported · unverifiedUnversionedYes

import

2004 bracketed paste
dec-mode-2004-bracketed-paste
SupportedImported · unverifiedUnversionedYes | Also recorded: Yes; Origin ([XTerm Control Sequences, `?2004`](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character_s_).)

import import

Grapheme cluster mode (2027)
dec-mode-2027-grapheme-clusters
UnknownImported · unverifiedUnversioned?; Not listed in ctlseqs ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html).)

import

?45 reverse wrap
dec-mode-45-reverse-wrap
SupportedImported · unverifiedUnversionedYes

import

win32-input-mode
dec-mode-9001-win32-input
UnknownImported · unverifiedUnversioned?; Not a Unix protocol; not documented by any of them

import

DECSCA/DECSED/DECSEL
dec-selective-erase
SupportedImported · unverifiedUnversionedYes

import

DEC Special Graphics
esc-dec-special-graphics
SupportedImported · unverifiedUnversionedYes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Controls beginning with ESC".)

import

DECDWL/DECDHL rendered
esc-double-size-lines
SupportedImported · unverifiedUnversionedYes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html).)

import

ESC % G / ESC % @
esc-percent-encoding
SupportedImported · unverifiedUnversionedYes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Controls beginning with ESC".)

import

OSC 0/2 set
osc-0-2-title
SupportedImported · unverifiedUnversionedYes

import

OSC 1 icon
osc-1-icon-name
SupportedImported · unverifiedUnversionedYes

import

OSC 10/11 query
osc-10-11-default-colors-query
SupportedImported · unverifiedUnversionedYes

import

OSC 10/11 set
osc-10-11-default-colors-set
SupportedImported · unverifiedUnversionedYes

import

104/110/111 reset
osc-104-110-111-color-reset
SupportedImported · unverifiedUnversionedYes

import

OSC 12 cursor
osc-12-cursor-color
SupportedImported · unverifiedUnversionedYes

import

OSC 17/19 selection
osc-17-19-selection-colors
SupportedImported · unverifiedUnversionedYes

import

OSC 22 pointer
osc-22-pointer-shape
SupportedImported · unverifiedUnversionedYes

import

OSC 3
osc-3-x-property
SupportedImported · unverifiedUnversionedYes

import

OSC 4 query
osc-4-palette-query
SupportedImported · unverifiedUnversionedYes

import

OSC 4 set
osc-4-palette-set
SupportedImported · unverifiedUnversionedYes

import

OSC 50 font
osc-50-font
SupportedImported · unverifiedUnversionedYes

import

OSC 52 read
osc-52-read
SupportedImported · unverifiedUnversionedYes; Both denied by the default `disallowedWindowOps` list when `allowWindowOps` is false; true overrides that list

import

OSC 52 write
osc-52-write
SupportedImported · unverifiedUnversionedYes; Both denied by the default `disallowedWindowOps` list when `allowWindowOps` is false; true overrides that list

import

OSC 8 hyperlinks
osc-8-hyperlinks
UnsupportedImported · unverifiedUnversionedNo (Deliberately unimplemented; see the xterm FAQ.)

import

X11 color names
osc-x11-color-names
SupportedImported · unverifiedUnversionedYes

import

256 colors
sgr-256-colors
SupportedImported · unverifiedUnversionedYes

import

Italic 3
sgr-3-italic
SupportedImported · unverifiedUnversionedYes

import

Colon form 38:2
sgr-38-2-colon-form
SupportedImported · unverifiedUnversionedYes

import

Truecolor 38;2
sgr-38-2-truecolor
SupportedImported · unverifiedUnversionedYes

import

Underline styles 4:n
sgr-4-underline-styles
SupportedImported · unverifiedUnversionedYes

import

Blink 5
sgr-5-blink
SupportedImported · unverifiedUnversionedYes

import

Overline 53
sgr-53-overline
SupportedImported · unverifiedUnversionedYes

import

Underline color 58
sgr-58-underline-color
Unsupportedpatch 411Patch 411 has no per-cell SGR 58 underline color. colorUL recolors underlined text as a whole and is a separate resource.

Checked 2026-09-10.

source

Strikethrough 9
sgr-9-strikethrough
SupportedImported · unverifiedUnversionedYes

import

Tektronix
tek-4014-graphics
SupportedImported · unverifiedUnversionedYes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html); [xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), `-t` and Tek window.)

import

bce
terminfo-bce
SupportedImported · unverifiedUnversionedYes

import

Ambiguous-width option
text-ambiguous-width
SupportedImported · unverifiedUnversionedYes ([xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), `cjkWidth`, `mkWidth`.)

import

Bold-is-bright option
text-bold-is-bright
SupportedImported · unverifiedUnversionedYes

import

Synthesized box drawing
text-box-drawing
SupportedImported · unverifiedUnversionedYes

import

8-bit C1 in UTF-8
text-c1-in-utf8
UnsupportedImported · unverifiedUnversionedNo ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Controls beginning with ESC".)

import

Italic face
text-italic-face
SupportedImported · unverifiedUnversionedYes

import

Non-UTF-8 locales
text-non-utf8-locales
SupportedImported · unverifiedUnversionedYes ([XTerm Control Sequences](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html), "Controls beginning with ESC".)

import

Bundled Unicode tables
text-unicode-tables
SupportedImported · unverifiedUnversionedYes

import

VS16 widens
text-vs16-width
PartialImported · unverifiedUnversionedPartial ([xterm manual](https://invisible-island.net/xterm/manpage/xterm.html), `cjkWidth`, `mkWidth`.)

import

2026 synchronized output
dec-mode-2026-synchronized-output
Unsupportedpatch 411Patch 411 ignores DEC private mode 2026.

Checked 2026-09-10.

source