libghostty-vt
Scanned 9/6/2026
Install to Claude Code
npx -y skills add plurigrid/asi --skill libghostty-vt --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Libghostty Vt?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/plurigrid-libghostty-vt)More formats (shields.io, HTML) on the badges page.
---
name: libghostty-vt
description: 'libghostty-vt'
version: 1.0.0
---
# 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
- 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)` × `terminfo (-1)` = 0 ✓
- `libghostty-vt (+1)` × `tmux (0)` × `escape-sequence-validator (-1)` = 0 ✓
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!