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

AbsoluteTelnet/SSH

14.21

Linux

100

100

100

100

100

100

100

100

100

100

100

Sixel, iTerm2, Kitty

N/A

2

contour

0.7.1…

Linux

99

100

100

100 †

100

100

100 †

100

100

100

94

Sixel, ReGIS, Kitty

51

3

kitty

0.48.2

Linux

98

100 †

100 †

100 †

100

100 †

100

100

100 †

100

89

Kitty

24

4

ghostty

1.3.1…

Linux

93

100

100

100

100

100

100

100

100

100

67

Kitty

47

5

foot

1.28.0

Linux

89

100 †

100 †

100 †

100

100

100

100 †

100 †

100

72

Sixel

97

6

Rio

0.5.27

Linux

78

92

100

100

100

100

89

0

0

100

67

Sixel, iTerm2, Kitty

51

7

Konsole

23.08.5

Linux

72

50

100

92

96

100

0

100

100

100

14

Sixel, iTerm2, Kitty

42

8

WezTerm

20260716…

Linux

71

94

100

88

100

50

0

0

100

100

56

Sixel, iTerm2, Kitty

26

9

WindowsTerminal

1.24.11321.0

Windows

67

92

100

98

100

100

0

0

0

100

39

Sixel

N/A

10

mintty

3.8.3

Windows

67

92

100

92

100

100

100

0

0

100

44

Sixel, ReGIS

N/A

11

tmux

3.4

Linux

66

67

100

92

81

98

0

100

100

100

14

Sixel ‡

38

12

iTerm2

3.7.2

Darwin

53

100

100

92

17

97

0

100

100

1

61

Sixel, iTerm2, Kitty

N/A

13

TeraTerm

5.6.0

Windows

47

92

99

90

96

50

0

0

0

99

25

none

N/A

14

Warp

v0.2026.08.26.17.59.stable_01

Linux

46

45

100

92

0

100

0

0

100

99

19

iTerm2, Kitty

34

15

XTerm

411

Linux

42

94

100

92

1

50

0

0

100

100

36

Sixel ‡, ReGIS

92

16

mlterm

3.9.4

Linux

37

45

100

85

0

50

0

0

100

99

33

Sixel, ReGIS, iTerm2

65

17

alacritty

Linux

37

94

99

93

1

50

0

0

100

100

31

none

68

18

urxvt

9.31…

Linux

35

94

100

92

1

50

0

0

100

100

22

none

100

19

zutty

0.16…

Linux

32

94

100

92

1

50

0

0

100

100

8

none

49

20

Zellij

4403

Linux

31

44

100

92

1

50

0

0

100

100

21

Sixel

38

21

Apple_Terminal

488

Darwin

31

94

98

90

0

50

0

0

100

99

11

none

N/A

22

st

0.9.2

Linux

31

94

100

92

1

50

0

0

100

100

6

none

87

23

Bobcat

0.9.9 (r5)

Linux

31

97

100

92

0

100

0

100

0

1

50

none

56

24

cool-retro-term

2.0.0beta2…

Linux

31

94

100

92

1

50

0

0

100

100

3

none

24

25

pterm

0.85…

Linux

30

94

100

92

1

50

0

0

100

100

0

none

78

26

GNOME Terminal

3.50.1 (VTE/8400)

Linux

29

44

100

92

1

50

0

0

100

100

36

none

21

27

Terminator

2.1.3 (VTE/8400)

Linux

29

44

100

92

1

50

0

0

100

100

36

none

12

28

XFCE Terminal

1.1.3 (VTE/8400)

Linux

29

44

100

92

1

50

0

0

100

100

36

none

12

29

Tabby

1.0.230

Linux

27

12

100

92

1

50

0

0

100

100

28

Sixel

0

30

xterm.js

6.1.0…

Linux

26

12

100

92

1

50

0

0

100

100

47

none

N/A

31

libvterm

0.3

Linux

24

100

97

90

0

50

0

100

100

0

34

none

46

32

Extraterm

0.81.4

Linux

23

39

100

0

0

100

0

0

100

99

3

iTerm2

20

33

GNU Screen

5.0.1

Linux

22

61

100

68

1

50

0

0

100

100

8

none

50

34

Hyper

3.4.1

Linux

19

12

100

92

1

50

0

0

100

100

11

none

N/A

35

weston-terminal

15.0.1…

Linux

16

61

100

0

0

100

0

0

100

99

0

none

N/A

36

QTerminal

2.2.1

Linux

10

61

0

92

1

50

0

0

100

100

19

none

50

37

securecrt

9.7.2

Windows

10

0

100

68

1

50

3

0

100

99

0

none

N/A

38

terminology

1.13.0

Linux

7

40

100

12

1

50

0

0

100

99

11

none

57

39

ConEmu

23.07.24

Windows

0

50

97

0

0

98

0

100

100

0

0

none

N/A

† This score is credited 100% by 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. Only scores that measured below 100%, or were not measured at all, are credited and marked; unmarked scores were measured directly. Interpretation of VS15 is contested and excluded from the final score.

‡ tmux: Must be compiled with sixel support. Check support and enablement with command: (tmux show-options -g;tmux show-window-options)|grep -i sixel

‡ XTerm: Sixel support is enabled by CLI argument, E.g. xterm -rv -ti vt340.

