React Component

React
Widget.

Embed a live FrankenTUI terminal in any React page. Three lines of code, full GPU-accelerated rendering, automatic resize handling.

Resizable Widget

Drag the handles to resize. The terminal automatically refits its grid to the new container dimensions.

Scroll down to load interactive demo

The full WASM kernel runs in your browser at 60fps. Works in Chrome, Edge, Safari, and Firefox.

Use Cases

Anywhere you'd embed a code editor, you can now embed a full terminal UI.

Web-Based Terminal Apps

Ship full TUI applications in the browser. Dashboards, monitoring tools, and admin interfaces with the same performance as native.

Embeddable TUI Widgets

Drop a live terminal widget into any React page. Interactive demos, configuration panels, or status displays without iframes.

Interactive Documentation

Let users run real examples inside your docs. Not screenshots, not recordings — the actual application responding to their input.

Demo and Showcase Pages

Show your TUI app to the world without requiring installation. One click to experience the full interface in any modern browser.

3-Line Integration

Import the component, set your dimensions, and you're done. FrankenTerminal handles WASM loading, GPU setup, and resize events internally.

import FrankenTerminal from "@/components/franken-terminal";

<FrankenTerminal
  width="100%"
  height={400}
  captureKeys={false}
  showStatus
/>

Props Reference

Key props for sizing, behavior, and callbacks.

PropTypeDefaultDescription
widthnumber | string"100%"CSS width of the container
heightnumber | string"400px"CSS height of the container
captureKeysbooleantrueCapture keyboard events when focused
showStatusbooleantrueShow cols×rows overlay
loadTextAssetsbooleantrueLoad 14MB text assets (Shakespeare, SQLite)
autoFocusbooleanfalseFocus the canvas on mount
zoomnumber1.0Initial zoom level
onReady() => voidFired when WASM loads and first frame renders
onResize(cols, rows) => voidFired when terminal grid resizes
onError(error) => voidFired on WASM load failure