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
71%
107 passed · 26 partial · 18 failed of 151 features
Tested: March 26, 2026
Analysis2026-03-26

Alacritty scores 88% (133/151) on the terminfo.dev feature matrix, with gaps in the Core TUI, Modern TUI, Rich TUI, Unicode baselines. Ranks #11 of 13 tested terminals. Uniquely missing (all other terminals pass): Reverse Wrap (Mode 45), Erase screen (ED 2). Missing 18 features.

Character Sets

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

Cursor

FeatureSupportNotes
CUD stops at bottom✓ yes
CUP at screen boundaries✓ yes
CUP with DECOM✓ yes
CUU stops at top✓ yes
Hide cursor (DECTCEM)✓ yes
Cursor horizontal absolute (CHA)✓ yes
Cursor position (CUP)✓ yes
Cursor back (CUB)✓ yes
Cursor down (CUD)✓ yes
Cursor forward (CUF)✓ yes
Cursor home✓ yes
Cursor up (CUU)✓ yes
Cursor next line (CNL)✓ yes
Cursor position report (DSR 6)~ partialHeadless mode has no output stream for DSR responses
Reverse Wrap (Mode 45)✗ noReverse wrap not supported in alacritty headless mode
Save/restore cursor (DECSC)✓ yes
Cursor shape (DECSCUSR)✓ 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
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
Terminal Version (XTVERSION)~ partialHeadless mode has no output stream for XTVERSION responses

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
iTerm2 Inline Images (OSC 1337)✗ noiTerm2 inline images not supported by alacritty
Kitty graphics protocol✗ noNot implemented in alacritty
Kitty keyboard protocol✓ 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
Foreground color query (OSC 10)~ partialOSC 10 color query not exposed in headless mode
Background color query (OSC 11)~ partialOSC 11 color query not exposed in headless mode
iTerm2 Capability Reporting (OSC 1337)✗ noiTerm2-specific protocol not supported
iTerm2 Cell Size Reporting (OSC 1337)✗ noiTerm2-specific protocol not supported
Window title (OSC 2)✓ yes
Clipboard access (OSC 52)~ partialOSC 52 clipboard not exposed in headless mode
OSC 5522 advanced clipboard✗ noOSC 5522 not implemented in alacritty
OSC 66 text sizing✗ noOSC 66 text sizing not implemented in alacritty
Current directory (OSC 7)~ partialOSC 7 CWD reporting not exposed via alacritty_terminal API
Hyperlinks (OSC 8)✓ yes
OSC 9;4 progress bar? 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
24-bit truecolor✓ yes

Input Protocols

FeatureSupportNotes
Button-Event Mouse (1002)✓ yes
CSI u Key Encoding✓ yes
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
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
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

Reset

FeatureSupportNotes
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 (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
Combining characters (0 cols)✓ yes
Carriage return✓ yes
Index (IND)✓ yes
Line feed✓ yes
Next line (NEL)✓ yes
Overwrite at cursor✓ yes
Reverse Index at Scroll Top✓ yes
Tab stops✓ yes
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

Powered by Termless
Playwright for Terminals