Skip to content

Alacritty

App Terminal + Parser Backend

alacritty_terminal Rust crate via napi-rs.

Alacritty was the first terminal emulator to use GPU-accelerated rendering, announced by Joe Wilm in January 2017. Written in Rust, it proved that GPU rendering could dramatically improve terminal performance — achieving smooth scrolling and low latency that traditional CPU-rendered terminals couldn't match.

Alacritty is deliberately minimal: no tabs, no splits, no built-in multiplexer. It's designed to do one thing well — render text fast — and delegates everything else to tools like tmux. Configuration is via a YAML file. This minimalism is polarizing: some developers love the simplicity, others want integrated features.

The alacritty_terminal Rust crate (the parser/emulator core) is reusable outside Alacritty itself. Termless uses it as a headless backend via napi-rs bindings, testing parser correctness without any rendering.

Backend: alacritty_terminal Rust crate via napi-rs. (native) · v0.26.0
61%
142 passed · 34 partial · 57 failed of 233 features
Tested: April 10, 2026
Analysis2026-04-06

Alacritty scores 81% (183/227) on the terminfo.dev feature matrix, with gaps in the Core TUI, Modern TUI, Rich TUI, Unicode baselines. Ranks #10 of 12 tested terminals. Uniquely missing (all other terminals pass): Reverse Wrap (Mode 45), Erase screen (ED 2). Missing 44 features.

Character Sets

FeatureSupportNotes
DEC line drawing character set✓ yes
DEC Special Graphics✓ yes
G0/G1 character set switching✓ yes
UTF-8 mode✓ yes

Device Status

