OpenTUI skill
An OpenTUI documentation skill: the agent builds terminal UIs on Core, React or Solid and finds the right page by topic
- 13,808 ★ on the repository
- Last commit
- MIT
Minimal access
Why this level
- The skill is documentation and rules that run nothing by themselves; the network is needed only by the `npx skills` installer.
Install
- Works in
Manual install
npx skills add https://opentui.com --skill opentuiThe README command takes the documentation of the latest release. The `-g` flag installs globally and `npx skills update` moves it to a new release.
Access and checks
How we reviewMinimal accessThe tool runs nothing and makes no network calls.
- The skill is documentation and rules that run nothing by themselves; the network is needed only by the `npx skills` installer.
This is third-party code. Review the repository files before installing.
What it does
The `opentui` skill hands an agent the documentation of a terminal UI library: the renderer, flexbox layout, keyboard, text, input, image and embedded-terminal components, testing, plugins, bundling and deployment. It holds the `docs/**/*.mdx` pages and a routing table by keyword: `flexbox` leads to `docs/core-concepts/layout.mdx`, and `ssh` to `docs/reference/ssh.mdx`. The skill also guides package choice. Core fits direct calls, `@opentui/react` and `@opentui/solid` fit JSX, `@opentui/keymap` handles shortcuts, and `@opentui/ssh` serves an interface over SSH. Installing every package at once is discouraged. The skill also asks the agent to design for a terminal: no gaps between panels, no needless margins, a dense layout.
Who it is for. Authors of terminal utilities, CLI agent interfaces and SSH services in TypeScript who write code together with an agent.
Good fit when
- An agent writes a terminal utility with a form, a list and scrolling in TypeScript.
- A React or Solid interface has to run in the terminal with familiar JSX.
- App shortcuts are gathered into one scheme with key sequences and focus-based layers.
- A terminal app is served to remote users over SSH.
- Interface tests are written through the test renderer with frame snapshots.
Not a fit when
- The interface is needed in a browser or on a mobile screen: OpenTUI draws only in a terminal.
- The app is written in Python or Go: the documentation targets TypeScript, and the native path is described for C and Zig.
- The project is pinned to an old `@opentui/core` while the skill describes the latest release.
Example request
Build a terminal panel on OpenTUI with React: a task list on the left, the selected task's description on the right, arrow-key navigation.Limitations
The skill describes the release or branch it was installed from. The `https://opentui.com` address gives the latest release, while `npx skills add anomalyco/opentui` follows the main branch and may run ahead of published packages. For a project on an old `@opentui/core` the agent has to read the release notes. The `@opentui/three` package works only in Bun. The documentation is large, so the agent opens pages by the routes in the table and does not load all of it into context.
How to disable. Delete the `opentui` skill folder from the agent's skills directory. The `@opentui/*` packages installed in your project stay in place.
FAQ
How do I install the OpenTUI skill?
Run `npx skills add https://opentui.com --skill opentui`. The `-g` flag installs it globally. This command takes the documentation of the latest release.
How do I update the skill to a new release?
Run `npx skills update`: it moves a skill installed from the opentui.com address to each new release.
Which should I pick: Core, React or Solid?
Core fits direct calls through `createCliRenderer()`, React fits components and hooks through `createRoot()`, and Solid fits signals through `render()`. The skill asks to install only the packages you need.
How do I follow the main branch?
Install the skill with `npx skills add anomalyco/opentui` or from the `https://opentui.com/docs/next` address. The main command with `--skill opentui` switches back to releases.
Can a terminal app be served over SSH?
Yes. The `ssh` route leads to `docs/reference/ssh.mdx`: the `@opentui/ssh` package creates a server through `createServer()`, and the guide covers authentication, middleware and session cleanup.
Discussion
No questions or reviews yet.
Related
SkillsAn OpenTUI reference for agents: decision trees, the Core, React and Solid APIs, layout, keys, animation and testing
Over 200 skills by stack and practice: React, Next.js, Rails, Rust, Python, debugging, TDD and UI review
An agent reference for cross-platform desktop apps that feel native: eight tenets, four layers, a WebView survival guide and a 75-item ship audit
A skill that replaces terminal ASCII with self-contained HTML pages: diagrams, diff reviews, plan reviews, tables and slide decks
An agent skill with TypeScript conventions: types, discriminated unions, functions, naming, source layout, React and tests, loaded per topic
GitUI is a terminal Git interface that runs operations asynchronously, keeping the interface responsive during Git work.
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Repository stars | Main difference |
|---|---|---|---|
| OpenTUI (this card) | yes | 13,808 | |
| Textual development CLI | no | 37,643 | the Textual CLI runs a Python terminal app in a browser; this is a documentation skill for the TypeScript library OpenTUI |
| tui-test | no | 314 | a Microsoft CLI that checks finished terminal sessions; this is documentation for building the interface itself |
README in short
The README calls OpenTUI a Zig library with TypeScript, React and Solid interfaces and notes that OpenCode uses it. The keymap, qrcode, three and ssh packages are listed separately. The agent section explains how to install the skill and when to pick a release or the main branch.
README badge
Original SKILL.md
--- name: opentui description: Build terminal UIs with OpenTUI. Covers Core, frameworks, components, application APIs, testing, extensions, integrations, deployment, and public API lookup. --- # OpenTUI Skill Canonical reference docs are in the sibling `docs/**/*.mdx` files. Inside the OpenTUI repository, this skill root is `packages/web/src/content/`. The same files are available under `packages/web/src/content/docs/**/*.mdx` from the repository root. ## Terminal layout defaults Design for a terminal app, not a browser. Use the available columns and rows efficiently. - Do not use gaps between adjacent UI panels. - Do not add unnecessary margins or padding. - Prefer compact, information-dense layouts over website-style card spacing. ## Path invariant - `/docs` maps to `docs/getting-started.mdx`. - `/docs/components` maps to `docs/components/overview.mdx`. - Every other `/docs/<slug>` URL maps to `docs/<slug>.mdx` relative to this skill root. - From the repository root, prepend `packages/web/src/content/` to each source path. - `/docs/releases/<version>` maps to `docs/releases/<version>.md`, the release notes of that version. ## Versions The docs describe the release or branch that this skill came from. Each release notes file lists what changed in that release and links the pages it affects. When a project uses an older `@opentui/core` than the docs describe, read the notes of the newer releases before you use an API, and prefer what the project's version provides. ## Choose packages Use Core directly or choose a React or Solid binding for the UI. Recommend companion packages when their features fit the task. Do not install every package by default. - [`@opentui/core`](docs/core-concepts/renderer.mdx): use imperative renderables and events with `createCliRenderer()`. - [`@opentui/react`](docs/bindings/react.mdx): use React components, JSX, and hooks with `createRoot()`. - [`@opentui/solid`](docs/bindings/solid.mdx): use Solid components, JSX, and signals with `render()`. - [`@opentui/keymap`](docs/keymap/overview.mdx): centralize keyboard bindings and named commands across views. The package supports focus-scoped layers, configurable shortcuts, and multi-key sequences. Start with `createDefaultOpenTuiKeymap()` from `@opentui/keymap/opentui`. Use `@opentui/keymap/react` or `@opentui/keymap/solid` for providers and hooks. [Direct keyboard events](docs/core-concepts/keyboard.mdx) or component-local bindings are enough for simple local input. - [`@opentui/ssh`](docs/reference/ssh.mdx): serve a terminal UI to standard SSH clients without a local app installation. Import `createServer()` from the package root. Pass each session's renderer to Core, React, or Solid. The package has no framework subpaths. Read the SSH guide for authentication, middleware, and session cleanup.