An SDK for building Turbo Vision-style terminal (TUI) applications in TypeScript — a retained widget framework with fine-grained reactivity, on top of a pure, zero-dependency rendering engine.
The same JSVision applications run in a native terminal and in the browser through xterm.js. Click any screenshot to open its interactive version.
| Calculator | Editor & clipboard |
![]() |
![]() |
| Matrix rain | Localized Theme Designer |
![]() |
![]() |
| Code Editor | Data Grid |
![]() |
![]() |
The full guide, live component gallery, and API reference live on the documentation site: https://blendsdk.github.io/jsvision/
- Guide — build your first app
- Components — the widget catalog, running live
- API reference
| Package | What it is |
|---|---|
@jsvision/core |
Zero-dependency rendering engine, terminal host, input decoding, capability detection, colour, and safety. |
@jsvision/ui |
Retained widget tree, fine-grained signals, layout, application shell, event loop, themes, and controls. |
@jsvision/i18n |
Zero-dependency internationalization for JSVision applications and packages. |
@jsvision/forms |
Headless reactive form and field state with synchronous Zod validation. |
@jsvision/files |
File open/save, directory chooser, file list, directory list, file input, and file-information controls. |
@jsvision/datagrid |
Editable data grid with typed columns, per-cell editing, filtering, sorting, grouping, and virtual scrolling. |
@jsvision/code-editor |
Terminal-native source editor with document lifecycle, search, replace, folding, syntax highlighting, and LSP UI. |
The private @jsvision/web workspace powers the browser examples; it
is not currently published to npm.
npm install @jsvision/core @jsvision/uiESM-only. Requires Node.js ≥ 22. See the Guide to build your first app.
This is a yarn 1.x + Turborepo monorepo. From the repo root:
yarn install
yarn verify # lint + typecheck + build + test across all packagesAll public packages share one lockstep version. For the full workflow, see the development guide.
jsvision follows Semantic Versioning. Each package's entry point
is its stable public surface, and breaking changes ship only in a major release.
Anything marked @deprecated is kept for at least one minor release before removal.
All public packages share one lockstep version, and notable changes are recorded in
each package's CHANGELOG.md and on the
GitHub Releases page.






