Package Exports
- @opentui/core
- @opentui/core/3d
- @opentui/core/parser.worker
- @opentui/core/testing
Readme
OpenTUI Core
OpenTUI is a native terminal UI core written in Zig with TypeScript bindings. The native core exposes a C ABI and can be used from any language. OpenTUI powers OpenCode in production today and will also power terminal.shop. It is an extensible core with a focus on correctness, stability, and high performance. It provides a component-based architecture with flexible layout capabilities, allowing you to create complex terminal applications.
Documentation
- Getting Started - API and usage guide
- Development Guide - Building, testing, and contributing
- Tree-Sitter - Syntax highlighting integration
- Renderables vs Constructs - Understanding the component model
- Environment Variables - Configuration options
Install
bun install @opentui/coreBuild
bun run buildThis creates platform-specific libraries that are automatically loaded by the TypeScript layer.
Examples
bun install
bun run src/examples/index.tsBenchmarks
Run native performance benchmarks:
bun run bench:nativeSee src/zig/bench.zig for available options like --filter and --mem.
NativeSpanFeed TypeScript benchmarks:
CLI Renderer
Renderables
Renderables are hierarchical objects that can be positioned, nested, styled and rendered to the terminal:
import { createCliRenderer, TextRenderable } from "@opentui/core"
const renderer = await createCliRenderer()
const obj = new TextRenderable(renderer, { id: "my-obj", content: "Hello, world!" })
renderer.root.add(obj)