92 commits to ghostty, 53 each to ghostling and ghostty-windows, no releases this week.
*CMake and Zig tooling mature enough to ship the VT library in multiple forms.*
@mitchellh merged #11732 to add static library support alongside the existing dynamic build. This follows weeks of infrastructure work: CMake support landed in #11700, Zig optimization flags for release builds in #11707, and CI validation in #11703. Static linking reduces runtime dependencies for consumers of libghostty-vt, particularly useful for embedded terminal implementations like ghostling.
*Streaming parsers no longer reset mid-sequence when input arrives in fragments.*
The VT state machine in libghostty-vt previously lost context between separate write operations. #11728 preserves decoder state across boundaries — critical for any consumer receiving escape sequences in chunks rather than complete messages. This is a correctness fix disguised as infrastructure work; parsers that can't hold state across I/O boundaries produce corrupted output or drop sequences entirely.
*Consumers can now query renderer state and terminal grid contents directly from C.*
#11725 adds a ghostty_build_info API for querying build configuration, while #11676 provides grid point and cell inspection — the low-level terminal data structs that screen readers and clipboard handlers need. Together with #11664's render state API, the C interface now exposes enough of the terminal's internals that alternative UIs (like ghostling) and accessibility tools can work directly with rendered output without reimplementing parsing.
*Cell-level color information now distinguishes between indexed and direct color modes.*
#11717 adds color_palette and color_rgb cell data types to the VT library. This allows consumers of libghostty-vt to preserve the semantic difference between a cell colored via a 256-color palette index versus direct 24-bit RGB — important for accurate round-tripping of terminal output and for accessibility layers that need to report actual color values.
*The `-Demit-lib-vt` flag replaces a separate build step, simplifying consumer integrations.*
#11716 replaces the old lib-vt build step with a Zig compile option, reducing the number of build modes consumers need to maintain. A pending Meson wrapper (#11702) suggests the next abstraction layer — making libghostty-vt available through multiple build systems without custom glue.
*The minimal terminal emulator built on libghostty continues development in parallel.*
53 commits this week to ghostling — no merged PRs or releases, but consistent iteration. This suggests ongoing integration work against libghostty's expanding C API. The project remains a real-time stress test of whether the library bindings are sufficient for an independent UI layer.
Your GitHub week, turned into something worth reading.
Generate your dispatch →