Definitions:

  • FINAL score: The overall terminal emulator quality score, calculated as the weighted average of all feature scores (WIDE, NARROW, LANG, ZWJ, VS16, SRI, SFZ, RI, DEC Modes, and RESOURCES), then scaled (normalized 0-100%) relative to all terminals tested. Higher scores indicate better overall Unicode and terminal feature support. DEC Modes and RESOURCES are normalized to 0-1 range before averaging. RESOURCES and graphics is weighted at 0.5 (half as powerful as other metrics), and standalone RI and Fitzpatrick are weighted at 0.3 to reduce its impact on the final score.

  • WIDE score: Percentage of wide character codepoints correctly displayed for the latest Unicode version. Calculated as the total number of successful codepoints divided by total codepoints tested, scaled.

  • NARROW score: Percentage of narrow character codepoints correctly displayed for the latest Unicode version. Calculated as the total number of successful codepoints divided by total codepoints tested, scaled.

  • LANG score: Calculated using the geometric mean of success percentages across all international languages tested. This fairly accounts for partial support (e.g., 99%, 98%) without letting one low score dominate, scaled.

  • ZWJ score: Percentage of emoji ZWJ (Zero-Width Joiner) sequences correctly displayed for the latest Unicode Emoji version. Calculated as the total number of successful sequences divided by total sequences tested, scaled.

  • VS16 score: Determined by the number of Emoji using Variation Selector-16 supported as wide characters.

  • VS15 score: Determined by the number of Emoji using Variation Selector-15 supported as narrow characters. Note: Interpretation of VS15 is contested (excluded from final score).

  • SRI score: Percentage of standalone Regional Indicator symbols (U+1F1E6-U+1F1FF) correctly displayed as wide (2-cell) characters when not paired as flag sequences.

  • SFZ score: Percentage of standalone Fitzpatrick skin tone modifiers (U+1F3FB-U+1F3FF) correctly displayed as wide (2-cell) characters when not combined with a base emoji.

  • RI score: Percentage of Regional Indicator flag sequences (country and subdivision flags) correctly displayed as wide (2-cell) characters. Sourced from the Unicode emoji-test.txt specification.

  • Mode 2027: DEC Mode 2027 (GRAPHEME_CLUSTERING) support. Shows ‘enabled’ if the mode is currently enabled, ‘may enable’ if the mode is supported but not enabled and can be changed to enabled, or ‘no’ if not supported. This mode enables grapheme clustering behavior in the terminal.

  • Tofu: The font glyph coverage protocol the terminal answers, mintty (Font Glyph Coverage Enquiry, OSC 7771) or glyph (Glyph Protocol, APC 25a1), by which it may be asked whether its font has a glyph for a codepoint. Answering at all counts towards the FEAT score; which codepoints are covered does not, being a property of the installed font.

  • DEC Modes: Determined by the number of DEC private modes that are changeable by the terminal, scaled.

  • Resources: Composite CPU, RSS memory, and run duration score (0-100), where the global mean maps to 50 and the lightest/fastest terminal scores 100. Excluded from the final score, it cannot be measured for all terminals. Computed by averaging sub-scores for mean CPU%, mean RSS (MB), and total seconds, each individually scaled so the global mean = 50, min = 100, max = 0.

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)

In-Band Resize (2048)

Focus Events (1004)

Mouse SGR (1006)

Graphemes (2027)

Bracketed Paste MIME (5522)

Kitty Keyboard

Graphics

XTGETTCAP

Text Size (OSC 66)

Tofu

Kitty Clipboard

OSC 52 Clipboard

Kitty Ptr (OSC 22)

Kitty Notif (OSC 99)

Color Report (OSC 10/11)

Truecolor

Identification

1

AbsoluteTelnet/SSH

100

yes

yes

yes

yes

yes

yes

yes

yes (Full)

Sixel, iTerm2, Kitty

yes (Full)

yes

mintty

yes

yes

yes

yes

yes

yes

yes

2

contour

94

yes

yes

yes

yes

yes

yes

yes

yes (Full)

Sixel, ReGIS, Kitty

yes (Full)

yes

no

yes

yes

yes

yes

yes

yes

yes

3

kitty

89

yes

yes

yes

yes

yes

no

yes

yes (Full)

Kitty

yes (Full)

yes

no

yes

yes

yes

yes

yes

yes

yes

4

foot

72

yes

yes

yes

yes

yes

yes

no

yes (Full)

Sixel

yes (Full)

yes

no

no

yes

no

no

yes

yes

yes

5

ghostty

67

yes

yes

yes

yes

yes

yes

no

yes (Full)

Kitty

yes (Full)

no

no

no

yes

no

no

yes

yes

yes

6

Rio

67

yes

yes

no

yes

yes

yes

no

yes (Full)

Sixel, iTerm2, Kitty

yes (Full)

no

glyph

no

yes

no

no

yes

yes

yes

7

iTerm2

61

yes

yes

yes

yes

yes

no

no

yes (Full)

Sixel, iTerm2, Kitty

yes (Full)

no

no

no

yes

no

no

yes

yes

yes

8

WezTerm

56

yes

yes

no

yes

yes

yes

no

no

Sixel, iTerm2, Kitty

yes (Full)

no

no

no

yes

no

no

yes

yes

yes

9

Bobcat

50

yes

yes

yes

yes

yes

no

no

no

none

yes (Full)

no

mintty

no

no

no

no

no

yes

yes

10

xterm.js

47

yes

yes

no

yes

yes

no

no

yes (Full)

none

no

no

no

no

no

no

yes

yes

yes

yes

11

mintty

44

yes

no

no

yes

yes

yes

no

no

Sixel, ReGIS

no

no

mintty

no

no

no

no

yes

yes

yes

12

WindowsTerminal

39

yes

yes

no

yes

yes

yes

no

no

Sixel

no

no

no

no

yes

no

no

yes

no

no

13

XTerm

36

yes

no

no

yes

yes

no

no

no

Sixel ‡, ReGIS

yes (Partial)

no

no

no

no

no

no

yes

yes

yes

14

GNOME Terminal

