Agent skill

libghostty-vt

libghostty-vt

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/libghostty-vt

SKILL.md

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
ground Normal text printing
escape ESC detected (0x1B)
csi_entry CSI sequence start
csi_param Parsing CSI parameters
osc_string OSC data collection
dcs_passthrough DCS data collection

Action Types

zig
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

bash
# 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)

zig
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

GF(3) Assignment

Trit: +1 (PLUS) - Generator/Parser
Hue: 180° (cyan - terminal green vibes)

Triads:

  • libghostty-vt (+1) × vterm (0) × terminfo (-1) = 0 ✓
  • libghostty-vt (+1) × tmux (0) × escape-sequence-validator (-1) = 0 ✓

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results