Files
Mitchell Hashimoto 0c38e8be60 vt: simplify ghostty_type_json to return null-terminated string
The function previously took a size_t* out-parameter for the string
length. Since the JSON blob is now null-terminated, the len parameter
is unnecessary. Remove it from the Zig implementation, C header, and
the WASM example consumer which no longer needs to allocate and free
a usize just to read the length.
2026-03-30 10:16:19 -07:00
..
2026-03-30 10:16:19 -07:00

WebAssembly VT Terminal Example

This example demonstrates how to use the Ghostty VT library from WebAssembly to initialize a terminal, write VT-encoded data to it, and format the terminal contents as plain text.

Building

First, build the WebAssembly module:

zig build -Demit-lib-vt -Dtarget=wasm32-freestanding -Doptimize=ReleaseSmall

This will create zig-out/bin/ghostty-vt.wasm.

Running

Important: You must serve this via HTTP, not open it as a file directly. Browsers block loading WASM files from file:// URLs.

From the root of the ghostty repository, serve with a local HTTP server:

# Using Python (recommended)
python3 -m http.server 8000

# Or using Node.js
npx serve .

# Or using PHP
php -S localhost:8000

Then open your browser to:

http://localhost:8000/example/wasm-vt/