One runtime
Compose commands, events, capabilities, plugins, operations, and lifecycle services behind one explicit application boundary.
React · Ink · Bun
Build polished terminal applications with composable components, typed services, deterministic output, portable stories, and a production runtime that stays out of your way.
npm install @mwillbanks/tuilMITscoped + restorabletyped + guardedobservable + cancellablepersistent + resumableTHE FRAMEWORK LAYER
Compose commands, events, capabilities, plugins, operations, and lifecycle services behind one explicit application boundary.
Move through focus scopes, typed routes, overlays, forms, and hotkey sequences without rebuilding terminal behavior.
Run the same application in an interactive TTY, redirected output, tests, Storybook, snapshots, and documentation.
Composable by design
Start with the umbrella package or choose focused package boundaries. Every part shares typed contracts, deterministic teardown, and semantic testing.
Explore the architectureYOUR TERMINAL DESERVES A DESIGN SYSTEM