install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/libghostty-vt" ~/.claude/skills/majiayu000-claude-skill-registry-libghostty-vt && rm -rf "$T"
manifest:
skills/data/libghostty-vt/SKILL.mdsource content
libghostty-vt
Zero-dependency VT sequence parser from Ghostty. Mitchell Hashimoto's embeddable terminal core.
Status
NOT YET RELEASED (as of 2025-09) - Zig API available for testing, C API coming.
What It Is
libghostty-vt extracts Ghostty's proven VT parsing into a standalone library:
- Parse ANSI/VT sequences
- Maintain terminal state
- Zero dependencies (no libc required!)
- SIMD-optimized (>100 MB/s plain text)
Architecture
Raw Bytes → UTF8Decoder → Parser (DFA) → Stream → Actions │ State Machine (14 states)
Parser States
| State | Purpose |
|---|---|
| Normal text printing |
| ESC detected (0x1B) |
| CSI sequence start |
| Parsing CSI parameters |
| OSC data collection |
| DCS data collection |
Action Types
const Action = union(enum) { print: u21, // Unicode codepoint execute: u8, // C0/C1 control csi_dispatch: CSI, // Control Sequence Introducer esc_dispatch: ESC, // Escape sequence osc_dispatch: *osc.Parser, dcs_hook: DCS, dcs_put: u8, dcs_unhook: void, };
Key Files (ghostty-org/ghostty)
src/terminal/Parser.zig # State machine src/terminal/stream.zig # Stream wrapper + SIMD src/terminal/osc.zig # OSC parser src/terminal/parse_table.zig # Compile-time transition table src/simd/vt.zig # SIMD acceleration
Performance
| Optimization | Impact |
|---|---|
| Pre-computed state table | O(1) transitions |
| SIMD text processing | 10-100x for plain text |
| Fast-path CSI parsing | Skips state machine |
| Fixed-size buffers | No allocation |
Use Cases
- Terminal emulators (tmux, zellij, Ghostty)
- IDE terminals (VS Code, JetBrains)
- Cloud terminals (Vercel, Render)
- TUI frameworks
- Terminal recording/playback
When Available
# Future installation (not yet available) # Zig zig fetch --save git+https://github.com/ghostty-org/libghostty-vt # C (when released) # pkg-config --cflags --libs libghostty-vt
Example (Future API)
const vt = @import("libghostty-vt"); var parser = vt.Parser.init(); var stream = vt.Stream(MyHandler).init(&parser, &handler); // Process bytes for (input) |byte| { if (stream.next(byte)) |action| { switch (action) { .print => |cp| handler.print(cp), .csi_dispatch => |csi| handler.handleCSI(csi), // ... } } }
Sources
- https://mitchellh.com/writing/libghostty-is-coming
- https://ghostty.org/docs/about
- https://github.com/ghostty-org/ghostty
- https://vt100.net/emu/dec_ansi_parser
GF(3) Assignment
Trit: +1 (PLUS) - Generator/Parser Hue: 180° (cyan - terminal green vibes)
Triads:
×libghostty-vt (+1)
×vterm (0)
= 0 ✓terminfo (-1)
×libghostty-vt (+1)
×tmux (0)
= 0 ✓escape-sequence-validator (-1)