finds.dev← search

// the find

ghostty-org/ghostling

★ 1,096 · C · MIT · updated Aug 2026

A minimum viable terminal emulator built on top of the libghostty C API. Ex minimo, infinita nascuntur. 👻🐣

A single-file C demo terminal emulator that wraps libghostty-vt (the core from the Ghostty terminal) and renders via Raylib. It's aimed at developers who want to embed proper terminal emulation into their own apps and need a concrete, minimal working example of the C API. Not intended as a daily driver.

- Everything is in one ~1k-line C file, which makes it genuinely useful as a reference implementation rather than a maze of abstractions to untangle

- libghostty-vt itself brings serious terminal emulation pedigree: SIMD parsing, correct Unicode/grapheme handling, Kitty keyboard and graphics protocol, mouse tracking — things that take years to get right

- Honest about what it is and isn't — the README explicitly lists what will never be supported and known upstream bugs (Raylib/GLFW Kitty keyboard protocol breakage), which is rare and appreciated

- Nix flake included alongside the CMake build, and CI is already set up, so the build story is reasonably solid for a demo project

- Requires Zig on PATH to build even though the entire user-facing code is C — libghostty-vt is a Zig library under the hood, so you're pulling in a full Zig toolchain as a hidden build dep, which will surprise people

- Single-threaded design with a 2D software path means performance characteristics shown here don't reflect what you'd see in a real GPU-rendered embedding; benchmarking or profiling from this demo would mislead you

- No font shaping or glyph layout at all — the README acknowledges this but it means anything beyond ASCII/basic Latin looks wrong, which is a significant gap if you're evaluating for real use

- Windows is listed as theoretically supported by the library but completely untested in this demo, so anyone targeting Windows is on their own from day one

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →