Skip to content

Ghostty

App Terminal + Parser Backend

GPU-accelerated terminal by Mitchell Hashimoto. Written in Zig, Metal/OpenGL/Vulkan. Excellent standards compliance.

Ghostty is a terminal emulator created by Mitchell Hashimoto, founder of HashiCorp (Terraform, Vagrant, Vault). Written in Zig with GPU-accelerated rendering via Metal (macOS), OpenGL, and Vulkan. First released in late 2024 after years of development, Ghostty quickly gained attention for its focus on correctness and performance.

Ghostty's architecture separates the terminal emulation core into libghostty, a reusable library that other projects can embed. This is how cmux (the Ghostty multiplexer) gets its terminal emulation — it links against libghostty directly. The library handles VT parsing, grid management, and rendering, while the app adds window management and platform integration.

Among modern terminals, Ghostty has some of the best standards compliance, supporting kitty keyboard protocol, kitty graphics, sixel, OSC 8 hyperlinks, semantic prompts, and full Unicode including grapheme clustering. It scores consistently near the top of terminfo.dev's feature matrix.

Backend: GPU-accelerated terminal by Mitchell Hashimoto. Written in Zig, Metal/OpenGL/Vulkan. Excellent standards compliance. · v1.3.1
92%
232 passed · 19 failed of 251 features
Tested: April 10, 2026
Analysis2026-04-06

Ghostty scores 92% (232/251) on the terminfo.dev feature matrix, with gaps in the Core TUI, Rich TUI baselines. Ranks #2 of 12 tested terminals. Missing 19 features.

Character Sets

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

Extensions

FeatureSupportNotes
System clipboard paste? unknown
Font ligatures? unknown
iTerm2 Inline Images (OSC 1337)✓ yes
Kitty graphics protocol✓ yes
Kitty graphics: animation✓ yes
Kitty graphics: display✓ yes
Kitty graphics: transmit✓ yes
Kitty graphics: Unicode placeholders✗ noU=1 didn't render
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)✓ yes
VS Code Shell Integration (OSC 633)✓ yes
Icon and title (OSC 0)✓ yes
Icon name (OSC 1)✓ yes
Foreground color query (OSC 10)✓ yes
Reset color palette (OSC 104)✓ yes
Background color query (OSC 11)✓ yes
Reset foreground color (OSC 110)✓ yes
Reset background color (OSC 111)✓ yes
Reset cursor color (OSC 112)✓ yes
Reset pointer fg color (OSC 113)✓ yes
Reset pointer bg color (OSC 114)✓ yes
Reset highlight background (OSC 117)✓ yes
Reset highlight foreground (OSC 119)✓ yes
Cursor color (OSC 12)✓ yes
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)✗ noNo OSC 17 response
Set Wayland app-id (OSC 176)✓ yes
Highlight foreground (OSC 19)✗ noNo OSC 19 response
Window title (OSC 2)✓ yes
Kitty color protocol (OSC 21)✓ yes
Pointer shape (OSC 22)✓ yes
Kitty color stack push (OSC 30001)✓ yes
Systemd context (OSC 3008)✓ yes
Kitty color stack pop (OSC 30101)✓ yes
Color palette (OSC 4)✓ yes
Audio sound (OSC 440)✓ yes
Special color (OSC 5)✗ noNo OSC 5 response
Clipboard access (OSC 52)✓ yes
OSC 52 clipboard read✗ noNo OSC 52 read response
OSC 52 clipboard write✓ yes
OSC 5522 advanced clipboard✗ noNo OSC 5522 response
Screen flash (OSC 555)✓ yes
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✓ yesConsumed (no query)
VTE termprop (OSC 666)✓ yes
Current directory (OSC 7)✓ yes
Locale query/set (OSC 701)✓ yes
Version query (OSC 702)✓ yes
Set normal font (OSC 710)✓ yes
Scroll view up (OSC 720)✓ yes
Cell size report (OSC 776)✓ yes
Notifications (OSC 777)✓ yes
Font size query/set (OSC 7770)✓ yes
Font + window size (OSC 7777)✓ yes
Hyperlinks (OSC 8)✓ yes
OSC 9;4 progress bar✓ yes
Desktop notifications (OSC 99)✓ yes
Text reflow on resize✓ yes
Semantic prompts (OSC 133)✓ yes
Sixel graphics✗ noSixel image didn't move cursor
Sixel support in DA1✗ noDA1 attrs: 62;22;52 (no sixel)
Sixel geometry report (CSI ? Pi;Pa;Pv S)? unknown
24-bit truecolor✓ yes

