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-09-28

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

Terminal Applications ​

FeatureiTerm2GhosttyKittyVS 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.

Featurevterm.jsxterm.jsAlacrittyWezTermvt100.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✓✓✓✓✓