Results
This is a volunteer-maintained analysis created by and for terminal emulator and TUI/CLI library developers.
We welcome productive contributions and corrections to improve the accuracy and completeness of these measurements.
Note
These test results are provided as-is and we do not guarantee their correctness. The scores and ratings presented here are objective measurements of Unicode and terminal feature support by analysis of automatic response, and should not be interpreted as an overall assessment of terminal emulator quality or a recommendation. Many factors beyond Unicode support contribute to terminal quality. Some terminals may optionally support features and modes not represented here. This data represents only automatic responses received when launched in their default configurations and packaged build options. Some languages and emoji tests may also pass ‘accidentally’!
General Tabulated Summary
Rank |
Terminal Software |
Software Version |
OS System |
Score |
WIDE |
NARROW |
LANG |
ZWJ |
VS16 |
VS15 |
SRI |
SFZ |
RI |
Features |
Graphics |
Resources |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
0.46.2 |
Linux |
||||||||||||||
2 |
1.27.0 |
Linux |
||||||||||||||
3 |
1.3.2… |
Linux |
||||||||||||||
4 |
13.17 |
Windows |
||||||||||||||
5 |
3.6.10 |
Darwin |
||||||||||||||
6 |
0.4.5 |
Linux |
||||||||||||||
7 |
23.08.5 |
Linux |
||||||||||||||
8 |
0.6.3.8249 |
Linux |
||||||||||||||
9 |
3.4 |
Linux |
||||||||||||||
10 |
1.24.11321.0 |
Windows |
||||||||||||||
11 |
20240203… |
Linux |
||||||||||||||
12 |
v0.2026.05.27.15.44.stable_01 |
Linux |
||||||||||||||
13 |
5.6.0 |
Linux |
||||||||||||||
14 |
3.9.4 |
Linux |
||||||||||||||
15 |
4403 |
Linux |
||||||||||||||
16 |
410 |
Linux |
||||||||||||||
17 |
0.9.9 (r4) |
Linux |
||||||||||||||
18 |
9.31… |
Linux |
||||||||||||||
19 |
1.0.230 |
Linux |
||||||||||||||
20 |
Linux |
|||||||||||||||
21 |
2.2.1 |
Linux |
||||||||||||||
22 |
0.9.2 |
Linux |
||||||||||||||
23 |
0.81.4 |
Linux |
||||||||||||||
24 |
465 |
Darwin |
||||||||||||||
25 |
0.84… |
Linux |
||||||||||||||
26 |
5.0.1 |
Linux |
||||||||||||||
27 |
0.16… |
Linux |
||||||||||||||
28 |
1.13.0 |
Linux |
||||||||||||||
29 |
0.4.1… |
Linux |
||||||||||||||
30 |
3.50.1 (VTE/8400) |
Linux |
||||||||||||||
31 |
1.1.3 (VTE/8400) |
Linux |
||||||||||||||
32 |
2.1.3 (VTE/8400) |
Linux |
||||||||||||||
33 |
2.0.0beta2… |
Linux |
||||||||||||||
34 |
0.3 |
Linux |
||||||||||||||
35 |
3.4.1 |
Linux |
||||||||||||||
36 |
9.7.2 |
Linux |
||||||||||||||
37 |
6.1.0… |
Linux |
||||||||||||||
38 |
15.0.1… |
Linux |
||||||||||||||
39 |
3.8.1 |
Windows |
||||||||||||||
40 |
23.07.24 |
Windows |
† This terminal supports the Kitty Text Sizing protocol, which allows any application to programmatically set character widths, remediating width issues for complex languages, emoji, and other problematic codepoints. It is scored 100% on WIDE, NARROW, LANG, ZWJ, VS16, VS15, SRI, SFZ, and RI.
Terminal Features
This table shows notable terminal features for each terminal,
matching the feature detection performed by ucs-detect.
Rank |
Terminal |
FEAT Score |
Bracketed Paste (2004) |
Synced Output (2026) |
Focus Events (1004) |
Mouse SGR (1006) |
Graphemes (2027) |
Bracketed Paste MIME (5522) |
Kitty Keyboard |
Graphics |
XTGETTCAP |
Text Size (OSC 66) |
Kitty Clipboard |
OSC 52 Clipboard |
Kitty Ptr (OSC 22) |
Kitty Notif (OSC 99) |
Color Report (OSC 10/11) |
Truecolor |
Identification |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
|||||||||||||||||||
2 |
|||||||||||||||||||
3 |
|||||||||||||||||||
4 |
|||||||||||||||||||
5 |
|||||||||||||||||||
6 |
|||||||||||||||||||
7 |
|||||||||||||||||||
8 |
|||||||||||||||||||
9 |
|||||||||||||||||||
10 |
|||||||||||||||||||
11 |
|||||||||||||||||||
12 |
|||||||||||||||||||
13 |
|||||||||||||||||||
14 |
|||||||||||||||||||
15 |
|||||||||||||||||||
16 |
|||||||||||||||||||
17 |
|||||||||||||||||||
18 |
|||||||||||||||||||
19 |
|||||||||||||||||||
20 |
|||||||||||||||||||
21 |
|||||||||||||||||||
22 |
|||||||||||||||||||
23 |
|||||||||||||||||||
24 |
|||||||||||||||||||
25 |
|||||||||||||||||||
26 |
|||||||||||||||||||
27 |
|||||||||||||||||||
28 |
|||||||||||||||||||
29 |
|||||||||||||||||||
30 |
|||||||||||||||||||
31 |
|||||||||||||||||||
32 |
|||||||||||||||||||
33 |
|||||||||||||||||||
34 |
|||||||||||||||||||
35 |
|||||||||||||||||||
36 |
|||||||||||||||||||
37 |
|||||||||||||||||||
38 |
|||||||||||||||||||
39 |
|||||||||||||||||||
40 |
Truecolor Detection
This table shows which methods can be used to detect 24-bit
truecolor support for each terminal emulator. no cells are
yellow when only COLORTERM detects support (COLORTERM environment
variable is not forwarded over SSH without
SendEnv / AcceptEnv configuration),
grey when at least one other method succeeds, and red when no
method can detect Truecolor support.
Terminal |
XTGETTCAP (RGB) |
DECRQSS |
COLORTERM |
|---|---|---|---|
no |
|||
no |
|||
no |
|||
no |
no |
||
no |
no |
||
no |
no |
no |
|
no |
|||
no |
no |
||
no |
no |
no |
|
no |
no |
||
no |
no |
||
no |
|||
no |
no |
||
no |
no |
no |
|
no |
no |
||
no |
no |
||
no |
no |
||
no |
no |
no |
|
no |
no |
||
no |
no |
||
no |
no |
no |
|
no |
no |
||
no |
no |
||
no |
no |
no |
|
no |
no |
||
no |
|||
no |
no |
||
no |
no |
no |
|
no |
no |
||
no |
no |
no |
|
no |
no |
no |
|
no |
no |
no |
OSC 52 Clipboard Detection
This table shows which methods can be used to detect OSC 52
clipboard support for each terminal emulator. DA1 extension 52
is the mechanism defined by the vt-extensions spec; XTGETTCAP
Ms is an alternative capability query that may work on
terminals not advertising the DA1 extension.
Terminal |
DA1 ext 52 |
XTGETTCAP Ms |
|---|---|---|
Terminal Identification
This table shows which methods can be used to identify the
terminal software name and version. XTVERSION, XTGETTCAP
TN, and ENQ are active escape sequence queries (work
over SSH). TERM_PROGRAM and TERM are environment variables;
TERM_PROGRAM is not forwarded over SSH without SendEnv /
AcceptEnv configuration, while TERM is (though some
protocols such as Serial do not forward TERM).
Terminal |
XTVERSION |
XTGETTCAP TN |
ENQ |
TERM_PROGRAM |
TERM |
|---|---|---|---|---|---|
Identifiable by XTVERSION (22 of 40): AbsoluteTelnet/SSH, Bobcat, GNOME Terminal, Konsole, LXTerminal, Rio, Terminator, Warp, WezTerm, XFCE Terminal, XTerm, Zellij, contour, foot, ghostty, iTerm2, kitty, libvterm, mlterm, terminology, tmux, xterm.js (active query, works over SSH).
Not identifiable (8 of 40): ConEmu, QTerminal, TeraTerm, WindowsTerminal, cool-retro-term, securecrt, weston-terminal, zutty
Identifiable by TERM_PROGRAM only (4 of 40): Apple_Terminal, Hyper, Tabby, mintty (environment variable, not forwarded over SSH).
Identifiable by ENQ only (3 of 40): Extraterm, pterm, urxvt (active query, works over SSH).
Identifiable by TERM only (3 of 40): GNU Screen, alacritty, st (environment variable, forwarded over SSH).
Terminal Capabilities (XTGETTCAP)
No Support (55.0%): Bobcat, ConEmu, Extraterm, GNU Screen, Hyper, Konsole, Tabby, Warp, WindowsTerminal, Zellij, alacritty, libvterm, mintty, pterm, securecrt, st, terminology, tmux, urxvt, weston-terminal, xterm.js, zutty
Full XTGETTCAP capability support (20.0%): AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty. A full terminfo(5) database can be reconstructed from XTGETTCAP queries using ttyscan. A preferred TERM from TN, and COLORTERM=truecolor from RGB may be derived.
Partial XTGETTCAP capability support (17.5%): GNOME Terminal, LXTerminal, TeraTerm, Terminator, XFCE Terminal, XTerm, mlterm. A preferred TERM from TN, and COLORTERM=truecolor from RGB may be derived.
Non-compliant (7.5%): Apple_Terminal, QTerminal, cool-retro-term – failed to parse DCS queries, displaying raw sequence output.
This table shows XTGETTCAP terminfo capability values reported by each terminal. Terminals are grouped by shared values for each capability.
Capability |
Description |
Terminals and Values |
|---|---|---|
TN |
Terminal name |
WezTerm: WezTerm
AbsoluteTelnet/SSH, GNOME Terminal, LXTerminal, Terminator, XFCE Terminal, contour, iTerm2: |
colors |
Max colors on screen |
AbsoluteTelnet/SSH, GNOME Terminal, LXTerminal, Rio, TeraTerm, Terminator, WezTerm, XFCE Terminal, XTerm, foot, ghostty, iTerm2, kitty, mlterm: 256
contour: |
RGB |
Bits per color channel (8 = 24-bit truecolor) |
AbsoluteTelnet/SSH, GNOME Terminal, LXTerminal, Terminator, XFCE Terminal, XTerm, foot, ghostty, iTerm2: 8
Rio, WezTerm, contour: |
AX |
Supports default colors |
iTerm2: 1 |
BD |
Enter bold mode (kitty) |
|
BE |
Exit bold mode (kitty) |
|
Cr |
Set cursor color |
|
Cs |
Reset cursor color |
contour, foot: |
E3 |
Erase scrollback |
|
Ms |
Clipboard set |
foot, kitty: |
PE |
Presentation end (kitty) |
|
PS |
Presentation start (kitty) |
|
RV |
Enter reverse mode (kitty) |
|
Rect |
Rectangle operations |
foot: |
Rmol |
Reset overline mode |
contour: |
Se |
Reset underline style |
contour, foot: |
Setulc |
Set underline color |
contour, kitty: |
Smol |
Set overline mode |
|
Smulx |
Styled underline |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, kitty: |
Ss |
Set underline style |
Rio, WezTerm, contour, foot, ghostty, iTerm2: |
Sync |
Synchronized output |
Rio, kitty: |
TS |
Terminal state query |
foot: |
Tc |
Truecolor (24-bit RGB) |
WezTerm: 1 |
XM |
Enter marks mode (kitty) |
|
XR |
Enter reset mode (kitty) |
|
XT |
Xterm extensions |
iTerm2: 1 |
acsc |
Alternate character set |
ghostty, kitty: |
am |
Auto right margin |
|
bce |
Background color erase |
|
bel |
Bell |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
blink |
Enter blink mode |
AbsoluteTelnet/SSH, Rio, WezTerm, foot, ghostty, iTerm2, kitty: |
bold |
Enter bold mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
bw |
Auto left margin |
iTerm2: 0 |
ccc |
Can redefine colors |
|
civis |
Hide cursor |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
clear |
Clear screen |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cnorm |
Normal cursor |
kitty: |
cols |
Columns |
|
cr |
Carriage return |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
csr |
Change scroll region |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cub |
Cursor left n |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cub1 |
Cursor left |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cud |
Cursor down n |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cud1 |
Cursor down |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cuf |
Cursor right n |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cuf1 |
Cursor right |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cup |
Cursor address |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cuu |
Cursor up n |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cuu1 |
Cursor up |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
cvvis |
Very visible cursor |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
da |
Memory above |
iTerm2: 0 |
db |
Memory below |
iTerm2: 0 |
dch |
Delete n characters |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
dch1 |
Delete character |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
dim |
Enter dim mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
dl |
Delete n lines |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
dl1 |
Delete line |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
dsl |
Disable status line |
contour: |
ech |
Erase characters |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
ed |
Clear to end of screen |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
el |
Clear to end of line |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
el1 |
Clear to start of line |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
eslok |
Status line escape OK |
iTerm2: 0 |
fd |
Enter font mode (kitty) |
|
fe |
Exit font mode (kitty) |
|
flash |
Flash screen |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, ghostty, iTerm2, kitty: |
fsl |
From status line |
|
home |
Cursor home |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
hpa |
Horizontal position |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
hs |
Has status line |
|
ht |
Horizontal tab |
|
hts |
Set tab stop |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
ich |
Insert n characters |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
ich1 |
Insert character |
ghostty: |
il |
Insert n lines |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
il1 |
Insert line |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
ind |
Scroll forward |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
indn |
Scroll forward n |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
initc |
Initialize color |
Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
invis |
Invisible cursor |
|
is2 |
Init 2 string |
foot: |
it |
Init tabs |
|
kDC |
Shifted delete-char key |
Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
kDC3 |
Alt delete-char key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kDC4 |
Alt-Shift delete-char key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kDC5 |
Ctrl delete-char key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kDC6 |
Ctrl-Shift delete-char key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kDC7 |
Ctrl-Alt delete-char key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kDN |
Shifted down-arrow key |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, contour, foot, ghostty, iTerm2, kitty: |
kDN3 |
Alt down-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kDN4 |
Alt-Shift down-arrow key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kDN5 |
Ctrl down-arrow key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kDN6 |
Ctrl-Shift down-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kDN7 |
Ctrl-Alt down-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kEND |
Shifted end key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kEND3 |
Alt end key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kEND4 |
Alt-Shift end key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kEND5 |
Ctrl end key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kEND6 |
Ctrl-Shift end key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kEND7 |
Ctrl-Alt end key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kHOM |
Shifted home key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kHOM3 |
Alt home key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kHOM4 |
Alt-Shift home key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kHOM5 |
Ctrl home key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kHOM6 |
Ctrl-Shift home key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kHOM7 |
Ctrl-Alt home key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kIC |
Shifted insert-char key |
Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
kIC3 |
Alt insert-char key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kIC4 |
Alt-Shift insert-char key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kIC5 |
Ctrl insert-char key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kIC6 |
Ctrl-Shift insert-char key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kIC7 |
Ctrl-Alt insert-char key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kLFT |
Shifted left-arrow key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kLFT3 |
Alt left-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kLFT4 |
Alt-Shift left-arrow key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kLFT5 |
Ctrl left-arrow key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kLFT6 |
Ctrl-Shift left-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kLFT7 |
Ctrl-Alt left-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kNXT |
Shifted next-page key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kNXT3 |
Alt next-page key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kNXT4 |
Alt-Shift next-page key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kNXT5 |
Ctrl next-page key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kNXT6 |
Ctrl-Shift next-page key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kNXT7 |
Ctrl-Alt next-page key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kPRV |
Shifted previous-page key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kPRV3 |
Alt previous-page key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kPRV4 |
Alt-Shift previous-page key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kPRV5 |
Ctrl previous-page key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kPRV6 |
Ctrl-Shift previous-page key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kPRV7 |
Ctrl-Alt previous-page key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kRIT |
Shifted right-arrow key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kRIT3 |
Alt right-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kRIT4 |
Alt-Shift right-arrow key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kRIT5 |
Ctrl right-arrow key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kRIT6 |
Ctrl-Shift right-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kRIT7 |
Ctrl-Alt right-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kUP |
Shifted up-arrow key |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, contour, foot, ghostty, iTerm2, kitty: |
kUP3 |
Alt up-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kUP4 |
Alt-Shift up-arrow key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kUP5 |
Ctrl up-arrow key |
Rio, contour, foot, ghostty, iTerm2, kitty: |
kUP6 |
Ctrl-Shift up-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
kUP7 |
Ctrl-Alt up-arrow key |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal: |
ka1 |
Keypad upper left |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal, XTerm, mlterm: |
ka3 |
Keypad upper right |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal, XTerm, mlterm: |
kb2 |
Keypad center |
|
kbs |
Backspace key |
XTerm, iTerm2, mlterm: |
kc1 |
Keypad lower left |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal, XTerm, mlterm: |
kc3 |
Keypad lower right |
GNOME Terminal, LXTerminal, Terminator, XFCE Terminal, XTerm, mlterm: |
kcbt |
Back-tab key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kcub1 |
Left arrow key |
Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
kcud1 |
Down arrow key |
Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
kcuf1 |
Right arrow key |
Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
kcuu1 |
Up arrow key |
Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
kdch1 |
Delete character key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kend |
End key |
Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
kent |
Enter/send key |
Rio, WezTerm, ghostty, iTerm2: |
kf1 |
Function key F1 |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf10 |
Function key F10 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf11 |
Function key F11 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf12 |
Function key F12 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf2 |
Function key F2 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf3 |
Function key F3 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf4 |
Function key F4 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf5 |
Function key F5 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf6 |
Function key F6 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf7 |
Function key F7 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf8 |
Function key F8 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kf9 |
Function key F9 |
GNOME Terminal, LXTerminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
khome |
Home key |
Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
kich1 |
Insert character key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kind |
Scroll-down key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kitty-query-allow_hyperlinks |
hyperlink support |
kitty: yes |
kitty-query-background |
background color |
kitty: |
kitty-query-background_opacity |
background opacity |
kitty: 1 |
kitty-query-bold_font |
bold font |
kitty: FreeMonoBold |
kitty-query-bold_italic_font |
bold-italic font |
kitty: FreeMonoBoldOblique |
kitty-query-clipboard_control |
clipboard control |
kitty: |
kitty-query-dpi_x |
DPI X |
kitty: 96 |
kitty-query-dpi_y |
DPI Y |
kitty: 96 |
kitty-query-font_family |
font family |
kitty: FreeMono |
kitty-query-font_size |
font size |
kitty: 11 |
kitty-query-foreground |
foreground color |
kitty: |
kitty-query-italic_font |
italic font |
kitty: FreeMonoOblique |
kitty-query-name |
terminal name |
kitty: kitty |
kitty-query-os_name |
OS name |
kitty: linux |
kitty-query-version |
version |
kitty: |
km |
Has meta key |
|
kmous |
Mouse key |
WezTerm, foot, ghostty: |
knp |
Next page key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kpp |
Previous page key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kri |
Scroll-up key |
GNOME Terminal, LXTerminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: |
kxIN |
Keyboard in (kitty) |
|
kxOUT |
Keyboard out (kitty) |
|
lines |
Lines |
Rio, WezTerm, foot, ghostty, iTerm2, kitty: 24
contour: |
mc5i |
Will not echo input |
|
mir |
Move in insert mode |
|
msgr |
Move in standout mode |
|
nel |
Newline |
AbsoluteTelnet/SSH, foot: |
npc |
No pad character |
|
oc |
Original colors |
contour, foot: |
op |
Original pair |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
pairs |
Max color pairs |
Rio, WezTerm, ghostty, iTerm2, kitty: 32767
foot: 65536
contour: |
query-os-name |
OS name query |
|
rc |
Restore cursor |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
rep |
Repeat character |
Rio, WezTerm, contour, foot, ghostty, kitty: |
rev |
Enter reverse mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
ri |
Reverse index |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
rin |
Scroll reverse n |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
ritm |
Exit italics mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
rmacs |
Exit alternate charset mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
rmam |
Disable line wrap |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
rmcup |
Exit alt screen |
Rio, WezTerm, foot: |
rmir |
Exit insert mode |
|
rmkx |
Keypad local mode |
AbsoluteTelnet/SSH, Rio, WezTerm, foot, ghostty, iTerm2: |
rmm |
Reset meta mode |
|
rmso |
Exit standout mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
rmul |
Exit underline mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
rs1 |
Reset string 1 |
contour, ghostty, kitty: |
rs2 |
Reset string 2 |
foot: |
rv |
Exit reverse mode (kitty) |
foot: |
sc |
Save cursor |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
setab |
Set background color |
foot: |
setaf |
Set foreground color |
foot: |
setal |
Set ANSI label |
foot: |
setrgbb |
Set RGB background |
contour, ghostty, kitty: |
setrgbf |
Set RGB foreground |
contour, ghostty, kitty: |
sgr |
Set attributes |
kitty: |
sgr0 |
Reset attributes |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
sitm |
Enter italics mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
smacs |
Enter alternate charset mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
smam |
Enable line wrap |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
smcup |
Enter alt screen |
Rio, WezTerm, foot: |
smir |
Enter insert mode |
|
smkx |
Keypad transmit mode |
AbsoluteTelnet/SSH, Rio, WezTerm, foot, ghostty, iTerm2: |
smso |
Enter standout mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
smul |
Enter underline mode |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
tbc |
Clear all tabs |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
tsl |
To status line |
contour: |
u6 |
CPR response format |
AbsoluteTelnet/SSH, Rio, WezTerm, foot, ghostty, iTerm2, kitty: |
u7 |
CPR request |
AbsoluteTelnet/SSH, Rio, WezTerm, foot, ghostty, iTerm2, kitty: |
u8 |
DA response format |
Rio, WezTerm, foot, ghostty, kitty: |
u9 |
DA request |
AbsoluteTelnet/SSH, Rio, WezTerm, foot, ghostty, iTerm2, kitty: |
ul |
Transparent underline |
iTerm2: 0 |
vpa |
Vertical position |
AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: |
xenl |
Newline glitch |
|
xm |
Exit marks mode (kitty) |
WezTerm, foot, ghostty: |
xr |
Exit reset mode (kitty) |
ghostty: |
xt |
Destructive tabs |
iTerm2: 0 |
xvpa |
Extended vertical positioning |
iTerm2: 0 |
Performance
Note
Test duration and resources used is not an indicator of software quality.
We make a best effort to track CPU and System Memory for linux systems, only. Docker and cgroups are used to enforce a 2 CPU limit but it is not reliable. Many terminals use GPU memory not tracked. Some terminals perform differently under docker. Further, some have complex process groups, chrome, or OS-integration of shared resources that may not be accurately reflected here.
The Resources score combines CPU, memory, and runtime into a single 0-100 metric. See per-terminal pages for calculation details.
Terminal |
Score |
CPU % |
RSS (MB) |
Time (s) |
|---|---|---|---|---|
7 |
17 |
4 |
||
5 |
23.5 |
4 |
||
5.3 |
22.3 |
6 |
||
17 |
25.6 |
3 |
||
13.7 |
25.4 |
4 |
||
15.6 |
63.3 |
5 |
||
25.9 |
122.6 |
2 |
||
32 |
125.1 |
5 |
||
42.2 |
23.9 |
29.3 |
||
29.9 |
78.8 |
13.7 |
||
29.9 |
93.7 |
31.3 |
||
0 |
180.5 |
899.7 |
||
44.6 |
100.6 |
37.9 |
||
4.9 |
59.7 |
503.1 |
||
10.1 |
57.5 |
316.2 |
||
100.6 |
275.2 |
7 |
||
127.2 |
123.6 |
14.1 |
||
0.8 |
93.6 |
1637.8 |
||
38.5 |
222.4 |
35.9 |
||
1.1 |
116.3 |
1365.7 |
||
32.9 |
185.8 |
57.2 |
||
5.8 |
112.1 |
555 |
||
72.8 |
227.9 |
47.3 |
||
7.8 |
445.5 |
303 |
||
97.6 |
178.5 |
92.2 |
||
119.1 |
279.3 |
50.3 |
||
143.8 |
461.6 |
29.1 |
||
30.9 |
351.6 |
307.7 |
||
18.5 |
559.8 |
325.8 |
||
115.5 |
704.4 |
73.2 |
||
137.4 |
1030.9 |
215.2 |
CPU usage during test execution, all terminals overlaid.
RSS memory usage during test execution, all terminals overlaid.
Trade-off between mean CPU % and total test duration. Dots near the origin use less CPU and less time. Dashed contours show equal CPU × time product (lower percentile = better).
Total test duration for each terminal, sorted fastest to slowest. Log scale on the X axis.
Full Report by Terminal
- kitty
- foot
- ghostty
- AbsoluteTelnet/SSH
- iTerm2
- Rio
- Konsole
- contour
- tmux
- WindowsTerminal
- WezTerm
- Warp
- TeraTerm
- mlterm
- Zellij
- XTerm
- Bobcat
- urxvt
- Tabby
- alacritty
- QTerminal
- st
- Extraterm
- Apple_Terminal
- pterm
- GNU Screen
- zutty
- terminology
- LXTerminal
- GNOME Terminal
- XFCE Terminal
- Terminator
- cool-retro-term
- libvterm
- Hyper
- securecrt
- xterm.js
- weston-terminal
- mintty
- ConEmu