What ghostty-org/ghostty shipped
Written by FoxPlug from the repository's own releases; not affiliated with Ghostty. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/ghostty-org/ghostty; Ghostty did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- Added support for OSC 7501, the program status protocol, letting a program tell the terminal whether it is idle, working, done, blocked on the user, or failed, and why. Pull request #14560
- Exposed prompt navigation through the libghostty C API with GHOSTTY_SCROLL_VIEWPORT_DELTA_PROMPT, so consumers can move between shell prompts using the same implementation as the
jump_to_promptaction. Pull request #14618 - Updated the libghostty-vt program status protocol to revision 0.4, where the reply to the support query now also lists the states and kinds the terminal accepts. Pull request #14630
- Libghostty-vt now reports CSI 8 t window resize requests instead of dropping them, so embedders can honor them. Pull request #14610
- CSI 19 t now responds with CSI 9; rows; cols t, reporting the text area size in characters like CSI 18 t. Pull request #14633
- Added support for DECSTR (CSI! p), so modes, margins, and pen state left behind by a program no longer leak into whatever runs next. Pull request #14538
- Fixed copying a selection whose end lands on the spacer head before a wrapped wide character when the wrapped row starts a new page. Pull request #14632
- Preserved grapheme data when widening wraps, so codepoints that join a cluster without changing its width stay attached correctly. Pull request #14552
- A single shift (SS2/SS3) is now applied to exactly one printed character, including when the next character is a combining mark or VS16. Pull request #14576
- The formatter now writes the cursor position relative to the margins in origin mode, fixing restored cursor placement when a scrolling region and DECOM are set. Pull request #14588
Why it matters
This week touched both the terminal core and the library other applications embed. Several fixes close gaps where sequences a program sends were parsed and then ignored or applied to the wrong character, which could leave state behind or produce wrong output. The program status protocol also gains a libghostty-vt revision and a C API for prompt navigation, giving consumers the same behavior the app has.
Changelog entry
- Terminal: add support for the program status protocol (OSC 7501) Pull request #14560
- Lib-vt: expose prompt navigation through the C API Pull request #14618
- Libghostty-vt: update program status protocol to revision 0.4 Pull request #14630
- Libghostty-vt: report CSI 8 t window resize requests Pull request #14610
- Terminal: support CSI 19 t (report screen size in characters) Pull request #14633
- Terminal: support DECSTR Pull request #14538
- Terminal: include wide char wrapped onto next page when copying selection Pull request #14632
- Terminal: preserve grapheme data when widening wraps Pull request #14552
- Terminal: apply a single shift to exactly one printed character Pull request #14576
- Formatter: write the cursor position relative to the margins in origin mode Pull request #14588
- Terminal: stop line selection at prompt boundaries across blank cells Pull request #14553
- Terminal: print codepoints above 0xFF unmapped in a charset, as xterm Pull request #14554
This week: OSC 7501 program status protocol support, prompt navigation in the libghostty C API, DECSTR, CSI 19 t screen size reporting, and fixes for wide character copy, grapheme widening, and single shift.
This week in Ghostty: OSC 7501 program status protocol support was added, and libghostty-vt was updated to program status protocol revision 0.4. Prompt navigation is now exposed through the libghostty C API via GHOSTTY_SCROLL_VIEWPORT_DELTA_PROMPT, and libghostty-vt now reports CSI 8 t window resize requests. The terminal gained DECSTR (CSI! p) and CSI 19 t screen size reporting. Fixes include copying selections ending on the spacer head before a wrapped wide character, preserving grapheme data when widening wraps, applying a single shift to exactly one printed character, and writing the formatter cursor position relative to margins in origin mode.
Week of September 28, 2026
What shipped
- Added support for DECRQCRA and XTCHECKSUM control sequences to inspect terminal cells, mainly useful for conformance tests, with the sequences disabled by default. Pull request #14483
- Integrated esctest conformance suite to run against libghostty-vt, reporting results in CI without blocking builds. Pull request #14454
- Added memory usage query API to libghostty-vt so embedders can measure memory attributed to the terminal and track compression effectiveness. Pull request #14499
- Added semantic prompt and reset effects to libghostty-vt to report shell integration events and full terminal resets. Pull request #14479
- Switched Kitty graphics zlib decoding to Wuffs for 10-30% throughput improvements and safer code. Pull request #14422
- Shared render device state across renderers to avoid wasteful EGL initialization for each new surface. Pull request #14446
- Added snapshot decoder option to compress history pages during restore to avoid memory spikes. Pull request #14500
- Replaced nerd-font constraint switch statement with a 3-level lookup table for consistent performance with symbol lookups. Pull request #14420
- Fixed crash when shrinking terminal columns splits a wide character without reflow. Pull request #14509
- Made CAN and SUB control characters properly cancel in-progress OSC sequences instead of executing them. Pull request #14453
Why it matters
This week brings better standards compliance through new control sequence support and conformance testing, improves the C embedding API with new queries and effects, and delivers performance gains in graphics handling and font lookups. Several fixes address crashes and edge cases in terminal state management.
Changelog entry
- Terminal: add support for DECRQCRA and XTCHECKSUM control sequences Pull request #14483
- Libghostty-vt: add memory usage query API Pull request #14499
- Libghostty: add semantic prompt and reset effects Pull request #14479
- Kitty: use Wuffs for zlib decoding (10-30% faster) Pull request #14422
- Renderer: share render device state across renderers Pull request #14446
- Font: store nerd-font constraints in 3-level lookup table Pull request #14420
- Terminal: fix crash when shrinking columns splits wide characters Pull request #14509
- Terminal: CAN and SUB now properly cancel in-progress OSC sequences Pull request #14453
- Libghostty-vt: add option to compress snapshot history during decode Pull request #14500
- Terminal: preserve saved cursor position during repeated widening Pull request #14478
- Libghostty: add unknown sequence callback support for OSC Pull request #14452
- Libghostty-vt: zero
decode_pngoutput before callback Pull request #14530
This week: DECRQCRA/XTCHECKSUM for conformance testing, memory usage queries for embedders, 10-30% faster Kitty graphics, and dozens of fixes.
Ghostty's latest updates strengthen terminal compliance and embedding capabilities. New DECRQCRA and XTCHECKSUM support enables conformance testing. libghostty-vt gains memory usage queries and semantic event reporting for embedders. Performance improvements include 10-30% faster Kitty graphics via Wuffs, optimized font lookups, and reduced renderer initialization overhead. Plus fixes for wide character crashes, OSC sequence cancellation, and cursor positioning during resize.
Week of September 21, 2026
What shipped
- Terminal now supports overscan in RenderState, capturing extra rows above and below the viewport to enable smooth fractional scrolling. Pull request #14400
- GTK now uses fractional surface scaling via gdk_surface_get_scale() to keep textures aligned with actual device pixels instead of ceiling to integers. Pull request #14269
- Programs can now request terminal window size in cells using the CSI 8 t sequence (XTWINOPS). Pull request #14375
- Special graphics character writes are now batched for a 6.9× performance improvement when repainting DEC Special Graphics boxes. Pull request #14356
- Glyph cache keys are now stored as packed u64 instead of full RenderOptions, improving font rendering performance. Pull request #14300
- Double-clicking now correctly selects wide characters like Japanese text by resolving character spacers. Pull request #14391
- Fixed cursor jump bug with reverse wrapping when cursor-left or Backspace follows a restored cursor position. Pull request #14390
- Word selection now stops at hard line breaks instead of spanning across them when double-clicking. Pull request #14354
- GTK now installs SIGUSR2 handler before notifying systemd of readiness to prevent D-Bus activation failures on systemd 262+. Pull request #14399
- Nvidia GPU support improved by explicitly initializing a surfaceless EGL display instead of requiring EGL_PLATFORM=surfaceless environment variable. Pull request #14319
Why it matters
This week brings infrastructure for smooth scrolling with overscan support and improved fractional scaling on GTK, alongside significant rendering performance gains from batched character writes and optimized glyph cache keys. Several important fixes address selection behavior with wide characters, systemd integration on newer versions, and GPU compatibility with Nvidia drivers.
Changelog entry
- Terminal: add overscan support to RenderState for smooth scrolling Pull request #14400
- Gtk: support fractional surface scaling with gdk_surface_get_scale() Pull request #14269
- Support resizing the window with CSI 8 t (XTWINOPS) Pull request #14375
- Terminal: batch special graphics character writes for 6.9× performance improvement Pull request #14356
- Font: store glyph cache keys as packed u64 Pull request #14300
- Terminal: fix word selection across wide characters Pull request #14391
- Terminal: fix reverse wrap cursor jump with pending wrap state Pull request #14390
- Terminal: stop word selection at hard line breaks Pull request #14354
- Gtk: fix systemd Type=notify-reload service activation by installing SIGUSR2 handler before READY=1 Pull request #14399
- Opengl: improve Nvidia GPU support with explicit surfaceless EGL display initialization Pull request #14319
- Libghostty-vt: expose RenderState overscan in C API Pull request #14404
- Opengl: validate exported DMA-BUF planes to prevent crashes on window maximize Pull request #14322
This week: smooth scrolling infrastructure, fractional scaling on GTK, 6.9× faster special graphics rendering, wide character selection fixes, and Nvidia GPU improvements.
This week's updates focus on rendering performance and correctness. We've added overscan support to RenderState for smooth scrolling, improved fractional surface scaling on GTK to align with actual device pixels, and achieved 6.9× faster rendering for special graphics through batching. Glyph cache keys are now packed as u64 for better performance. Bug fixes include proper wide character selection, hard line break handling, systemd integration on newer versions, and Nvidia GPU compatibility.