Skip to content

VT100

Features from the DEC VT100 terminal (1978), the de facto standard for terminal emulation. The VT100 defined the escape sequence grammar (ESC [ for CSI), cursor addressing (CUP), scrolling regions (DECSTBM), and character sets that virtually every terminal emulates today. When a terminal calls itself "VT100-compatible," it means it supports this baseline. The VT series continued through VT220 (1983, added 8-bit controls), VT320 (1987), VT420 (1990), and VT510 (1993), each adding features — but VT100 remains the foundational compatibility target. DEC shipped roughly 6 million VT-series terminals over the product line's lifetime. The VT100 launched at $1,800 (about $8,700 in 2024 dollars) and became so ubiquitous that its escape sequences became the lingua franca of terminal communication.

57 features in this standard · Specification ↗

The VT100 protocol defines the sequences that form the baseline of terminal communication. Scroll regions (ESC [r for DECSTBM) allow applications to define a portion of the screen that scrolls independently — the foundation of split-pane editors and status bars. Cursor save/restore (ESC 7 / ESC 8) lets applications preserve cursor position during screen updates. Auto-wrap mode (DECAWM) controls whether text wraps at the right margin or is clipped.

Three VT100 features matter most for modern developers: cursor addressing (ESC [row;colH for CUP), which gives applications random access to any screen position; line drawing characters via the DEC Special Graphics character set (activated by ESC (0), used by every box-drawing TUI; and SGR basic colors (the 8 foreground/background colors from SGR 30-37 and 40-47 that predate 256-color and truecolor extensions).

VT100 compatibility is universally supported. Every terminal emulator, every SSH connection, every container runtime assumes VT100 as the minimum. The TERM=vt100 terminfo entry is the fallback when nothing else is known about a terminal's capabilities.

Historical Context

The DEC VT100, released in August 1978, was the first popular terminal to implement the ANSI X3.64 (ECMA-48) escape sequence standard. Running on an Intel 8080 CPU with just 3KB of RAM and 8KB of ROM, it proved that the new standard could be implemented affordably — silencing critics who called it 'beyond the state of the art.'

The VT100's 80×24 display became the universal terminal size (inherited from IBM's 3270, which got it from 80-column punch cards). Its escape sequence grammar — ESC [ for CSI, the parameter syntax, scroll regions (DECSTBM), character sets — defined what 'terminal compatible' means to this day. DEC shipped over 6 million terminals in the VT series.

Every modern terminal emulator is, at its core, a VT100 emulator with extensions. When software claims 'VT100 compatibility,' it's promising support for the specific behaviors this $1,800 box established nearly 50 years ago.

Analysis2026-04-06

VT100 defines 57 features in the terminfo.dev matrix. Average adoption across terminals: 95%. Lowest: vt100.js at 86% (49/57).

Terminal Applications

FeatureiTerm2GhosttyVS CodeWarpCursorTerminal.app
Reset all (SGR 0)
Bold (SGR 1)
Faint/dim (SGR 2)
Underline (SGR 4)
Blink (SGR 5)
Inverse video (SGR 7)
App cursor keys (DECCKM)
Application keypad (DECKPAM)
Auto-wrap (DECAWM)
Backspace (BS)
Basic text rendering
Carriage return
CUD stops at bottom
CUP at screen boundaries
CUP with DECOM
Cursor back (CUB)
Cursor down (CUD)
Cursor forward (CUF)
Cursor home
Cursor position (CUP)
Cursor position report (DSR 6)
Cursor up (CUU)
CUU stops at top
DEC line drawing character set
DEC Special Graphics
DECALN screen alignment (ESC # 8)
DECCOLM 80/132 column switch (?3)
DECSTBM constrains scrolling
DECSTBM reset to full screen
Delete lines (DL)
Device status report (DSR 5)
ED at scroll region boundary
EL erases with bg color
Erase above (ED 1)
Erase below (ED 0)
Erase line (EL 2)
Erase screen (ED 2)
Erase to BOL (EL 1)
Erase to EOL (EL 0)
Full reset (RIS)
G0/G1 character set switching
HTS set tab stop (ESC H)
Index (IND)
Insert lines (IL)
Line feed
Next line (NEL)
Origin mode (DECOM)
Overwrite at cursor
Primary device attributes (DA1)
Reverse index (RI)
Reverse Index at Scroll Top
Save/restore cursor (DECSC)
Scroll region (DECSTBM)
Tab stops
Tab Stops (HT)
TBC clear tab stop (CSI g)
Text wraps at width

Headless Backends

Parser correctness tested via Termless. A means the parser accepts the sequence, not that it renders correctly.

Featurevtermxterm.jsKittyAlacrittyWezTermvt100.js
Reset all (SGR 0)
Bold (SGR 1)
Faint/dim (SGR 2)
Underline (SGR 4)
Blink (SGR 5)~~~
Inverse video (SGR 7)
App cursor keys (DECCKM)
Application keypad (DECKPAM)~~~
Auto-wrap (DECAWM)
Backspace (BS)
Basic text rendering
Carriage return
CUD stops at bottom
CUP at screen boundaries
CUP with DECOM
Cursor back (CUB)
Cursor down (CUD)
Cursor forward (CUF)
Cursor home
Cursor position (CUP)
Cursor position report (DSR 6)~~~~
Cursor up (CUU)
CUU stops at top
DEC line drawing character set
DEC Special Graphics
DECALN screen alignment (ESC # 8)
DECCOLM 80/132 column switch (?3)
DECSTBM constrains scrolling
DECSTBM reset to full screen
Delete lines (DL)
Device status report (DSR 5)~~~~
ED at scroll region boundary
EL erases with bg color
Erase above (ED 1)
Erase below (ED 0)
Erase line (EL 2)
Erase screen (ED 2)
Erase to BOL (EL 1)
Erase to EOL (EL 0)
Full reset (RIS)
G0/G1 character set switching
HTS set tab stop (ESC H)
Index (IND)
Insert lines (IL)
Line feed
Next line (NEL)
Origin mode (DECOM)~
Overwrite at cursor
Primary device attributes (DA1)~~~~
Reverse index (RI)
Reverse Index at Scroll Top
Save/restore cursor (DECSC)
Scroll region (DECSTBM)
Tab stops
Tab Stops (HT)
TBC clear tab stop (CSI g)
Text wraps at width