Input Protocols

FeatureSupportNotes
Button-Event Mouse (1002)✓ yes
CSI u Key Encoding✓ yes
Kitty click events? unknown
modifyOtherKeys✓ yes
modifyOtherKeys mode 3✓ yes
Pixel Mouse Reporting (1016)✓ yesSGR pixel mouse mode not tracked by ghostty-web WASM backend
urxvt Mouse Reporting (1015)✓ yes
X10 Mouse Tracking (9)✓ yes

Modes

FeatureSupportNotes
Enter alt screen (DECSET 1049)✓ yesDECRPM: mode reset
Exit alt screen (DECRST 1049)✓ yes
Alt-scroll mouse wheel (?1007)✓ yesDECRPM: mode set
Alt screen clear-on-enter (?1047)✓ yesDECRPM: mode reset
Save/restore cursor (?1048)✓ yes
Alt screen legacy (?47)✓ yesBehavioral: ?47 enter/exit accepted
App cursor keys (DECCKM)✓ yesDECRPM: mode reset
Application keypad (DECKPAM)✓ yes
Auto-wrap (DECAWM)✓ yesDECRPM: mode set
Bracketed paste (DECSET 2004)✓ yesDECRPM: mode reset
Mode 2031 color scheme reporting✓ yesDECRPM: mode reset
DECCOLM 80/132 column switch (?3)✓ yesDECRPM: mode reset
DECSCLM — smooth scroll mode? unknown
DECSSCLS — set scroll speed? unknown
Focus tracking (DECSET 1004)✓ yesDECRPM: mode reset
Insert/replace mode (IRM)✓ yes
Left/Right Margins (DECLRMM, Mode 69)✓ yesDECLRMM not tracked by ghostty-web WASM backend
All motion mouse (DECSET 1003)✓ yesDECRPM: mode reset
SGR mouse mode (DECSET 1006)✓ yesDECRPM: mode reset
Mouse tracking (DECSET 1000)✓ yesDECRPM: mode reset
Origin mode (DECOM)✓ yesDECRPM: mode reset
Reverse video (DECSCNM)✓ yesDECRPM: mode reset
Synchronized output (DECSET 2026)✓ yesDECRPM: mode reset
UTF-8 mouse mode (?1005)✓ yesDECRPM: mode reset
Pop color palette (CSI # Q)✓ yesSequence consumed; terminal responsive
XTPOPSGR — pop SGR stack (CSI # })✓ yesSequence consumed; terminal responsive
Push color palette (CSI # P)✓ yesSequence consumed; terminal responsive
XTPUSHSGR — push SGR stack (CSI # {)✓ yesSequence consumed; terminal responsive
XTRESTORE — restore DEC private modes (CSI ? Pm r)✓ yesSequence consumed; terminal responsive
XTSAVE — save DEC private modes (CSI ? Pm s)✓ yesSequence consumed; terminal responsive

Reset

FeatureSupportNotes
DECALN screen alignment (ESC # 8)✓ yes
Backend reset() method✓ yescursor at 5;5 after DECSTR
Full reset (RIS)✓ yes
SGR reset clears attributes✓ yes
Soft reset (DECSTR)✓ yes

Scrollback

FeatureSupportNotes
Scrollback accumulates✓ yes
Alt screen separate scrollback✓ yes
DECSTBM constrains scrolling✓ yes
DECSTBM reset to full screen✓ yescursor at row 119 (expected near bottom after DECSTBM reset)
Reverse index (RI)✓ yes
Scroll down (SD)✓ yes
Scroll up (SU)✓ yes
Scroll region (DECSTBM)✓ yes
Total line count✓ yesContent written to scrollback

Unicode

FeatureSupportNotes
East Asian Ambiguous Width✓ yeswidth=1 (ambiguous chars vary by terminal/locale)
Grapheme Cluster Cursor Movement✓ yes
Tab Stops (HT)✓ yes
Wide Char at Line Wrap✓ yes