Skip to content

GNU Screen

Multiplexer

The original terminal multiplexer. Session persistence and window management since 1987.

GNU Screen, originally written by Oliver Laumann at the Technical University of Berlin in 1987, is the original terminal multiplexer and one of the oldest continuously maintained Unix utilities. It invented the concept of detach and reattach — disconnecting from a terminal session and reconnecting later with all processes still running. This was revolutionary for system administrators working over dial-up and unreliable network connections, and the concept became fundamental to remote server management.

Screen's VT emulation is conservative, supporting basic ANSI/VT100 features but lacking many modern extensions. It does not support truecolor (24-bit RGB), kitty keyboard protocol, or kitty graphics. Its 256-color support requires explicit configuration. As an intermediary, Screen strips or mishandles many modern escape sequences that newer terminals support.

While tmux (written in 2007 as a BSD-licensed alternative) has largely replaced Screen for new users, Screen remains installed by default on many Linux distributions and is still the multiplexer of choice in embedded systems, rescue environments, and minimal server images. Its hardstatus line — a customizable status bar at the bottom of the terminal — was the precursor to tmux's status line and influenced the design of terminal status bars everywhere.

Backend: The original terminal multiplexer. Session persistence and window management since 1987. · v4.00.03
68%
171 passed · 80 failed of 251 features
Tested: April 10, 2026

Version History

VersionSupportScoreFeatures
5.0.1
83%136 / 164
4.00.03
68%171 / 251

Character Sets

FeatureSupportNotes
DEC line drawing character set✗ nocursor at col 19, expected 7
DEC Special Graphics✗ nocursor at col 1, expected 2
G0/G1 character set switching✗ nocursor at col 19, expected 2
UTF-8 mode✗ nocursor at col 1, expected 2

Cursor

