anomalyco /opentui

OpenTUI is a library to build terminal user interfaces (TUI)

★ 13,702⑂ 799👁 37▤ 122
TypeScriptCreated 2025-07-21opentui.com/
13,702
stars
+0+2
799
forks
37
watchers
–
prs
–
issues
122
releases
–
discussions

README

OpenTUI is a library to build terminal user interfaces.

- It is written in Zig.
- You write TypeScript directly or through React and Solid.
- You arrange boxes and text with flexbox.
- You add selects, inputs, and scroll boxes with keyboard and mouse controls.
- You can play sounds, show images, play videos, and render 3D graphics.

OpenCode uses OpenTUI in production for millions of users.

Website | Documentation | Packages

 Packages

- @opentui/core - Native terminal UI library with TypeScript bindings.
- @opentui/react - React renderer for building terminal user interfaces with OpenTUI Core.
- @opentui/solid - Solid renderer for building terminal user interfaces with OpenTUI Core.
- @opentui/keymap - Key binding and command routing library for terminal and browser applications.
- @opentui/qrcode - QR code encoder and renderable with React and Solid surfaces.
- @opentui/three - Three.js WebGPU renderer for OpenTUI.
- @opentui/ssh - SSH server integration for OpenTUI applications.

Private packages

- @opentui/native - Private workspace with the Zig implementation, native tests, and benchmarks.
- @opentui/examples - Private workspace with example applications and a standalone examples executable.
- @opentui/web - Private workspace with the documentation website and the AI agent skill.
- packages/rust - Unpublished Rust bindings for the native C ABI and a framework built on them.

 AI agent skill

Install the OpenTUI documentation as a skill for your AI coding assistant with npx skills:

bash
npx skills add https://opentui.com --skill opentui


Add -g to install the skill globally. The skill matches the latest release, and npx skills update moves it to each
new release. Install from https://opentui.com/docs/next to follow the main branch. A skill installed with
npx skills add anomalyco/opentui follows the main branch; run the command above to switch it to releases.

 Development

Development requires Bun 1.4.1 or later and Zig 0.17.0.

See AGENTS.md for engineering, tooling, and verification conventions.

bash
bun install


Run package scripts from their package directory. Run bun run build from the repository root after you change
native code or cross-package build outputs. Ordinary TypeScript changes do not require a root build.

Run repository tests and static checks from the repository root:

bash
bun run test
bun run fmt:check
bun run lint


To link the source packages into a Bun-managed project, install that project's dependencies, then run
./scripts/link-opentui-dev.sh /path/to/project from the repository root. Add --react or --solid when needed.

 Contributing

OpenTUI is open for contributions.

 License

OpenTUI is licensed under the MIT License.

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON