tuilTERMINAL UI LAYER

React · Ink · Bun

Terminal UI,without the runtime tax.

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/tuilMIT
INTERACTIVESTATICSEMANTICPORTABLETYPE-SAFE

THE FRAMEWORK LAYER

Build the interface. Keep the control.

tuil owns the repetitive terminal machinery while your application keeps its domain, data, and architecture.
01

One runtime

Compose commands, events, capabilities, plugins, operations, and lifecycle services behind one explicit application boundary.

02

Terminal-native UX

Move through focus scopes, typed routes, overlays, forms, and hotkey sequences without rebuilding terminal behavior.

03

Every surface

Run the same application in an interactive TTY, redirected output, tests, Storybook, snapshots, and documentation.

Composable by design

A complete layer, not a component grab bag.

Start with the umbrella package or choose focused package boundaries. Every part shares typed contracts, deterministic teardown, and semantic testing.

Explore the architecture

YOUR TERMINAL DESERVES A DESIGN SYSTEM

Ship an interface people want to use.

Open the playground