FeatureSupportNotes
ANSI restore cursor (CSI u)✗ nogot 5;10, expected 4;6
ANSI save cursor (CSI s)✗ nogot 1;2, expected 3;5
CPL cursor preceding line (CSI F)✗ nogot 1;2, expected 4;1
CUD stops at bottom✗ nocursor at row 1
CUP at screen boundaries✓ yes
CUP with DECOM✗ nogot 1;2, expected 5;1
CUU stops at top✓ yes
Hide cursor (DECTCEM)✓ yes
Cursor horizontal absolute (CHA)✗ nogot 1;2, expected 3;15
HPA horizontal position absolute (CSI `)✗ nogot 4;1, expected 3;15
Cursor position (CUP)✗ nogot 1;2, expected 5;10
Cursor back (CUB)✓ yes
Cursor down (CUD)✗ nogot 1;2, expected 4;1
Cursor forward (CUF)✗ nogot 1;2, expected 1;6
Cursor home✗ nogot 1;2, expected 1;1
Cursor up (CUU)✗ nogot 1;2, expected 4;1
Cursor next line (CNL)✗ nogot 1;2, expected 4;1
Cursor position report (DSR 6)✗ nogot 1;2, expected 3;5
Reverse Wrap (Mode 45)✓ yes
Save/restore cursor (DECSC)✗ nogot 1;1, expected 3;5
Cursor shape (DECSCUSR)✓ yes
VPA vertical position absolute (CSI d)✗ nogot 4;1, expected 10;5

Device Status

FeatureSupportNotes
Mode Report (DECRPM)✗ noScreen does not support DECRPM (mode reporting)
Request Setting (DECRQSS)✓ yesScreen does not support DECRQSS (setting reporting)
DSR ?996 — color scheme query? unknown
COLORTERM env variable? unknown
KITTY_* env variables? unknown
LC_TERMINAL env variable? unknown
NO_COLOR env variable? unknown
TERM env variable? unknown
TERM_PROGRAM env variable? unknown
VTE_VERSION env variable? unknown
WEZTERM_* env variables? unknown
WT_SESSION env variable? unknown
Primary device attributes (DA1)✓ yes
Secondary Device Attributes (DA2)✓ yes
Device status report (DSR 5)✓ yes
Feature Reporting (TERM_FEATURES)✓ yesScreen does not support XTGETTCAP terminal-features query
Tertiary Device Attributes (DA3)✓ yesScreen does not forward DA3 to the outer terminal
Query Terminfo (XTGETTCAP)✗ noScreen does not support XTGETTCAP
XTGETXRES — query resource value (DCS + Q)? unknown
XTREPORTCOLORS — report color capabilities (CSI # R)? unknown
Terminal Version (XTVERSION)✗ noScreen does not support XTVERSION query
Report window size in pixels (CSI 14 t)✓ yes387x570 px
Report cell size in pixels (CSI 16 t)✗ noNo XTWINOPS 16 response
Report text area size in chars (CSI 18 t)✓ yes25 rows x 80 cols
Report icon label (CSI 20 t)✓ yesicon label: bun
Report window title (CSI 21 t)✗ noNo XTWINOPS 21 response (terminal may refuse for security)
Push title/icon stack (CSI 22 ; 0 t)✓ yesSequence consumed; terminal responsive
Pop title/icon stack (CSI 23 ; 0 t)✓ yesSequence consumed; terminal responsive

Editing

FeatureSupportNotes
DECCARA — change attrs in rectangle✓ yessequence consumed
DECCRA — copy rectangular area✓ yessequence consumed
DECDC — delete columns (CSI Ps ' ~)✓ yessequence consumed
DECERA — erase rectangular area✓ yessequence consumed
DECFRA — fill rectangular area✓ yessequence consumed
DECIC — insert columns (CSI Ps ' })✓ yessequence consumed
DECRARA — reverse attrs in rectangle✓ yessequence consumed
DECRQCRA — checksum rectangular area✓ yessequence consumed
DECSACE — select attribute-change extent✓ yessequence consumed
DECSERA — selective erase rectangular area✓ yessequence consumed
Delete characters (DCH)✗ nocursor at col 6, expected 2
Delete lines (DL)✗ nocursor at row 4, expected 3
Insert characters (ICH)✓ yes
Insert lines (IL)✗ nocursor at row 1, expected 3
Repeat character (REP)✗ noScreen does not support REP (repeat character)
SL — shift left (CSI Ps SP @)✓ yessequence consumed
SR — shift right (CSI Ps SP A)✓ yessequence consumed

Erase

FeatureSupportNotes
Erase character (ECH)✗ nocursor at col 4, expected 2
ED at scroll region boundary✓ yes
EL erases with bg color✓ yes
Erase line (EL 2)✗ nocursor at col 1, expected 3
Erase to BOL (EL 1)✗ nocursor at col 1, expected 3
Erase to EOL (EL 0)✗ nocursor at col 1, expected 3
Erase above (ED 1)✗ nocursor at 1;3, expected 5;5
Erase screen (ED 2)✗ nocursor at 3;5, expected 5;5
Erase below (ED 0)✗ nocursor at 1;3, expected 5;5
Erase scrollback (ED 3)✗ nocursor at 1;1, expected 5;5
Selective Erase (DECSED)✓ yes

Extensions

FeatureSupportNotes
System clipboard paste? unknown
Font ligatures? unknown
iTerm2 Inline Images (OSC 1337)✓ yes
Kitty graphics protocol✓ yesScreen does not support kitty graphics protocol
Kitty graphics: animation✓ yes
Kitty graphics: display✓ yes
Kitty graphics: transmit✓ yes
Kitty graphics: Unicode placeholders✗ noU=1 didn't render
Kitty keyboard protocol✓ yesScreen does not support kitty keyboard protocol
Kitty keyboard: DISAMBIGUATE (flag 1)✓ yes
Kitty keyboard: REPORT_ALL_KEYS (flag 8)✗ no
Kitty keyboard: REPORT_ALTERNATE (flag 4)✗ no
Kitty keyboard: REPORT_EVENTS (flag 2)✗ no
Kitty keyboard: REPORT_TEXT (flag 16)✗ no
Desktop Notifications (OSC 9/777)✓ yes
VS Code Shell Integration (OSC 633)✓ yes
Icon and title (OSC 0)✓ yes
Icon name (OSC 1)✓ yes
Foreground color query (OSC 10)✓ yes
Reset color palette (OSC 104)✓ yes
Background color query (OSC 11)✗ noNo OSC 11 response
Reset foreground color (OSC 110)✓ yes
Reset background color (OSC 111)✓ yes
Reset cursor color (OSC 112)✓ yes
Reset pointer fg color (OSC 113)✓ yes
Reset pointer bg color (OSC 114)✓ yes
Reset highlight background (OSC 117)✓ yes
Reset highlight foreground (OSC 119)✓ yes
Cursor color (OSC 12)✗ noNo OSC 12 response
OSC 133;A prompt start (FTCS_PROMPT)✗ nocursor at col 1, expected 2 (OSC 133;A may not be consumed)
OSC 133;B command start (FTCS_COMMAND_START)✗ nocursor at col 1, expected 2 (OSC 133;B may not be consumed)
OSC 133;C command executed (FTCS_COMMAND_EXECUTED)✓ yes
OSC 133;D command finished (FTCS_COMMAND_FINISHED)✓ yes
OSC 133;P properties✓ yes
iTerm2 Capability Reporting (OSC 1337)✗ noiTerm2-specific protocol not supported by Screen
iTerm2 Cell Size Reporting (OSC 1337)✗ noiTerm2-specific protocol not supported by Screen
Highlight background (OSC 17)✓ yes
Set Wayland app-id (OSC 176)✓ yes
Highlight foreground (OSC 19)✓ yes
Window title (OSC 2)✓ yes
Kitty color protocol (OSC 21)✓ yesConsumed (no query response)
Pointer shape (OSC 22)✓ yes
Kitty color stack push (OSC 30001)✓ yes
Systemd context (OSC 3008)✓ yes
Kitty color stack pop (OSC 30101)✓ yes
Color palette (OSC 4)✓ yes
Audio sound (OSC 440)✓ yes
Special color (OSC 5)✗ noNo OSC 5 response
Clipboard access (OSC 52)✓ yes
OSC 52 clipboard read✓ yes
OSC 52 clipboard write✓ yes
OSC 5522 advanced clipboard✗ noNo OSC 5522 response
Screen flash (OSC 555)✓ yes
OSC 633;A prompt start✓ yes
OSC 633;B prompt end✓ yes
OSC 633;C pre-execution✓ yes
OSC 633;D command finished✓ yes
OSC 633;E set commandline✓ yes
OSC 633;P properties✓ yes
OSC 66 text sizing✓ yesConsumed (no query)
VTE termprop (OSC 666)✓ yes
Current directory (OSC 7)✓ yes
Locale query/set (OSC 701)✓ yes
Version query (OSC 702)✓ yes
Set normal font (OSC 710)✓ yes
Scroll view up (OSC 720)✓ yes
Cell size report (OSC 776)✓ yes
Notifications (OSC 777)✓ yes
Font size query/set (OSC 7770)✓ yes
Font + window size (OSC 7777)✓ yes
Hyperlinks (OSC 8)✗ nocursor at col 1, expected 5 (4 visible chars)
OSC 9;4 progress bar✓ yes
Desktop notifications (OSC 99)✓ yes
Text reflow on resize✓ yesScreen 4.x does not support text reflow on resize (fixed in 5.0)
Semantic prompts (OSC 133)✓ yes
Sixel graphics✗ noScreen does not support sixel graphics
Sixel support in DA1✓ yesDA1 attrs: 64;1;2;4;6;17;18;21;22;52
Sixel geometry report (CSI ? Pi;Pa;Pv S)? unknown
24-bit truecolor✗ nocursor at col 1, expected 2 (truecolor sequence may have been printed literally)

Modes

FeatureSupportNotes
Enter alt screen (DECSET 1049)✓ yesDECRPM: mode reset
Exit alt screen (DECRST 1049)✓ yes
Alt-scroll mouse wheel (?1007)✓ yesDECRPM: mode reset
Alt screen clear-on-enter (?1047)✓ yesDECRPM: mode reset
Save/restore cursor (?1048)✓ yes
Alt screen legacy (?47)✓ yesBehavioral: ?47 enter/exit accepted
App cursor keys (DECCKM)✓ yesDECRPM: mode reset
Application keypad (DECKPAM)✓ yes
Auto-wrap (DECAWM)✓ yesDECRPM: mode reset
Bracketed paste (DECSET 2004)✓ yesDECRPM: mode reset
Mode 2031 color scheme reporting✓ yesDECRPM: mode reset
DECCOLM 80/132 column switch (?3)✓ yesDECRPM: mode reset
DECSCLM — smooth scroll mode? unknown
DECSSCLS — set scroll speed? unknown
Focus tracking (DECSET 1004)✓ yesDECRPM: mode set
Insert/replace mode (IRM)✓ yes
Left/Right Margins (DECLRMM, Mode 69)✓ yes
All motion mouse (DECSET 1003)✓ yesDECRPM: mode reset
SGR mouse mode (DECSET 1006)✓ yesDECRPM: mode reset
Mouse tracking (DECSET 1000)✓ yesDECRPM: mode reset
Origin mode (DECOM)✓ yesDECRPM: mode reset
Reverse video (DECSCNM)✓ yesDECRPM: mode set
Synchronized output (DECSET 2026)✓ yesDECRPM: mode reset
UTF-8 mouse mode (?1005)✓ yesDECRPM: mode reset
Pop color palette (CSI # Q)✓ yesSequence consumed; terminal responsive
XTPOPSGR — pop SGR stack (CSI # })✓ yesSequence consumed; terminal responsive
Push color palette (CSI # P)✓ yesSequence consumed; terminal responsive
XTPUSHSGR — push SGR stack (CSI # {)✓ yesSequence consumed; terminal responsive
XTRESTORE — restore DEC private modes (CSI ? Pm r)✓ yesSequence consumed; terminal responsive
XTSAVE — save DEC private modes (CSI ? Pm s)✓ yesSequence consumed; terminal responsive

Reset

FeatureSupportNotes
DECALN screen alignment (ESC # 8)✓ yes
Backend reset() method✓ yescursor at 1;1 after DECSTR
Full reset (RIS)✓ yes
SGR reset clears attributes✗ nocursor at col 1, expected 2
Soft reset (DECSTR)✓ yes

Scrollback

FeatureSupportNotes
Scrollback accumulates✓ yes
Alt screen separate scrollback✓ yesScreen's alternate screen buffer handling differs — scrollback not fully preserved
DECSTBM constrains scrolling✓ yes
DECSTBM reset to full screen✗ nocursor at row 5 (expected near bottom after DECSTBM reset)
Reverse index (RI)✗ nogot 5;1, expected 1;5
Scroll down (SD)✓ yes
Scroll up (SU)✗ nocursor at 5;1, expected 5;5
Scroll region (DECSTBM)✓ yes
Total line count✓ yesContent written to scrollback

Text

FeatureSupportNotes
Backspace (BS)✗ nocursor at col 2, expected 4
Basic text rendering✗ nocursor at col 2, expected 6
CBT backward tab (CSI Z)✗ nocursor at col 1, expected 17
CHT forward tab (CSI I)✗ nocursor at col 10, expected 17
Combining characters (0 cols)✓ yes
Carriage return✗ nocursor at col 2, expected 1
HTS set tab stop (ESC H)✗ nocursor at col 2, expected 6
Index (IND)✗ nogot 1;2, expected 4;5
Line feed✗ nocursor at row 1, expected 4
Next line (NEL)✗ nogot 1;2, expected 4;1
Overwrite at cursor✗ nocursor at col 5, expected 3
Reverse Index at Scroll Top✗ nocursor at row 1, expected 3
Tab stops✗ noScreen's tab handling may differ from direct terminal
TBC clear tab stop (CSI g)✗ nocursor at col 2, expected 1
CJK wide chars (2 cols)✗ nowidth=1, expected 2
Emoji wide chars (2 cols)✗ noScreen 4.x has limited Unicode width awareness — emoji rendered as narrow
Regional indicator flags (2 cols)✗ nowidth=5, expected 2
Variation selector 16 (emoji presentation)✗ noScreen 4.x does not handle VS16 emoji variation selectors
Emoji ZWJ sequences (2 cols)✗ noScreen 4.x does not handle ZWJ emoji sequences
Text wraps at width✗ nocursor at 1;2, expected 2;2

Unicode

FeatureSupportNotes
East Asian Ambiguous Width✗ nowidth=18 (ambiguous chars vary by terminal/locale)
Grapheme Cluster Cursor Movement✗ noScreen 4.x does not support grapheme cluster cursor positioning
Tab Stops (HT)✗ noScreen's tab stop handling differs from direct terminal
Wide Char at Line Wrap✗ nocursor at row 1, expected 2 (wide char should wrap)