Skip to content
Projects

wiedymi/restty has 418 GitHub stars and 24 forks. Star changes are not measured yet. Last checked 2026-11-08 13:08 UTC. Last push 2026-09-05.

How these counts are measured

Powerful, lightweight web terminal. Batteries included. Powered by libghostty-vt, WebGPU, and text-shaper.

Measured star growth

in 24h
Update delayed
in 7 days
Update delayed
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

restty

Version Downloads CI Demo

Browser terminal rendering for web apps, powered by libghostty-vt in WASM, WebGPU with WebGL2 fallback, and TypeScript text shaping.

restty is early-release software. The high-level API is usable, but some APIs may still change while the developer experience settles.

Install

npm i restty

Quick Start

<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.

Main Entrypoints

  • 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.

Common Links

Local Development

git clone https://github.com/wiedymi/restty.git
cd restty
git submodule update --init --recursive
bun install
bun run build:themes
bun run playground

Open http://localhost:5173.

Useful checks:

bun run build
bun run test:ci
bun run lint
bun run format:check
bun run playground:build

Cloudflare 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=1 when 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.

Explore related projects