Package Map

Choose the right @visulima/tui sub-package for your use case

Package Map

@visulima/tui is a single package with multiple entry points.

Use this page to decide which entry to import and where each API lives.

Quick Choice

If you want to…Use entry pointWhy
Build a React TUI with components and hooks@visulima/tui/reactIncludes the React renderer and Ink-compatible API
Paint terminal cells directly from a Uint32Array@visulima/tui/coreLowest-level runtime, direct control over render loop and buffer
Run or study the ink-fast fork and perf experiments@visulima/tui/inkStandalone Ink fork + benchmark harnesses

@visulima/tui/core

Framework-agnostic runtime backed by the Rust diff engine.

Primary APIs are exposed to TypeScript/JavaScript while rendering is handled by a native Rust diff engine.

Primary exports:

  • Renderer
  • TerminalGuard
  • terminalSize
  • Cell, StyleMasks
  • InputParser
  • RatatatApp
  • createInlineLoop
npm install @visulima/tui
import { Renderer, TerminalGuard, terminalSize } from "@visulima/tui/core";

@visulima/tui/react

React adapter and Ink-compatible component/hook surface.

Depends on @visulima/tui/core for terminal output and native diffing.

Primary exports:

  • render, renderInline, renderToString
  • components: Box, Text, Static, Transform, Spinner, ProgressBar, Newline, Spacer
  • hooks: useInput, useApp, useFocus, useFocusManager, usePaste, useMouse, useScrollable, useTextInput, and more
npm install @visulima/tui react
import { render, Box, Text, useInput } from "@visulima/tui/react";

@visulima/tui/ink

Research/experimental entry: the ink-fast fork.

Contains:

  • forked Ink implementation
  • benchmark suites
  • profiling harnesses
  • research notes and snapshots
import { render } from "@visulima/tui/ink";

Next Steps

Support

Contribute to our work and keep us going

Community is the heart of open source. The success of our packages wouldn't be possible without the incredible contributions of users, testers, and developers who collaborate with us every day.Want to get involved? Here are some tips on how you can make a meaningful impact on our open source projects.

Ready to help us out?

Be sure to check out the package's contribution guidelines first. They'll walk you through the process on how to properly submit an issue or pull request to our repositories.

Submit a pull request

Found something to improve? Fork the repo, make your changes, and open a PR. We review every contribution and provide feedback to help you get merged.

Good first issues

Simple issues suited for people new to open source development, and often a good place to start working on a package.
View good first issues