Shadcn OpenTUI

Independent OpenTUI-inspired web experiment

The terminal component
for modern apps

An independent shadcn/ui project for bringing OpenTUI-style terminal applications to the web with inspectable React code, command handling, and TypeScript support.

Built for React and Next.js apps in the browser. This is not the official OpenTUI project; upstream OpenTUI remains at anomalyco/opentui.
Shadcn OpenTUI Strategy
Independent project positioning, current web path, and future runtime boundary.
Current path: shadcn-webNot official OpenTUIZig/WASM: future research

Shadcn OpenTUI is an independent web adapter experiment, not the official OpenTUI project. The current product path is inspectable shadcn/React code.

Use the registry components and the OpenTUI-to-shadcn codegen track today. Treat the Zig/WASM packages as parked future runtime research.

Future runtime peer packages
@opentui/core @opentui/react
Only for runtime research: bun add @opentui/core @opentui/react
$npx shadcn@latest add https://opentui.vercel.app/r/terminal.json
Compatible with npm, yarn, pnpm, and bun

See it in action

Live shadcn terminal components running in the browser

shadcn OpenTUIInstallation
OpenTUI Terminal
Ctrl+L to clear
Install demo
Try: install
$
Install and validate the stable shadcn terminal component.
shadcn OpenTUIUI Components
OpenTUI Terminal
Ctrl+L to clear
UI demo
Try: menu
$
Open forms and menus inside the stable terminal surface.
shadcn OpenTUIBuilt-in Commands
OpenTUI Terminal
Ctrl+L to clear
Commands demo
Try: status
Try: help
$
Command history, completions, async handlers, and terminal output.

Terminal-native patterns

Reusable OpenTUI-inspired interaction systems that stay inside the terminal instead of drifting into generic UI.

In-terminal workflows

Forms and menus as first-class terminal flows

Drive onboarding, settings, and command routing from one reusable terminal surface.

OpenTUI Terminal
Ctrl+L to clear
Run 'profile' for a form.
Run 'menu' for a keyboard-driven menu.
$

Run 'profile' for a form.

Run 'menu' for a keyboard-driven menu.

Terminal dashboards

Dashboards that still feel like a terminal

Show progress, system status, and generated output without falling back to stock sliders.

OpenTUI Terminal
Ctrl+L to clear
Run 'status' for a live readout.
Run 'progress' or 'banner' for richer terminal output.
$

Run 'status' for a live readout.

Run 'progress' or 'banner' for richer terminal output.

15+
Built-in commands
5
UI components
100%
TypeScript
<5kb
Bundle size

Everything you need

Powerful features for building terminal experiences

Command History

Navigate through previous commands with arrow keys, just like a real terminal.

Tab Completion

Intelligent tab completion with suggestions for faster command entry.

UI Components

Built-in forms, menus, tables, and progress flows for interactive terminal UIs.

Async Commands

Full support for async command handlers with loading states.

Try it yourself

Experience the Shadcn OpenTUI terminal component. Type commands, use tab completion, and explore the built-in functionality including interactive UI modes.

Available commands

helpShow all commands
ui menu [items]Create interactive menu
form [fields]Create interactive form
progress [ms]Show animated progress
ascii [text]Generate ASCII art
clearClear terminal
OpenTUI Terminal
Ctrl+L to clear
Interactive shadcn terminal
Try: help
Try: menu Dashboard Projects Settings
$

Ready to get started?

Add the Shadcn OpenTUI terminal component to your project using the @shadcn-opentui registry.