Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

OpenTUI is a library for building terminal user interfaces (TUIs)

License

Notifications You must be signed in to change notification settings

aprogramq/opentui

Open more actions menu
 
 

Repository files navigation

OpenTUI

npm Build status awesome opentui list

OpenTUI is a TypeScript library for building terminal user interfaces (TUIs). It is currently in development and is not ready for production use. It will be the foundational TUI framework for both opencode and terminaldotshop.

Quick start with bun and create-tui:

bun create tui

This monorepo contains the following packages:

Install

NOTE: You must have Zig installed on your system to build the packages.

TypeScript/JavaScript

bun install @opentui/core

Running Examples (from the repo root)

TypeScript Examples

bun install
cd packages/core
bun run src/examples/index.ts

Development

Local Development Linking

When developing OpenTUI, you may want to test your changes in another project without publishing. The link-opentui-dev.sh script makes this easy by creating symlinks (or copies) from your OpenTUI workspace to another project's node_modules.

Basic usage:

./scripts/link-opentui-dev.sh /path/to/your/project

This will link @opentui/core to your target project.

Options:

  • --react - Also link @opentui/react
  • --solid - Also link @opentui/solid and solid-js
  • --dist - Link the built dist directories instead of source packages
  • --copy - Copy the dist directories instead of symlinking (requires --dist)

Examples:

# Link only core (default)
./scripts/link-opentui-dev.sh /path/to/your/project

# Link core and solid
./scripts/link-opentui-dev.sh /path/to/your/project --solid

# Link core and react, using dist directories
./scripts/link-opentui-dev.sh /path/to/your/project --react --dist

# Copy dist directories (useful for environments where symlinks don't work)
./scripts/link-opentui-dev.sh /path/to/your/project --dist --copy

Notes:

  • The target project must have already run bun install (or npm install) to have a node_modules directory
  • By default, the script links to the source packages, allowing hot-reloading of changes
  • Use --dist when you need to test the built artifacts
  • Use --copy mode when working in environments that don't support symlinks well (e.g., Docker containers, Windows)

Showcase

Consider showcasing your work on the awesome-opentui list. A curated list of awesome resources and terminal user interfaces built with OpenTUI.

About

OpenTUI is a library for building terminal user interfaces (TUIs)

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 62.0%
  • Zig 35.0%
  • Go 1.6%
  • Tree-sitter Query 0.5%
  • Shell 0.3%
  • Vue 0.2%
  • Other 0.4%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.