-
Notifications
You must be signed in to change notification settings - Fork 194
Roadmap
This page shows where TermUI is, what is in progress, and what comes next. Use it to find work that fits your skill level.
TermUI ships a working core today:
- Layout engine with flexbox and constraint rules
- Differential renderer. Only changed cells redraw.
- JSX runtime and React-style hooks
- 13 packages, 600+ tests passing
- Theming, animations, routing, hot-reload dev server
- 40+ widgets and a headless test harness
| Wave | Focus | Status |
|---|---|---|
| Wave 1 | Core widgets | Merging now |
| Waves 2 to 4 | Capabilities, adapters, prompts, registry, templates | All assigned |
| Wave 5 | Coverage and polish | Opening next |
| Waves 6 to 10 | Widgets, hooks, subsystems, DX, differentiators | Planned |
Every issue in waves 1 to 4 is assigned. If you arrived now, look at Wave 5 and the planned waves below. Comment on an issue when it opens, or open a new issue for anything you find missing.
Beginner-friendly. No feature code. Available first. Best place to start.
-
Tests for untested code:
dev-serverandtestingpackages have zero tests.uihas 9 untested components (Form, NumberInput, PasswordInput, and more).widgetshas 12 untested (Grid, Sidebar, BigText, and more). - Examples that do not exist yet: forms-and-validation, multi-screen-router, ai-streaming, auth-flow, cli-wrapper-live.
-
Docs: a "Choosing your API" guide (imperative vs JSX vs quick), a
DEVELOPMENT.md, and expanded READMEs for dev-server, motion, router.
Beginner to intermediate. Each widget is one clean PR.
- DatePicker, TimePicker, ColorPicker
- Slider and RangeInput
- Autocomplete and SearchableSelect
- TreeTable (tree plus columns)
- MultilineTextInput
- SegmentedControl, Carousel, ContextMenu
Intermediate. React-parity hooks and core primitives.
- useReducer, useLayoutEffect, useId, useImperativeHandle
- Suspense and lazy() for async components
- Portal for overlay rendering
- Clipboard read and paste events
- Wide-character and emoji fallback in the renderer
Intermediate to advanced. Pick a package and deepen it.
- Store: middleware, persist plugin, computed selectors, immutable helpers
- Motion: keyframes, custom easing, chained sequences, 2D vectors
- Router: lazy routes, guards, nested routes, query strings, param validation
- TSS: nesting, mixins, color functions, pseudo-class states, imports
- Data: WebSocket provider, REST client hook, caching, time-series history
Intermediate to advanced. Close the DX gap with Textual and Ink.
- Error overlay in the dev server
- Theme hot reload without full restart
- Devtools inspector UI (live widget tree plus hook state)
- Snapshot testing in the test harness
- Accessibility test queries
- VS Code snippets package
- Scaffold improvements: example test, editor config, CI template
Advanced. Mentor-led epics. Each starts as an RFC, then splits into sub-issues.
- Command palette v2: fuzzy action runner with app commands
- Web serving: stream the same app to a browser
- Plugin architecture: third-party widgets, themes, commands, panels
- Full styling system: selector-driven cascading styles with live reload
- Demo recording tool: scriptable terminal recordings to GIF, SVG, MP4
- Interactive playground and widget gallery
- Open the project board.
- Filter by
level:beginner,level:intermediate, orlevel:advanced. - Read the issue. Comment "I would like to work on this".
- Wait for assignment, then open your PR within 7 days.
Found a gap not on this roadmap? Open a new issue. New ideas are welcome.
Shape the big features before code starts: