Appearance
tmux
Multiplexer
Terminal multiplexer — session persistence, window management, and pane splitting. The most widely used multiplexer.
tmux (terminal multiplexer) was created by Nicholas Marriott in 2007 as a modern, BSD-licensed replacement for GNU Screen. It has become the de facto standard terminal multiplexer, used by millions of developers for session persistence, window management, and pane splitting.
As an intermediary between the terminal emulator and the application, tmux maintains its own VT parser and re-renders output through its internal grid. This means features must be explicitly supported by tmux to pass through — it doesn't transparently relay escape sequences. tmux has steadily added support for modern features: truecolor (since 2.2), OSC 8 hyperlinks (3.4), extended underlines, and partial kitty keyboard support.
tmux's pass-through mode (\ePtmux;) allows applications to send escape sequences directly to the outer terminal, bypassing tmux's parser. This is used for features tmux doesn't natively support, like sixel graphics and some query responses. However, pass-through is fragile and not universally reliable.
Backend: Terminal multiplexer — session persistence, window management, and pane splitting. The most widely used multiplexer. · v3.6a
87%
219 passed · 32 failed of 251 features
Tested: April 10, 2026
Character Sets
| Feature | Support | Notes |
|---|---|---|
| DEC line drawing character set | ✓ yes | |
| DEC Special Graphics | ✓ yes | |
| G0/G1 character set switching | ✓ yes | |
| UTF-8 mode | ✓ yes |
Cursor
| Feature | Support | Notes |
|---|---|---|
| ANSI restore cursor (CSI u) | ✓ yes | |
| ANSI save cursor (CSI s) | ✓ yes | |
| CPL cursor preceding line (CSI F) | ✓ yes | |
| CUD stops at bottom | ✓ yes | cursor at row 40 |
| CUP at screen boundaries | ✗ no | tmux reinterprets CUP coordinates within its own grid, boundary behavior differs |
| CUP with DECOM | ✓ yes | |
| CUU stops at top | ✓ yes | |
| Hide cursor (DECTCEM) | ✓ yes | |
| Cursor horizontal absolute (CHA) | ✓ yes | |
| HPA horizontal position absolute (CSI `) | ✓ yes | |
| Cursor position (CUP) | ✓ yes | |
| Cursor back (CUB) | ✓ yes | |
| Cursor down (CUD) | ✓ yes | |
| Cursor forward (CUF) | ✓ yes | |
| Cursor home | ✓ yes | |
| Cursor up (CUU) | ✓ yes | |
| Cursor next line (CNL) | ✓ yes | |
| Cursor position report (DSR 6) | ✓ yes | |
| Reverse Wrap (Mode 45) | ✓ yes | |
| Save/restore cursor (DECSC) | ✓ yes | |
| Cursor shape (DECSCUSR) | ✓ yes | |
| VPA vertical position absolute (CSI d) | ✓ yes |
Device Status
Editing
| Feature | Support | Notes |
|---|---|---|
| DECCARA — change attrs in rectangle | ✓ yes | sequence consumed |
| DECCRA — copy rectangular area | ✓ yes | sequence consumed |
| DECDC — delete columns (CSI Ps ' ~) | ✓ yes | sequence consumed |
| DECERA — erase rectangular area | ✓ yes | sequence consumed |
| DECFRA — fill rectangular area | ✓ yes | sequence consumed |
| DECIC — insert columns (CSI Ps ' }) | ✓ yes | sequence consumed |
| DECRARA — reverse attrs in rectangle | ✓ yes | sequence consumed |
| DECRQCRA — checksum rectangular area | ✓ yes | sequence consumed |
| DECSACE — select attribute-change extent | ✓ yes | sequence consumed |
| DECSERA — selective erase rectangular area | ✓ yes | sequence consumed |
| Delete characters (DCH) | ✓ yes | |
| Delete lines (DL) | ✓ yes | |
| Insert characters (ICH) | ✓ yes | |
| Insert lines (IL) | ✓ yes | |
| Repeat character (REP) | ✓ yes | |
| SL — shift left (CSI Ps SP @) | ✓ yes | sequence consumed |
| SR — shift right (CSI Ps SP A) | ✓ yes | sequence consumed |
Erase
| Feature | Support | Notes |
|---|---|---|
| Erase character (ECH) | ✓ yes | |
| ED at scroll region boundary | ✓ yes | |
| EL erases with bg color | ✓ yes | |
| Erase line (EL 2) | ✓ yes | |
| Erase to BOL (EL 1) | ✓ yes | |
| Erase to EOL (EL 0) | ✓ yes | |
| Erase above (ED 1) | ✓ yes | |
| Erase screen (ED 2) | ✓ yes | |
| Erase below (ED 0) | ✓ yes | |
| Erase scrollback (ED 3) | ✓ yes | |
| Selective Erase (DECSED) | ✓ yes |
Extensions
Input Protocols
| Feature | Support | Notes |
|---|---|---|
| Button-Event Mouse (1002) | ✓ yes | |
| CSI u Key Encoding | ✓ yes | |
| Kitty click events | ? unknown | |
| modifyOtherKeys | ✓ yes | |
| modifyOtherKeys mode 3 | ✓ yes | |
| Pixel Mouse Reporting (1016) | ✓ yes | |
| urxvt Mouse Reporting (1015) | ✓ yes | |
| X10 Mouse Tracking (9) | ✓ yes |
Modes
| Feature | Support | Notes |
|---|---|---|
| Enter alt screen (DECSET 1049) | ✓ yes | Behavioral: entered and responded |
| Exit alt screen (DECRST 1049) | ✓ yes | |
| Alt-scroll mouse wheel (?1007) | ✓ yes | Behavioral: ?1007 accepted |
| Alt screen clear-on-enter (?1047) | ✓ yes | Behavioral: ?1047 accepted |
| Save/restore cursor (?1048) | ✗ no | got 15;20, expected 5;10 |
| Alt screen legacy (?47) | ✓ yes | Behavioral: ?47 enter/exit accepted |
| App cursor keys (DECCKM) | ✓ yes | Behavioral: responsive after enable |
| Application keypad (DECKPAM) | ✓ yes | |
| Auto-wrap (DECAWM) | ✓ yes | Behavioral: wrap confirmed |
| Bracketed paste (DECSET 2004) | ✓ yes | DECRPM: mode reset |
| Mode 2031 color scheme reporting | ✓ yes | DECRPM: mode reset |
| DECCOLM 80/132 column switch (?3) | ✓ yes | Behavioral: ?3 accepted |
| DECSCLM — smooth scroll mode | ? unknown | |
| DECSSCLS — set scroll speed | ? unknown | |
| Focus tracking (DECSET 1004) | ✓ yes | DECRPM: mode reset |
| Insert/replace mode (IRM) | ✓ yes | |
| Left/Right Margins (DECLRMM, Mode 69) | ✓ yes | |
| All motion mouse (DECSET 1003) | ✓ yes | Behavioral: responsive after enable |
| SGR mouse mode (DECSET 1006) | ✓ yes | DECRPM: mode reset |
| Mouse tracking (DECSET 1000) | ✓ yes | Behavioral: responsive after enable |
| Origin mode (DECOM) | ✗ no | tmux's DECOM handling differs from direct terminal — origin mode not fully passed through |
| Reverse video (DECSCNM) | ✓ yes | Behavioral: responsive after enable |
| Synchronized output (DECSET 2026) | ✓ yes | Behavioral: responsive after enable |
| UTF-8 mouse mode (?1005) | ✓ yes | Behavioral: ?1005 accepted |
| Pop color palette (CSI # Q) | ✓ yes | Sequence consumed; terminal responsive |
| XTPOPSGR — pop SGR stack (CSI # }) | ✓ yes | Sequence consumed; terminal responsive |
| Push color palette (CSI # P) | ✓ yes | Sequence consumed; terminal responsive |
| XTPUSHSGR — push SGR stack (CSI # {) | ✓ yes | Sequence consumed; terminal responsive |
| XTRESTORE — restore DEC private modes (CSI ? Pm r) | ✓ yes | Sequence consumed; terminal responsive |
| XTSAVE — save DEC private modes (CSI ? Pm s) | ✓ yes | Sequence consumed; terminal responsive |
Reset
| Feature | Support | Notes |
|---|---|---|
| DECALN screen alignment (ESC # 8) | ✓ yes | |
| Backend reset() method | ✓ yes | cursor at 5;5 after DECSTR |
| Full reset (RIS) | ✓ yes | |
| SGR reset clears attributes | ✓ yes | |
| Soft reset (DECSTR) | ✓ yes |
Scrollback
| Feature | Support | Notes |
|---|---|---|
| Scrollback accumulates | ✓ yes | |
| Alt screen separate scrollback | ✓ yes | |
| DECSTBM constrains scrolling | ✓ yes | |
| DECSTBM reset to full screen | ✓ yes | cursor at row 40 (expected near bottom after DECSTBM reset) |
| Reverse index (RI) | ✓ yes | |
| Scroll down (SD) | ✓ yes | |
| Scroll up (SU) | ✓ yes | |
| Scroll region (DECSTBM) | ✓ yes | |
| Total line count | ✓ yes | Content written to scrollback |
SGR (Text Styling)
Text
| Feature | Support | Notes |
|---|---|---|
| Backspace (BS) | ✓ yes | |
| Basic text rendering | ✓ yes | |
| CBT backward tab (CSI Z) | ✗ no | cursor at col 1, expected 17 |
| CHT forward tab (CSI I) | ✗ no | cursor at col 1, expected 17 |
| Combining characters (0 cols) | ✓ yes | |
| Carriage return | ✓ yes | |
| HTS set tab stop (ESC H) | ✓ yes | |
| Index (IND) | ✓ yes | |
| Line feed | ✓ yes | |
| Next line (NEL) | ✓ yes | |
| Overwrite at cursor | ✓ yes | |
| Reverse Index at Scroll Top | ✓ yes | |
| Tab stops | ✓ yes | |
| TBC clear tab stop (CSI g) | ✗ no | cursor at col 120, expected 1 |
| CJK wide chars (2 cols) | ✓ yes | |
| Emoji wide chars (2 cols) | ✓ yes | |
| Regional indicator flags (2 cols) | ✓ yes | |
| Variation selector 16 (emoji presentation) | ✓ yes | |
| Emoji ZWJ sequences (2 cols) | ✓ yes | |
| Text wraps at width | ✓ yes |
Unicode
| Feature | Support | Notes |
|---|---|---|
| East Asian Ambiguous Width | ✓ yes | width=1 (ambiguous chars vary by terminal/locale) |
| Grapheme Cluster Cursor Movement | ✓ yes | |
| Tab Stops (HT) | ✓ yes | |
| Wide Char at Line Wrap | ✓ yes |