Embed a live FrankenTUI terminal in any React page. Three lines of code, full GPU-accelerated rendering, automatic resize handling.
Drag the handles to resize. The terminal automatically refits its grid to the new container dimensions.
The full WASM kernel runs in your browser at 60fps. Works in Chrome, Edge, Safari, and Firefox.
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.
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
/>Key props for sizing, behavior, and callbacks.
| Prop | Type | Default | Description |
|---|---|---|---|
| width | number | string | "100%" | CSS width of the container |
| height | number | string | "400px" | CSS height of the container |
| captureKeys | boolean | true | Capture keyboard events when focused |
| showStatus | boolean | true | Show cols×rows overlay |
| loadTextAssets | boolean | true | Load 14MB text assets (Shakespeare, SQLite) |
| autoFocus | boolean | false | Focus the canvas on mount |
| zoom | number | 1.0 | Initial zoom level |
| onReady | () => void | — | Fired when WASM loads and first frame renders |
| onResize | (cols, rows) => void | — | Fired when terminal grid resizes |
| onError | (error) => void | — | Fired on WASM load failure |