FeatureSupportNotes
Mode Report (DECRPM)~ partialHeadless mode has no output stream for DECRPM responses
Request Setting (DECRQSS)~ partialHeadless mode has no output stream for DECRQSS responses
DSR ?996 — color scheme query? unknown
COLORTERM env variable? unknown
KITTY_* env variables? unknown
LC_TERMINAL env variable? unknown
NO_COLOR env variable? unknown
TERM env variable? unknown
TERM_PROGRAM env variable? unknown
VTE_VERSION env variable? unknown
WEZTERM_* env variables? unknown
WT_SESSION env variable? unknown
Primary device attributes (DA1)~ partialHeadless mode has no output stream for DA1 responses
Secondary Device Attributes (DA2)~ partialHeadless mode has no output stream for DA2 responses
Device status report (DSR 5)~ partialHeadless mode has no output stream for DSR responses
Feature Reporting (TERM_FEATURES)? unknown
Tertiary Device Attributes (DA3)~ partialHeadless mode has no output stream for DA3 responses
Query Terminfo (XTGETTCAP)~ partialHeadless mode has no output stream for XTGETTCAP responses
XTGETXRES — query resource value (DCS + Q)✗ noXTGETXRES resource query — xterm-specific
XTREPORTCOLORS — report color capabilities (CSI # R)✗ noXTREPORTCOLORS (xterm patch 401+) not yet adopted outside xterm
Terminal Version (XTVERSION)~ partialHeadless mode has no output stream for XTVERSION responses
Report window size in pixels (CSI 14 t)~ partialWindow pixel-size report requires a real window system
Report cell size in pixels (CSI 16 t)~ partialCell pixel-size report requires a real window system
Report text area size in chars (CSI 18 t)~ partialText area size report not exposed in headless mode
Report icon label (CSI 20 t)✗ noIcon label report not implemented by alacritty
Report window title (CSI 21 t)✗ noWindow title report not implemented by alacritty
Push title/icon stack (CSI 22 ; 0 t)✓ yesTitle stack not implemented by alacritty
Pop title/icon stack (CSI 23 ; 0 t)✗ noTitle stack not implemented by alacritty

Editing

FeatureSupportNotes
DECCARA — change attrs in rectangle✗ noVT420 rectangular area operations not implemented — legacy DEC features omitted by most modern terminals
DECCRA — copy rectangular area✗ noVT420 rectangular area operations not implemented — legacy DEC features omitted by most modern terminals
DECDC — delete columns (CSI Ps ' ~)✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps
DECERA — erase rectangular area✗ noVT420 rectangular area operations not implemented — legacy DEC features omitted by most modern terminals
DECFRA — fill rectangular area✗ noVT420 rectangular area operations not implemented — legacy DEC features omitted by most modern terminals
DECIC — insert columns (CSI Ps ' })✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps
DECRARA — reverse attrs in rectangle✗ noVT420 rectangular area operations not implemented — legacy DEC features omitted by most modern terminals
DECRQCRA — checksum rectangular area✗ noVT420 rectangular area operations not implemented — legacy DEC features omitted by most modern terminals
DECSACE — select attribute-change extent✓ yes
DECSERA — selective erase rectangular area✗ noVT420 rectangular area operations not implemented — legacy DEC features omitted by most modern terminals
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 @)✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps
SR — shift right (CSI Ps SP A)✗ noColumn editing (SL/SR/DECIC/DECDC) not implemented — rarely needed by modern TUI apps

Erase

FeatureSupportNotes
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)✗ noAlacritty's ED 2 doesn't clear scrollback content from buffer
Erase below (ED 0)✓ yes
Erase scrollback (ED 3)✓ yes
Selective Erase (DECSED)✗ noDECSED (selective erase) not supported in alacritty

Extensions

FeatureSupportNotes
System clipboard paste? unknown
Font ligatures? unknown
iTerm2 Inline Images (OSC 1337)✗ noiTerm2 inline images not supported by alacritty
Kitty graphics protocol✗ noNot implemented in alacritty
Kitty graphics: animation✗ noKitty graphics not implemented in alacritty
Kitty graphics: display✗ noKitty graphics not implemented in alacritty
Kitty graphics: transmit✗ noKitty graphics not implemented in alacritty
Kitty graphics: Unicode placeholders✗ noKitty graphics not implemented in alacritty
Kitty keyboard protocol✓ yes
Kitty keyboard: DISAMBIGUATE (flag 1)✓ yes
Kitty keyboard: REPORT_ALL_KEYS (flag 8)✓ yes
Kitty keyboard: REPORT_ALTERNATE (flag 4)✓ yes
Kitty keyboard: REPORT_EVENTS (flag 2)✓ yes
Kitty keyboard: REPORT_TEXT (flag 16)✓ yes
Desktop Notifications (OSC 9/777)~ partialOSC 9 notifications not exposed via alacritty_terminal API
VS Code Shell Integration (OSC 633)✗ noVS Code shell integration (OSC 633) not supported
Icon and title (OSC 0)✓ yes
Icon name (OSC 1)✓ yes
Foreground color query (OSC 10)~ partialOSC 10 color query not exposed in headless mode
Reset color palette (OSC 104)✗ noOSC 104 color reset requires a real display — headless backends have no color palette to reset
Background color query (OSC 11)~ partialOSC 11 color query not exposed in headless mode
Reset foreground color (OSC 110)✗ noOSC 110 foreground reset requires a real display — headless backends have no color palette to reset
Reset background color (OSC 111)✗ noOSC 111 background reset requires a real display — headless backends have no color palette to reset
Reset cursor color (OSC 112)✗ noOSC 112 cursor color reset requires a real display — headless backends have no color palette to reset
Reset pointer fg color (OSC 113)? unknown
Reset pointer bg color (OSC 114)? unknown
Reset highlight background (OSC 117)✓ yes
Reset highlight foreground (OSC 119)✓ yes
Cursor color (OSC 12)✗ noOSC 12 cursor color query requires a real display — headless backends have no color palette to query
OSC 133;A prompt start (FTCS_PROMPT)✓ yes
OSC 133;B command start (FTCS_COMMAND_START)✓ yes
OSC 133;C command executed (FTCS_COMMAND_EXECUTED)✓ yes
OSC 133;D command finished (FTCS_COMMAND_FINISHED)✓ yes
OSC 133;P properties✓ yes
iTerm2 Capability Reporting (OSC 1337)✗ noiTerm2-specific protocol not supported
iTerm2 Cell Size Reporting (OSC 1337)✗ noiTerm2-specific protocol not supported
Highlight background (OSC 17)✗ noOSC 17 highlight background query requires a real display — headless backends have no color palette to query
Set Wayland app-id (OSC 176)? unknown
Highlight foreground (OSC 19)✗ noOSC 19 highlight foreground query requires a real display — headless backends have no color palette to query
Window title (OSC 2)✓ yes
Kitty color protocol (OSC 21)✗ noKitty color protocol (OSC 21) not implemented by alacritty
Pointer shape (OSC 22)? unknown
Kitty color stack push (OSC 30001)? unknown
Systemd context (OSC 3008)? unknown
Kitty color stack pop (OSC 30101)? unknown
Color palette (OSC 4)✗ noOSC 4 color query requires a real display — headless backends have no color palette to query
Audio sound (OSC 440)? unknown
Special color (OSC 5)✗ noOSC 5 special color query requires a real display — headless backends have no color palette to query
Clipboard access (OSC 52)~ partialOSC 52 clipboard not exposed in headless mode
OSC 52 clipboard read~ partialOSC 52 clipboard read not exposed in headless mode
OSC 52 clipboard write✓ yes
OSC 5522 advanced clipboard✗ noOSC 5522 not implemented in alacritty
Screen flash (OSC 555)? unknown
OSC 633;A prompt start✓ yes
OSC 633;B prompt end✓ yes
OSC 633;C pre-execution✓ yes
OSC 633;D command finished✓ yes
OSC 633;E set commandline✓ yes
OSC 633;P properties✓ yes
OSC 66 text sizing✗ noOSC 66 text sizing not implemented in alacritty
VTE termprop (OSC 666)? unknown
Current directory (OSC 7)~ partialOSC 7 CWD reporting not exposed via alacritty_terminal API
Locale query/set (OSC 701)? unknown
Version query (OSC 702)? unknown
Set normal font (OSC 710)? unknown
Scroll view up (OSC 720)? unknown
Cell size report (OSC 776)? unknown
Notifications (OSC 777)? unknown
Font size query/set (OSC 7770)? unknown
Font + window size (OSC 7777)? unknown
Hyperlinks (OSC 8)✓ yes
OSC 9;4 progress bar? unknown
Desktop notifications (OSC 99)? unknown
Text reflow on resize✓ yes
Semantic prompts (OSC 133)✗ noNot implemented in alacritty
Sixel graphics✗ noNot implemented in alacritty
Sixel support in DA1✗ noSixel not implemented in alacritty
Sixel geometry report (CSI ? Pi;Pa;Pv S)✗ noSixel geometry report not supported
24-bit truecolor✓ yes

Input Protocols

FeatureSupportNotes
Button-Event Mouse (1002)✓ yes
CSI u Key Encoding✓ yes
Kitty click events? unknown
modifyOtherKeys~ partialmodifyOtherKeys not exposed via alacritty_terminal API
modifyOtherKeys mode 3~ partialmodifyOtherKeys mode 3 not exposed in headless mode
Pixel Mouse Reporting (1016)~ partialSGR pixel mouse mode not exposed via alacritty_terminal API
urxvt Mouse Reporting (1015)✗ nourxvt mouse mode (?1015) not implemented
X10 Mouse Tracking (9)✗ noX10 mouse mode (?9) not implemented

Modes

FeatureSupportNotes
Enter alt screen (DECSET 1049)✓ yes
Exit alt screen (DECRST 1049)✓ yes
Alt-scroll mouse wheel (?1007)✓ yes
Alt screen clear-on-enter (?1047)~ partial?1047 alt screen (with clear) not exposed in headless mode
Save/restore cursor (?1048)~ partial?1048 save/restore cursor not exposed in headless mode
Alt screen legacy (?47)✗ noLegacy ?47 alt screen not supported by alacritty
App cursor keys (DECCKM)✓ yes
Application keypad (DECKPAM)✓ yes
Auto-wrap (DECAWM)✓ yes
Bracketed paste (DECSET 2004)✓ yes
Mode 2031 color scheme reporting✗ noMode 2031 not implemented in alacritty
DECCOLM 80/132 column switch (?3)✓ yes
DECSCLM — smooth scroll mode? unknown
DECSSCLS — set scroll speed? unknown
Focus tracking (DECSET 1004)✓ yes
Insert/replace mode (IRM)✓ yes
Left/Right Margins (DECLRMM, Mode 69)~ partialDECLRMM not exposed via alacritty_terminal API
All motion mouse (DECSET 1003)✓ yes
SGR mouse mode (DECSET 1006)~ partialSGR mouse encoding not exposed via alacritty_terminal API
Mouse tracking (DECSET 1000)✓ yes
Origin mode (DECOM)✓ yes
Reverse video (DECSCNM)~ partialNot exposed via alacritty_terminal API
Synchronized output (DECSET 2026)✓ yes
UTF-8 mouse mode (?1005)✓ yes
Pop color palette (CSI # Q)✗ noColor palette stack not implemented by alacritty
XTPOPSGR — pop SGR stack (CSI # })✗ noSGR stack not implemented by alacritty
Push color palette (CSI # P)✗ noColor palette stack not implemented by alacritty
XTPUSHSGR — push SGR stack (CSI # {)✗ noSGR stack not implemented by alacritty
XTRESTORE — restore DEC private modes (CSI ? Pm r)✗ noXTRESTORE private mode restore not implemented by alacritty
XTSAVE — save DEC private modes (CSI ? Pm s)✗ noXTSAVE private mode save not implemented by alacritty

Reset

FeatureSupportNotes
DECALN screen alignment (ESC # 8)✓ yes
Backend reset() method✓ yes
Full reset (RIS)✓ yes
SGR reset clears attributes✓ yes
Soft reset (DECSTR)~ partialDECSTR resets modes but headless probe reads stale state

SGR (Text Styling)

FeatureSupportNotes
256-color bg (SGR 48;5)✓ yes
Bright bg colors (SGR 100-107)✓ yes
Default bg color (SGR 49)✓ yes
Standard bg colors (SGR 40-47)✓ yes
24-bit bg (SGR 48;2)✓ yes
Blink (SGR 5)~ partialNot exposed via alacritty_terminal API
Bold (SGR 1)✓ yes
Faint/dim (SGR 2)✓ yes
256-color fg (SGR 38;5)✓ yes
Bright fg colors (SGR 90-97)✓ yes
Default fg color (SGR 39)✓ yes
Standard fg colors (SGR 30-37)~ partialBackend returns palette index instead of resolved RGB
24-bit fg (SGR 38;2)✓ yes
Hidden/invisible (SGR 8)~ partialNot exposed via alacritty_terminal API
Inverse video (SGR 7)✓ yes
Italic (SGR 3)✓ yes
Overline (SGR 53)✓ yes
Reset all (SGR 0)✓ yes
Reset bold/dim (SGR 22)✓ yes
Reset inverse (SGR 27)✓ yes
Reset italic (SGR 23)✓ yes
Reset underline (SGR 24)✓ yes
Strikethrough (SGR 9)✓ yes
Underline color, indexed (SGR 58;5)~ partialHeadless alacritty backend doesn't expose underlineColor on cells
Reset underline color (SGR 59)✓ yes
Underline color, truecolor (SGR 58;2)~ partialHeadless alacritty backend doesn't expose underlineColor on cells
Underline color (SGR 58)~ partialNot exposed via alacritty_terminal API
Curly underline (SGR 4:3)✓ yes
Dashed underline (SGR 4:5)✓ yes
Dotted underline (SGR 4:4)✓ yes
Double underline (SGR 21)~ partialAlacritty supports double underline in app but not in headless mode
Underline (SGR 4)✓ yes

Text

FeatureSupportNotes
Backspace (BS)✓ yes
Basic text rendering✓ yes
CBT backward tab (CSI Z)✓ yes
CHT forward tab (CSI I)✓ yes
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)✗ noTab stop clear (TBC) not exposed via alacritty_terminal API
CJK wide chars (2 cols)✓ yes
Emoji wide chars (2 cols)✓ yes
Regional indicator flags (2 cols)✗ noEmoji flag sequences not rendered as wide characters
Variation selector 16 (emoji presentation)✗ noVS16 emoji variation selectors not handled
Emoji ZWJ sequences (2 cols)✓ yes
Text wraps at width✓ yes