Browser terminal rendering for web apps, powered by libghostty-vt in WASM,
WebGPU with WebGL2 fallback, and TypeScript text shaping.
- Demo: https://restty.pages.dev/
- Canonical docs: https://restty.pages.dev/docs
- npm: https://www.npmjs.com/package/restty
- Issues: https://github.com/wiedymi/restty/issues
restty is early-release software. The high-level API is usable, but some APIs may still change
while the developer experience settles.
npm i restty<div id="terminal"></div>import { Restty } from "restty";
const restty = new Restty({
root: document.getElementById("terminal") as HTMLElement,
});
restty.connectPty("ws://localhost:8787/pty");new Restty(...) creates the pane DOM, canvas, and hidden IME input for you.
restty: primary API (Restty,createRestty, themes, fonts, PTY helpers, plugin types).restty/xterm: focused xterm.js-style compatibility wrapper.restty/headless: DOM-free WASM terminal core wrapper for replay, tests, and backend-owned sessions.restty/esm: standalone browser ESM bundle for script/CDN usage.restty/internal,restty/internal/runtime,restty/internal/surface: unstable advanced modules.
See the canonical API surface docs for the current method and export list.
- Getting started
- Core concepts
- Surface and panes
- Configuration
- PTY backends
- Headless terminal
- Search
- Playground examples
- Fonts
- Themes and shaders
- Plugins
- xterm compatibility
- Troubleshooting
- Architecture
- Runnable examples
git clone https://github.com/wiedymi/restty.git
cd restty
git submodule update --init --recursive
bun install
bun run build:themes
bun run playgroundOpen http://localhost:5173.
Useful checks:
bun run build
bun run test:ci
bun run lint
bun run format:check
bun run playground:buildCloudflare Pages deployment settings:
- Framework preset:
None - Build command:
bun install --frozen-lockfile && bun run pages:build - Build output directory:
playground/dist - Root directory: leave blank
- Environment variables: set
SKIP_DEPENDENCY_INSTALL=1when using the build command above.
The hosted docs are sourced from playground/content/docs/. Repository notes under docs/ are
legacy/internal references for development context.