36

yes

no

no

yes

yes

no

no

no

none

yes (Partial)

no

no

no

no

no

no

yes

yes

yes

15

Terminator

36

yes

no

no

yes

yes

no

no

no

none

yes (Partial)

no

no

no

no

no

no

yes

yes

yes

16

XFCE Terminal

36

yes

no

no

yes

yes

no

no

no

none

yes (Partial)

no

no

no

no

no

no

yes

yes

yes

17

libvterm

34

yes

no

no

yes

yes

no

no

yes (Partial)

none

no

no

no

no

no

no

no

yes

yes

yes

18

mlterm

33

yes

no

no

yes

yes

no

no

no

Sixel, ReGIS, iTerm2

yes (Partial)

no

no

no

no

no

no

yes

yes

yes

19

alacritty

31

yes

yes

no

yes

yes

no

no

yes (Partial)

none

no

no

no

no

no

no

no

yes

yes

no

20

Tabby

28

yes

no

no

yes

yes

no

no

no

Sixel

no

no

no

no

no

no

no

yes

yes

yes

21

TeraTerm

25

yes

no

no

yes

yes

no

no

no

none

yes (Partial)

no

no

no

no

no

no

yes

no

no

22

urxvt

22

yes

no

no

yes

yes

no

no

no

none

no

no

no

no

no

no

no

yes

no

no

23

Zellij

21

no

no

no

no

no

no

no

yes (Partial)

Sixel

no

no

no

no

yes

no

no

yes

yes

yes

24

Warp

19

no

no

no

no

no

no

no

yes (Full)

iTerm2, Kitty

no

no

no

no

no

no

no

yes

yes

yes

25

QTerminal

19

yes

no

no

yes

yes

no

no

no

none

no

no

no

no

no

no

no

no

yes

no

26

Konsole

14

no

no

no

no

no

no

no

no

Sixel, iTerm2, Kitty

no

no

no

no

no

no

no

yes

yes

yes

27

tmux

14

no

no

no

no

no

no

no

no

Sixel ‡

no

no

no

no

no

no

no

yes

yes

yes

28

Apple_Terminal

11

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

yes

yes

yes

29

Hyper

11

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

yes

yes

yes

30

terminology

11

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

yes

no

yes

31

zutty

8

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

yes

yes

no

32

GNU Screen

8

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

yes

yes

no

33

st

6

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

yes

no

no

34

cool-retro-term

3

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

no

yes

no

35

Extraterm

3

no

no

no

no

no

no

no

no

iTerm2

no

no

no

no

no

no

no

no

yes

no

36

pterm

0

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

no

no

no

37

weston-terminal

0

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

no

no

no

38

securecrt

0

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

no

no

no

39

ConEmu

0

no

no

no

no

no

no

no

no

none

no

no

no

no

no

no

no

no

no

no

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

AbsoluteTelnet/SSH

yes

yes

yes

contour

yes

yes

yes

kitty

no

yes

yes

ghostty

yes

yes

yes

foot

yes

yes

yes

Rio

yes

no

yes

Konsole

no

no

yes

WezTerm

yes

no

yes

WindowsTerminal

no

no

no

mintty

no

yes

no

tmux

no

no

yes

iTerm2

yes

no

yes

TeraTerm

no

no

no

Warp

no

no

yes

XTerm

yes

yes

no

mlterm

no

no

yes

alacritty

no

no

yes

urxvt

no

no

no

zutty

no

no

yes

Zellij

no

no

yes

Apple_Terminal

no

no

yes

st

no

no

no

Bobcat

yes

yes

yes

cool-retro-term

no

no

yes

pterm

no

no

no

GNOME Terminal

yes

yes

yes

Terminator

yes

yes

yes

XFCE Terminal

yes

yes

yes

Tabby

no

no

yes

xterm.js

no

no

yes

libvterm

no

yes

yes

Extraterm

no

no

yes

GNU Screen

no

no

yes

Hyper

no

no

yes

weston-terminal

no

no

no

QTerminal

no

no

yes

securecrt

no

no

no

terminology

no

no

no

ConEmu

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

AbsoluteTelnet/SSH

yes

yes

contour

yes

no

kitty

yes

yes

ghostty

yes

yes

foot

yes

yes

Rio

yes

yes

Konsole

no

no

WezTerm

yes

yes

WindowsTerminal

yes

no

mintty

no

no

tmux

no

no

iTerm2

yes

yes

TeraTerm

no

no

Warp

no

no

XTerm

no

no

mlterm

no

no

alacritty

no

no

urxvt

no

no

zutty

no

no

Zellij

yes

no

Apple_Terminal

no

no

st

no

no

Bobcat

no

no

cool-retro-term

no

no

pterm

no

no

GNOME Terminal

no

no

Terminator

no

no

XFCE Terminal

no

no

Tabby

no

no

xterm.js

no

no

libvterm

no

no

Extraterm

no

no

GNU Screen

no

no

Hyper

no

no

weston-terminal

no

no

QTerminal

no

no

securecrt

no

no

terminology

no

no

ConEmu

no

no

Device Attributes

This table shows the Device Attributes (CSI c) DEC service class and per-extension feature support for each terminal.

Terminal

Service Class

132-column mode

Printer port

ReGIS graphics

Sixel graphics

Selective erase

Soft character sets (DRCS)

User-defined keys (UDK)

National replacement charsets

Extension 11

Advanced video option

Technical character set

Terminal state reports (16-bit)

User windows

Horizontal scrolling

ANSI color

Greek

Turkish

Rectangular area operations

Text locator (mouse)

ANSI text terminal (Level 3)

ISO Latin-2 character set

OSC 52 clipboard

Pixel geometry

