# OpenTUI — TypeScript Library for Building Terminal User Interfaces > A modern TUI framework for building rich terminal applications with a component-based architecture and reactive state management. ## Install Save as a script file and run: # OpenTUI — TypeScript Library for Building Terminal User Interfaces ## Quick Use ```bash npm install opentui ``` ```typescript import { render, Text, Box } from "opentui"; render( Hello from OpenTUI! ); ``` ## Introduction OpenTUI is a TypeScript-first terminal UI library that brings component-based patterns to CLI applications. It provides a declarative API for building interactive terminal interfaces with layout primitives, input handling, and styling. ## What OpenTUI Does - Renders rich terminal UIs with box layouts, borders, and color theming - Supports reactive state updates that efficiently redraw only changed regions - Provides built-in input components like text fields, selects, and checkboxes - Handles terminal resize events and responsive layouts automatically - Works across major terminal emulators on Linux, macOS, and Windows ## Architecture Overview OpenTUI uses a virtual terminal buffer that diffs between render cycles, emitting only the ANSI escape sequences needed to update changed cells. Components declare their layout requirements, and a flexbox-inspired engine computes positions before the renderer flushes to stdout. ## Setup & Configuration - Install via npm or your preferred Node.js package manager - Import components and call render() with your root element - Configure terminal mode (raw vs alternate screen) via options - Use themes to define consistent color palettes across components - Integrate with existing CLI tools by mounting OpenTUI on specific commands ## Key Features - JSX-like syntax for composing terminal UI components - Built-in focus management and keyboard navigation system - Scrollable containers for content that exceeds terminal height - Animation primitives for spinners, progress bars, and transitions - TypeScript types for all props with IDE autocompletion ## Comparison with Similar Tools - **Ink** — React-based TUI for Node.js; OpenTUI offers a lighter runtime without React dependency - **Bubble Tea** — Go TUI framework with Elm architecture; OpenTUI targets the TypeScript ecosystem - **Blessed** — older Node.js TUI library; OpenTUI provides modern TypeScript APIs and better performance - **Textual** — Python rich TUI framework; OpenTUI serves JavaScript/TypeScript developers - **Ratatui** — Rust TUI library; OpenTUI trades raw performance for developer ergonomics in TS ## FAQ **Q: Does OpenTUI work with Bun and Deno?** A: It primarily targets Node.js but works with Bun; Deno support depends on terminal API compatibility. **Q: Can I use OpenTUI alongside other CLI frameworks like Commander or Yargs?** A: Yes. OpenTUI handles rendering while CLI argument parsing remains with your framework of choice. **Q: How does it handle terminal capabilities detection?** A: OpenTUI detects color support and unicode capabilities at startup, falling back gracefully for limited terminals. **Q: Is there a way to test OpenTUI components?** A: The library provides a headless render mode that returns string output for snapshot testing. ## Sources - https://github.com/anomalyco/opentui - https://opentui.dev --- Source: https://tokrepo.com/en/workflows/asset-f956745c Author: Script Depot