Skip to content
Search

Terminal emulator

lastmod 2026-03-22created 2018-12-2649 edits

A terminal emulator is a program that virtually implements a dumb video terminal with several different display structures. It is generally used as a synonym for shell or text terminal, but the term terminal applies to all remote terminals, including graphical interfaces. A terminal emulator running as an application in a graphical user interface (GUI) is often called a terminal window.

A terminal window gives the user access to a text terminal and all its applications, such as command-line interfaces (CLI) and text user interface applications. These can run on the same computer or on another computer via telnet, ssh, or dial-up. On Unix-like operating systems, it is common to have one or more terminal windows connected to the local computer.

Terminals usually support a set of escape sequences for controlling cursor position, color, and so on. Examples include the family of terminal control sequence standards known as ECMA-48, ANSI X3.64, or ISO/IEC 6429.

Organizations that adopted computer technology early, such as banks, insurance companies, and governments, still use terminal emulators often. They have dozens of old applications running on mainframe computers. The old dumb video terminals used to access mainframes have long fallen out of use, but the applications on the mainframes are still in use. A terminal emulator is sometimes the only way for users to access applications running on older computers.

Categories

Truecolor

You can check it with the following awk command.

awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'

If truecolor is supported properly:

Terminal_emulator_-truecolor-_support.png

If it is not supported, the color boundaries appear sharply, as in the image below:

Terminal_emulator_-truecolor-_not_support.png

COLORTERM

VTE, Konsole, and iTerm2 all advertise truecolor support by placing COLORTERM=truecolor in the user's shell environment. This has been in VTE for a while, but it is a relatively new feature in Konsole and iTerm2 and must be enabled at compile time (most packages don't, so you have to compile directly from the git source repository).

The S-Lang library has a check for whether $COLORTERM contains truecolor or 24bit (case-sensitive).

Sometimes you may need to set it yourself:

case $TERM in
  iterm            |\
  linux-truecolor  |\
  screen-truecolor |\
  tmux-truecolor   |\
  xterm-truecolor  )    export COLORTERM=truecolor ;;
  vte*)
esac

Projects

  • iTerm2
  • Alacritty: A cross-platform, GPU-accelerated terminal emulator
  • hyper: A terminal built on web technologies
  • bterm: cross-platform terminal emulator
  • terminator
  • Extraterm: The swiss army chainsaw of terminal emulators
  • tmux
  • Streamhut: stream your terminal
  • termux: Android terminal emulator.
  • rxvt: rxvt (acronym for our extended virtual terminal) is a terminal emulator for the X Window System, and in the form of a Cygwin port, for Windows.
    • rxvt-unicode: Light in resource usage, fast, and more feature-rich (tabs, transparency, Unicode, etc.).
  • XTerm: The default terminal emulator for X.org.
  • lxterminal: The standard terminal emulator of LXDE.
  • st: simple terminal implementation for X .
  • xfce4-terminal: The default terminal emulator for the Xfce desktop environment.
  • terminology: The default terminal emulator for Enlightenment.
  • Konsole: The default terminal emulator for KDE / Plasma.
  • Yakuake: Quake-style (drop-down) terminal emulator based on Konsole for KDE / Plasma.
  • GNOME Terminal: The default terminal emulator for GNOME.
  • Guake: Drop-down terminal emulator for GNOME.
  • eDEX-UI: A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.
  • kitty - the fast, featureful, GPU based terminal emulator
  • starship - The minimal, blazing-fast, and infinitely customizable prompt for any shell!
  • Warp - a fast terminal written in Rust
  • WezTerm - an open-source cross-platform terminal emulator
  • Rio - an open-source GPU hardware-accelerated terminal emulator
  • Bubble Tea - a powerful TUI framework
  • pyte - a lightweight, fast virtual terminal emulator written in pure Python. It interprets ANSI and VT100 sequences and runs in headless mode.
  • pty - The Python standard library pty can be used to create a virtual terminal headlessly.
  • pexpect - A library for terminal automation and interaction. It works on top of pty, automates various terminal commands, and captures output.
  • vttest (py-vt100) - A Python library that performs VT100/ANSI terminal emulation. Used when low-level terminal emulation is needed.
  • termcolor
  • blessings
  • Ghostty - a fast, cross-platform terminal emulator
    • Ghostty-web - a web terminal that compiles Ghostty to WASM and is compatible with the xterm.js API
  • ttyd - a tool for sharing a terminal over the web
  • Term.everything - run any GUI app in the terminal
  • asciinema - a terminal recording tool
  • Ghostling - a Minimum Viable terminal emulator

Terminal Live Streaming

Entering Unicode characters on Linux

Pressing Shift + Ctrl + u lets you enter Unicode characters such as ë directly.

Inserting emoji

See Emoji#Emoji insertion mode for details.

Character width problem (The Width Problem)

  • See the Python wcwidth library.
  • State of terminal emulators in 2025: the errant champions | GeekNews
  • Terminals have a structural limitation: they must display a wide variety of Unicode characters within a fixed-width grid
  • Character width prediction often fails because of combining characters, emoji sequences, Zero-width joiners, and so on
  • These errors cause wrong cursor positions and corrupted output, and even distort the input position
  • The test results identify the terminals that cause these problems the least

See also

Favorite site

author Zer0 sitemap