Files
anomalyco__opentui/packages/core/docs/development.md
T

2.1 KiB

Development Guide

Prerequisites

  • Bun - JavaScript runtime and package manager
  • Zig - Required for building native modules

Setup

git clone https://github.com/anomalyco/opentui.git
cd opentui
bun install

Building

bun run build

Note: Only needed when changing native Zig code. TypeScript changes don't require rebuilding.

Running Examples

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

Testing

# TypeScript tests
cd packages/core
bun test

# Native tests
bun run test:native

# Filter native tests
bun run test:native -Dtest-filter="test name"

# Benchmarks
bun run bench:native

Local Development Linking

Link your local OpenTUI to another project:

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

Options:

  • --react - Also link @opentui/react and React dependencies
  • --solid - Also link @opentui/solid and SolidJS dependencies
  • --dist - Link built dist directories instead of source
  • --copy - Copy instead of symlink (requires --dist)
  • --subdeps - Find and link packages that depend on opentui (e.g., opentui-spinner)

Examples:

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

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

# Link built artifacts
./scripts/link-opentui-dev.sh /path/to/your/project --react --dist

# Copy for Docker/Windows
./scripts/link-opentui-dev.sh /path/to/your/project --dist --copy

The script automatically links:

  • Main packages: @opentui/core, @opentui/solid, @opentui/react
  • Peer dependencies: yoga-layout, solid-js, react, react-dom, react-reconciler
  • Subdependencies (with --subdeps): Packages like opentui-spinner that depend on opentui

Requirements: Target project must have node_modules (run bun install first).

Debugging

OpenTUI captures console.log output. Toggle the built-in console with backtick or use Environment Variables for debugging.