AbsoluteTelnet/SSH

VT520

1

2

no

4

6

7

8

9

no

no

15

no

no

21

22

no

no

28

no

no

no

52

no

contour

VT525

1

no

3

4

no

7

no

9

no

no

no

no

18

21

22

no

no

no

29

no

no

52

314

kitty

VT520

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

52

no

ghostty

VT520

no

no

no

no

no

no

no

no

no

no

no

no

no

no

22

no

no

no

no

no

no

52

no

foot

VT520

no

no

no

4

no

no

no

no

no

no

no

no

no

no

22

no

no

28

no

no

no

52

no

Rio

VT520

no

no

no

4

6

no

no

no

no

no

no

no

no

no

22

no

no

no

no

no

no

52

no

Konsole

VT520

1

no

no

4

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

WezTerm

VT525

no

no

no

4

6

no

no

no

no

no

no

no

18

no

22

no

no

no

no

no

no

52

no

WindowsTerminal

VT510

no

no

no

4

6

7

no

no

no

14

no

no

no

21

22

23

24

28

no

32

42

52

no

mintty

VT420

1

2

3

4

6

no

no

9

11

no

15

no

no

21

22

no

no

28

29

no

no

no

no

tmux

VT100

no

2

no

4

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

iTerm2

VT420

1

2

no

4

6

no

no

no

no

no

no

17

18

21

22

no

no

no

no

no

no

52

no

TeraTerm

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

Warp

VT520

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

XTerm

VT320

1

2

3

4

6

no

no

9

no

no

15

17

no

no

22

no

no

28

no

no

no

no

no

mlterm

VT320

1

2

3

4

6

7

no

no

no

no

15

no

18

no

22

no

no

no

29

no

no

no

no

alacritty

Level 4 (no VT class)

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

urxvt

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

zutty

VT420

1

no

no

no

no

no

no

9

no

no

15

no

no

21

22

no

no

no

no

no

no

no

no

Zellij

VT520

no

no

no

4

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

52

no

Apple_Terminal

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

st

Level 4 (no VT class)

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

Bobcat

VT420

1

no

no

no

6

no

8

9

no

no

15

17

no

21

22

no

no

28

no

no

no

no

no

cool-retro-term

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

pterm

Level 4 (no VT class)

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

GNOME Terminal

VT510

1

no

no

no

no

no

no

no

no

no

no

no

no

21

22

no

no

28

no

no

no

no

no

Terminator

VT510

1

no

no

no

no

no

no

no

no

no

no

no

no

21

22

no

no

28

no

no

no

no

no

XFCE Terminal

VT510

1

no

no

no

no

no

no

no

no

no

no

no

no

21

22

no

no

28

no

no

no

no

no

Tabby

VT520

no

no

no

4

no

no

no

9

no

no

no

no

no

no

22

no

no

no

no

no

no

no

no

xterm.js

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

libvterm

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

Extraterm

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

GNU Screen

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

Hyper

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

weston-terminal

Level 4 (no VT class)

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

QTerminal

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

securecrt

VT520

1

2

no

no

6

7

8

9

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

terminology

VT420

1

no

no

no

no

no

no

9

no

no

15

no

18

21

22

no

no

no

no

no

no

no

no

ConEmu

VT100

no

2

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

no

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

AbsoluteTelnet/SSH

yes

no

no

yes

no

contour

yes

no

no

yes

yes

kitty

yes

yes

no

no

yes

ghostty

yes

yes

no

yes

yes

foot

yes

yes

no

no

yes

Rio

yes

yes

no

yes

yes

Konsole

yes

no

no

no

no

WezTerm

yes

yes

no

yes

no

WindowsTerminal

no

no

no

no

no

mintty

yes

no

no

yes

no

tmux

yes

no

no

yes

no

iTerm2

yes

no

no

yes

no

TeraTerm

no

no

no

no

no

Warp

yes

no

no

yes

no

XTerm

yes

no

no

no

no

mlterm

yes

yes

no

no

no

alacritty

no

no

no

no

yes

urxvt

no

no

yes

no

yes

zutty

no

no

no

no

no

Zellij

yes

no

no

no

no

Apple_Terminal

no

no

no

yes

no

st

no

no

no

no

yes

Bobcat

yes

no

no

no

no

cool-retro-term

no

no

no

no

no

pterm

no

no

yes

no

no

GNOME Terminal

yes

no

no

no

no

Terminator

yes

no

no

no

no

XFCE Terminal

yes

no

no

no

no

Tabby

no

no

no

yes

no

xterm.js

yes

no

no

yes

no

libvterm

yes

no

no

no

no

Extraterm

no

no

yes

no

no

GNU Screen

no

no

no

no

yes

Hyper

no

no

no

yes

no

weston-terminal

no

no

no

no

no

QTerminal

no

no

no

no

no

securecrt

no

no

no

no

no

terminology

yes

no

no

yes

no

ConEmu

no

no

no

no

no

Terminal Capabilities (XTGETTCAP)

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, Bobcat, GNOME Terminal, Terminator, XFCE Terminal, contour, iTerm2: xterm-256color ghostty: xterm-ghostty kitty: xterm-kitty foot: foot mlterm: mlterm Rio: rio XTerm: xterm

colors

Max colors on screen

AbsoluteTelnet/SSH, Bobcat, GNOME Terminal, Rio, TeraTerm, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: 256

RGB

Bits per color channel (8 = 24-bit truecolor)

AbsoluteTelnet/SSH, Bobcat, GNOME Terminal, Terminator, XFCE Terminal, XTerm, foot, ghostty, iTerm2: 8 Rio, WezTerm, contour: 8/8/8

AX

Supports default colors

iTerm2: 1

BD

Enter bold mode (kitty)

