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

Animated theme selector
Auto-previewing themes. Type theme to take control.
OpenTUI Terminal
Ctrl+L to clear
Live theme preview: Matrix
Type 'theme' for keyboard navigation, preview-on-arrow, Enter-to-save.
Type 'colors' to print the active palette.

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.

Agent session

Streaming transcript with thinking indicator, stream text, and edit block in a terminal-native layout.

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.