Skip to content

Roadmap

Karanjot786 edited this page Jun 1, 2026 · 3 revisions

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.

Current state (v0.1.x)

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

Where work stands

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 Open and claimable
Wave 6 New widgets Open and claimable
Wave 7 Hooks and core depth Open and claimable
Wave 8 Subsystem depth Open and claimable
Waves 9 to 10 DX and differentiators Planned

Waves 5 to 8 are open right now with 55 unassigned issues across all skill levels. Browse open good first issues or the project board. Comment "I would like to work on this" to claim one. You hold at most 2 open issues at a time.

Wave 5: Coverage and polish

Beginner-friendly. No feature code. Available first. Best place to start.

  • Tests for untested code: dev-server and testing packages have zero tests. ui has 9 untested components (Form, NumberInput, PasswordInput, and more). widgets has 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.

Wave 6: New widgets

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

Wave 7: Hooks and core depth

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

Wave 8: Subsystem depth

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

Wave 9: Developer experience

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

Wave 10: Strategic differentiators

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

How to pick work

  1. Open the project board.
  2. Filter by level:beginner, level:intermediate, or level:advanced.
  3. Read the issue. Comment "I would like to work on this".
  4. 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.

Open RFCs

Shape the big features before code starts:

Clone this wiki locally