Rio, foot, ghostty, kitty: \E[?2004l

BE

Exit bold mode (kitty)

Rio, foot, ghostty, kitty: \E[?2004h

Cr

Set cursor color

foot: \E]112\E\ Rio, WezTerm, iTerm2, kitty: \E]112\a

Cs

Reset cursor color

contour, foot: \E]12;%p1%s\E\ Rio, WezTerm, iTerm2, kitty: \E]12;%p1%s\a

E3

Erase scrollback

Rio, contour, foot, ghostty, iTerm2: \E[3J

Ms

Clipboard set

foot, kitty: \E]52;%p1%s;%p2%s\E\ AbsoluteTelnet/SSH, Rio, WezTerm, ghostty, iTerm2: \E]52;%p1%s;%p2%s\a

PE

Presentation end (kitty)

Rio, foot, ghostty, kitty: \E[201~

PS

Presentation start (kitty)

Rio, foot, ghostty, kitty: \E[200~

RV

Enter reverse mode (kitty)

foot, ghostty, kitty: \E[>c

Rect

Rectangle operations

foot: \E[%p1%d;%p2%d;%p3%d;%p4%d;%p5%d$x

Rmol

Reset overline mode

contour: \E[55m

Se

Reset underline style

contour, foot: \E[ q AbsoluteTelnet/SSH, Rio: \E[0 q kitty: \E[0\sq WezTerm, ghostty, iTerm2: \E[2 q

Setulc

Set underline color

contour, kitty: \E[58:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d%;m AbsoluteTelnet/SSH: \E[58:2::%p1%d:%p2%d:%p3%dm WezTerm, foot, ghostty: \E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d%;m

Smol

Set overline mode

WezTerm, contour: \E[53m

Smulx

Styled underline

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, kitty: \E[4:%p1%dm

Ss

Set underline style

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2: \E[%p1%d q kitty: \E[%p1%d\sq

Sync

Synchronized output

Rio, kitty: \EP=%p1%ds\E\ foot, ghostty: \E[?2026%?%p1%{1}%-%tl%eh%; WezTerm, contour: \E[?2026%?%p1%{1}%-%tl%eh

TS

Terminal state query

foot: \E]2;

Tc

Truecolor (24-bit RGB)

WezTerm: 1

XM

Enter marks mode (kitty)

WezTerm, foot, ghostty: \E[?1006;1000%?%p1%{1}%=%th%el%;

XR

Enter reset mode (kitty)

foot, ghostty, kitty: \E[>0q

XT

Xterm extensions

iTerm2: 1

acsc

Alternate character set

ghostty, kitty: ++\,\,--..00\\`\\`aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~ Rio, WezTerm, contour, foot, iTerm2: \\`\\`aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~

am

Auto right margin

WezTerm, iTerm2: 1

bce

Background color erase

WezTerm, iTerm2: 1

bel

Bell

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \a

blink

Enter blink mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, foot, ghostty, iTerm2, kitty: \E[5m

bold

Enter bold mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[1m

bw

Auto left margin

iTerm2: 0

ccc

Can redefine colors

WezTerm, iTerm2: 1

civis

Hide cursor

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[?25l

clear

Clear screen

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[H\E[2J

cnorm

Normal cursor

kitty: \E[?12h\E[?25h AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2: \E[?12l\E[?25h Bobcat: \E[?25h

cols

Columns

Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: 80

cr

Carriage return

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \r

csr

Change scroll region

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%i%p1%d;%p2%dr

cub

Cursor left n

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dD

cub1

Cursor left

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \b

cud

Cursor down n

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dB

cud1

Cursor down

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \n

cuf

Cursor right n

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dC

cuf1

Cursor right

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[C

cup

Cursor address

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%i%p1%d;%p2%dH

cuu

Cursor up n

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dA

cuu1

Cursor up

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[A

cvvis

Very visible cursor

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[?12;25h Bobcat: \E[?25h

da

Memory above

iTerm2: 0

db

Memory below

iTerm2: 0

dch

Delete n characters

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dP

dch1

Delete character

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[P

dim

Enter dim mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[2m

dl

Delete n lines

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dM

dl1

Delete line

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[M

dsl

Disable status line

contour: \E[$~ WezTerm, foot, kitty: \E]2;\E\ Rio, ghostty: \E]2;\a

ech

Erase characters

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dX

ed

Clear to end of screen

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[J

el

Clear to end of line

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[K

el1

Clear to start of line

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[1K

eslok

Status line escape OK

iTerm2: 0

fd

Enter font mode (kitty)

foot, ghostty, kitty: \E[?1004l

fe

Exit font mode (kitty)

foot, ghostty, kitty: \E[?1004h

flash

Flash screen

AbsoluteTelnet/SSH, Rio, WezTerm, contour, ghostty, iTerm2, kitty: \E[?5h$<100/>\E[?5l foot: \E]555\E\

fsl

From status line

contour: \E[$} WezTerm, foot: \E\ Rio, ghostty, kitty: \a

home

Cursor home

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[H

hpa

Horizontal position

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%i%p1%dG Bobcat: \E[%i%p1%d`

hs

Has status line

iTerm2: 0 WezTerm: 1

ht

Horizontal tab

Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \t

hts

Set tab stop

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \EH

ich

Insert n characters

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%d@

ich1

Insert character

ghostty: \E[@

il

Insert n lines

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dL

il1

Insert line

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[L

ind

Scroll forward

Bobcat: \ED AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \n

indn

Scroll forward n

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dS

initc

Initialize color

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\

invis

Invisible cursor

Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2: \E[8m

is2

Init 2 string

foot: \E[!p\E[4l\E> Rio, WezTerm, iTerm2: \E[!p\E[?3;4l\E[4l\E>

it

Init tabs

Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: 8

kDC

Shifted delete-char key

Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[3;2~ GNOME Terminal, Terminator, XFCE Terminal: \E[3~

kDC3

Alt delete-char key

GNOME Terminal, Terminator, XFCE Terminal: \E[3;2~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[3;3~

kDC4

Alt-Shift delete-char key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[3;4~ GNOME Terminal, Terminator, XFCE Terminal: \E[3;5~

kDC5

Ctrl delete-char key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[3;5~ GNOME Terminal, Terminator, XFCE Terminal: \E[3;6~

kDC6

Ctrl-Shift delete-char key

GNOME Terminal, Terminator, XFCE Terminal: \E[3;5~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[3;6~

kDC7

Ctrl-Alt delete-char key

GNOME Terminal, Terminator, XFCE Terminal: \E[3;6~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[3;7~

kDN

Shifted down-arrow key

GNOME Terminal, Rio, Terminator, XFCE Terminal, contour, foot, ghostty, iTerm2, kitty: \E[1;2B

kDN3

Alt down-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;2B Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;3B

kDN4

Alt-Shift down-arrow key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;4B GNOME Terminal, Terminator, XFCE Terminal: \E[1;5B

kDN5

Ctrl down-arrow key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;5B GNOME Terminal, Terminator, XFCE Terminal: \E[1;6B

kDN6

Ctrl-Shift down-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;5B Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;6B

kDN7

Ctrl-Alt down-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;6B Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;7B

kEND

Shifted end key

GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[1;2F

kEND3

Alt end key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;2F Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;3F

kEND4

Alt-Shift end key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;4F GNOME Terminal, Terminator, XFCE Terminal: \E[1;5F

kEND5

Ctrl end key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;5F GNOME Terminal, Terminator, XFCE Terminal: \E[1;6F

kEND6

Ctrl-Shift end key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;5F Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;6F

kEND7

Ctrl-Alt end key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;6F Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;7F

kHOM

Shifted home key

GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[1;2H

kHOM3

Alt home key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;2H Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;3H

kHOM4

Alt-Shift home key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;4H GNOME Terminal, Terminator, XFCE Terminal: \E[1;5H

kHOM5

Ctrl home key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;5H GNOME Terminal, Terminator, XFCE Terminal: \E[1;6H

kHOM6

Ctrl-Shift home key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;5H Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;6H

kHOM7

Ctrl-Alt home key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;6H Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;7H

kIC

Shifted insert-char key

Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[2;2~ GNOME Terminal, Terminator, XFCE Terminal: \E[2~

kIC3

Alt insert-char key

GNOME Terminal, Terminator, XFCE Terminal: \E[2;2~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[2;3~

kIC4

Alt-Shift insert-char key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[2;4~ GNOME Terminal, Terminator, XFCE Terminal: \E[2;5~

kIC5

Ctrl insert-char key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[2;5~ GNOME Terminal, Terminator, XFCE Terminal: \E[2;6~

kIC6

Ctrl-Shift insert-char key

GNOME Terminal, Terminator, XFCE Terminal: \E[2;5~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[2;6~

kIC7

Ctrl-Alt insert-char key

GNOME Terminal, Terminator, XFCE Terminal: \E[2;6~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[2;7~

kLFT

Shifted left-arrow key

GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[1;2D

kLFT3

Alt left-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;2D Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;3D

kLFT4

Alt-Shift left-arrow key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;4D GNOME Terminal, Terminator, XFCE Terminal: \E[1;5D

kLFT5

Ctrl left-arrow key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;5D GNOME Terminal, Terminator, XFCE Terminal: \E[1;6D

kLFT6

Ctrl-Shift left-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;5D Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;6D

kLFT7

Ctrl-Alt left-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;6D Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;7D

kNXT

Shifted next-page key

GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[6;2~

kNXT3

Alt next-page key

GNOME Terminal, Terminator, XFCE Terminal: \E[6;2~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[6;3~

kNXT4

Alt-Shift next-page key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[6;4~ GNOME Terminal, Terminator, XFCE Terminal: \E[6;5~

kNXT5

Ctrl next-page key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[6;5~ GNOME Terminal, Terminator, XFCE Terminal: \E[6;6~

kNXT6

Ctrl-Shift next-page key

GNOME Terminal, Terminator, XFCE Terminal: \E[6;5~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[6;6~

kNXT7

Ctrl-Alt next-page key

GNOME Terminal, Terminator, XFCE Terminal: \E[6;6~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[6;7~

kPRV

Shifted previous-page key

GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[5;2~

kPRV3

Alt previous-page key

GNOME Terminal, Terminator, XFCE Terminal: \E[5;2~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[5;3~

kPRV4

Alt-Shift previous-page key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[5;4~ GNOME Terminal, Terminator, XFCE Terminal: \E[5;5~

kPRV5

Ctrl previous-page key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[5;5~ GNOME Terminal, Terminator, XFCE Terminal: \E[5;6~

kPRV6

Ctrl-Shift previous-page key

GNOME Terminal, Terminator, XFCE Terminal: \E[5;5~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[5;6~

kPRV7

Ctrl-Alt previous-page key

GNOME Terminal, Terminator, XFCE Terminal: \E[5;6~ Rio, contour, foot, ghostty, iTerm2, kitty: \E[5;7~

kRIT

Shifted right-arrow key

GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[1;2C

kRIT3

Alt right-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;2C Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;3C

kRIT4

Alt-Shift right-arrow key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;4C GNOME Terminal, Terminator, XFCE Terminal: \E[1;5C

kRIT5

Ctrl right-arrow key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;5C GNOME Terminal, Terminator, XFCE Terminal: \E[1;6C

kRIT6

Ctrl-Shift right-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;5C Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;6C

kRIT7

Ctrl-Alt right-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;6C Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;7C

kUP

Shifted up-arrow key

GNOME Terminal, Rio, Terminator, XFCE Terminal, contour, foot, ghostty, iTerm2, kitty: \E[1;2A

kUP3

Alt up-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;2A Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;3A

kUP4

Alt-Shift up-arrow key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;4A GNOME Terminal, Terminator, XFCE Terminal: \E[1;5A

kUP5

Ctrl up-arrow key

Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;5A GNOME Terminal, Terminator, XFCE Terminal: \E[1;6A

kUP6

Ctrl-Shift up-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;5A Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;6A

kUP7

Ctrl-Alt up-arrow key

GNOME Terminal, Terminator, XFCE Terminal: \E[1;6A Rio, contour, foot, ghostty, iTerm2, kitty: \E[1;7A

ka1

Keypad upper left

GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[H

ka3

Keypad upper right

GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[5~

kb2

Keypad center

Rio, WezTerm, iTerm2: \EOE

kbs

Backspace key

XTerm, iTerm2, mlterm: \b Bobcat, GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, contour, foot, ghostty, kitty: 

kc1

Keypad lower left

GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[F

kc3

Keypad lower right

GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[6~

kcbt

Back-tab key

GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[Z

kcub1

Left arrow key

Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \EOD Bobcat, GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[D

kcud1

Down arrow key

Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \EOB Bobcat, GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[B

kcuf1

Right arrow key

Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \EOC Bobcat, GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[C

kcuu1

Up arrow key

Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \EOA Bobcat, GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[A

kdch1

Delete character key

Bobcat, GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[3~

kend

End key

Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \EOF Bobcat, GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[F

kent

Enter/send key

Rio, WezTerm, ghostty, iTerm2: \EOM XTerm: \r

kf1

Function key F1

Bobcat, GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \EOP

kf10

Function key F10

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[21~

kf11

Function key F11

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[23~

kf12

Function key F12

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[24~

kf2

Function key F2

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \EOQ

kf3

Function key F3

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \EOR

kf4

Function key F4

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \EOS

kf5

Function key F5

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[15~

kf6

Function key F6

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[17~

kf7

Function key F7

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[18~

kf8

Function key F8

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[19~

kf9

Function key F9

Bobcat, GNOME Terminal, Rio, Terminator, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[20~

khome

Home key

Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \EOH Bobcat, GNOME Terminal, Terminator, XFCE Terminal, XTerm, mlterm: \E[H

kich1

Insert character key

Bobcat, GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[2~

kind

Scroll-down key

GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[1;2B

kitty-query-allow_hyperlinks

hyperlink support

kitty: yes

kitty-query-background

background color

kitty: #000000

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: write-clipboard write-primary read-clipboard-ask read-primary-ask

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: #dddddd

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: 0.48.2

km

Has meta key

WezTerm, iTerm2: 1

kmous

Mouse key

WezTerm, foot, ghostty: \E[< Rio, contour, iTerm2, kitty: \E[M

knp

Next page key

Bobcat, GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[6~

kpp

Previous page key

Bobcat, GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[5~

kri

Scroll-up key

GNOME Terminal, Rio, Terminator, WezTerm, XFCE Terminal, XTerm, contour, foot, ghostty, iTerm2, kitty, mlterm: \E[1;2A

kxIN

Keyboard in (kitty)

Rio, foot, ghostty, kitty: \E[I

kxOUT

Keyboard out (kitty)

Rio, foot, ghostty, kitty: \E[O

lines

Lines

Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: 24

mc5i

Will not echo input

WezTerm, iTerm2: 1

mir

Move in insert mode

WezTerm, iTerm2: 1

msgr

Move in standout mode

WezTerm, iTerm2: 1

nel

Newline

AbsoluteTelnet/SSH, Bobcat, foot: \EE

npc

No pad character

WezTerm, iTerm2: 1

oc

Original colors

contour, foot: \E]104\E\ AbsoluteTelnet/SSH, Rio, WezTerm, ghostty, kitty: \E]104\a

op

Original pair

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[39;49m

pairs

Max color pairs

Bobcat, Rio, WezTerm, ghostty, iTerm2, kitty: 32767 contour, foot: 65536

query-os-name

OS name query

foot, kitty: Linux

rc

Restore cursor

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E8

rep

Repeat character

Rio, WezTerm, contour, foot, ghostty, kitty: %p1%c\E[%p2%{1}%-%db AbsoluteTelnet/SSH: \E[%p1%db

rev

Enter reverse mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[7m

ri

Reverse index

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \EM

rin

Scroll reverse n

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%p1%dT

ritm

Exit italics mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[23m

rmacs

Exit alternate charset mode

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E(B

rmam

Disable line wrap

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[?7l

rmcup

Exit alt screen

Rio, WezTerm, foot: \E[?1049l\E[23;0;0t AbsoluteTelnet/SSH, Bobcat, contour, ghostty, iTerm2, kitty: \E[?1049l

rmir

Exit insert mode

Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[4l

rmkx

Keypad local mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, foot, ghostty, iTerm2: \E[?1l\E> contour, kitty: \E[?1l

rmm

Reset meta mode

Rio, WezTerm, iTerm2: \E[?1034l foot: \E[?1036h\E[?1034l

rmso

Exit standout mode

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[27m

rmul

Exit underline mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[24m

rs1

Reset string 1

contour, ghostty, kitty: \E]\E\\Ec Rio, WezTerm: \Ec\E]104\a AbsoluteTelnet/SSH, Bobcat, foot, iTerm2: \Ec

rs2

Reset string 2

foot: \E[!p\E[4l\E> Rio, WezTerm, iTerm2: \E[!p\E[?3;4l\E[4l\E> AbsoluteTelnet/SSH, Bobcat: \E[!p

rv

Exit reverse mode (kitty)

foot: \E\[>1;[0-9][0-9][0-9][0-9][0-9][0-9];0c ghostty: \E\[[0-9]+;[0-9]+;[0-9]+c

sc

Save cursor

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E7

setab

Set background color

foot: \E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48:5:%p1%d%;m Bobcat, Rio, WezTerm, contour, ghostty, iTerm2, kitty: \E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m AbsoluteTelnet/SSH: \E[48;5;%p1%dm

setaf

Set foreground color

foot: \E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38:5:%p1%d%;m Bobcat, Rio, WezTerm, contour, ghostty, iTerm2, kitty: \E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m AbsoluteTelnet/SSH: \E[38;5;%p1%dm

setal

Set ANSI label

foot: \E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d%;m

setrgbb

Set RGB background

contour, ghostty, kitty: \E[48:2:%p1%d:%p2%d:%p3%dm foot: \E[48:2::%p1%d:%p2%d:%p3%dm AbsoluteTelnet/SSH: \E[48;2;%p1%d;%p2%d;%p3%dm

setrgbf

Set RGB foreground

contour, ghostty, kitty: \E[38:2:%p1%d:%p2%d:%p3%dm foot: \E[38:2::%p1%d:%p2%d:%p3%dm AbsoluteTelnet/SSH: \E[38;2;%p1%d;%p2%d;%p3%dm

sgr

Set attributes

kitty: %?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;%?%p5%t;2%;m contour: %?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m Rio, WezTerm, foot, ghostty, iTerm2: %?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m

sgr0

Reset attributes

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E(B\E[m Bobcat: \E[m

sitm

Enter italics mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[3m

smacs

Enter alternate charset mode

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E(0

smam

Enable line wrap

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[?7h

smcup

Enter alt screen

Rio, WezTerm, foot: \E[?1049h\E[22;0;0t AbsoluteTelnet/SSH, Bobcat, contour, ghostty, iTerm2, kitty: \E[?1049h

smir

Enter insert mode

Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[4h

smkx

Keypad transmit mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, foot, ghostty, iTerm2: \E[?1h\E= contour, kitty: \E[?1h

smso

Enter standout mode

AbsoluteTelnet/SSH, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[7m

smul

Enter underline mode

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[4m

tbc

Clear all tabs

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[3g

tsl

To status line

contour: \E[2$~\E[1$}\E[H\E[2J WezTerm: \E]0; Rio, foot, ghostty, kitty: \E]2;

u6

CPR response format

AbsoluteTelnet/SSH, Rio, WezTerm, foot, ghostty, iTerm2, kitty: \E[%i%d;%dR

u7

CPR request

AbsoluteTelnet/SSH, Rio, WezTerm, foot, ghostty, iTerm2, kitty: \E[6n

u8

DA response format

Rio, WezTerm, foot, ghostty, kitty: \E[?%[;0123456789]c iTerm2: \E[?1;2c AbsoluteTelnet/SSH: \E[?62;1;2;4;6;7;8;9;15;21;22;28;52c

u9

DA request

AbsoluteTelnet/SSH, Rio, WezTerm, foot, ghostty, iTerm2, kitty: \E[c

ul

Transparent underline

iTerm2: 0

vpa

Vertical position

AbsoluteTelnet/SSH, Bobcat, Rio, WezTerm, contour, foot, ghostty, iTerm2, kitty: \E[%i%p1%dd

xenl

Newline glitch

WezTerm, iTerm2: 1

xm

Exit marks mode (kitty)

WezTerm, foot, ghostty: \E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;

xr

Exit reset mode (kitty)

ghostty: \EP>\|[ -~]+a\E\ foot: \EP>\|foot\([0-9]+\.[0-9]+\.[0-9]+(-[0-9]+-g[a-f[0-9]+)?\)?\E\

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, excluded from the final score. See per-terminal pages for calculation details.

Terminal

Score

CPU %

RSS (MB)

Time (s)

urxvt

100

10.2

23.8

4

foot

97

29

29.9

1

XTerm

92

34

28.6

2

st

86

36.8

19.4

6

pterm

77

34.3

65.2

5

alacritty

67

49.5

124.9

5

mlterm

65

52.1

28.1

31.3

terminology

56

49.5

92.7

24.6

Bobcat

56

45.3

132.3

20.1

contour

50

37.6

202.2

27

Rio

50

47.2

109.7

40.4

QTerminal

50

56

140.3

28.1

GNU Screen

50

0

260.8

899.7

zutty

49

136.8

124.8

14.1

ghostty

46

137.9

276.9

8

libvterm

46

18.3

58.8

315.2

Konsole

41

57.6

211.5

44.9

tmux

37

66.1

235.8

52

Zellij

37

51.1

265.9

61.1

Warp

33

66.5

382.6

49.4

WezTerm

26

102.5

175.2

152.3

kitty

24

25.2

205

632.4

cool-retro-term

23

153.4

519.3

45.2

GNOME Terminal

21

11.6

111.6

3302.1

Extraterm

20

33

433.7

359.7

XFCE Terminal

12

21.9

156.7

3302.8

Terminator

11

20.1

175.2

3303.1

Tabby

0

153.1

939.2

291.2

CPU usage across all terminals

CPU usage during test execution, all terminals overlaid.

RSS memory usage across all terminals

RSS memory usage during test execution, all terminals overlaid.

CPU % vs Duration trade-off across all terminals

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

Duration across all terminals

Total test duration for each terminal, sorted fastest to slowest. Log scale on the X axis.

Full Report by Terminal