ink

Build interactive terminal UIs with React components and hooks.

1.1k|47|Updated Apr 3, 2026
One-click install
npx skills add https://github.com/shadcn-labs/termcn --skill ink-shadcn-labs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ink
Source: https://github.com/shadcn-labs/termcn/tree/main/.agents/skills/ink
Command: npx skills add https://github.com/shadcn-labs/termcn --skill ink-shadcn-labs

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Ink makes building interactive CLI UIs with React feasible by providing a component model and lifecycle that abstracts away raw terminal handling.

Core Features & Use Cases

  • Rich component suite: Text, Box, Newline, Spacer, Static, Transform for expressive terminal UIs.
  • Robust input and lifecycle: useInput, useApp, useFocus, useStdin, useStdout, useCursor, and accessibility hooks to build responsive apps.
  • Flexible layout and testing: Yoga-based Flexbox layout, incremental rendering, and testing references for maintainable CLI tools.

Quick Start

Install Ink and React, then render a simple Box with Text to start building a CLI UI.

Frequently Asked Questions about ink

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build interactive terminal UIs with React?

You can build interactive terminal UIs with React by using Ink, which provides a React-based component model that abstracts away raw terminal handling. It offers Yoga-based Flexbox layout, incremental rendering, and lifecycle hooks for responsive CLI applications.

What is the best way to create a CLI dashboard with live updates?

The best way to create a CLI dashboard with live updates is using Ink's React component suite, which includes Text, Box, Spacer, and Static components alongside Yoga-based Flexbox layout for expressive and maintainable terminal interfaces.

How do I handle user input in a terminal app?

You handle user input in a terminal app by using Ink's useInput, useFocus, useStdin, and useCursor hooks. These hooks provide robust input handling and lifecycle management to build responsive CLI tools.

Does Ink support testing for CLI applications?

Yes, Ink supports testing for CLI applications by providing testing references alongside its React component model. This ensures your terminal UIs built with components like Text, Box, and Transform remain maintainable.

Can I use Flexbox layout in the terminal?

Yes, you can use Flexbox layout in the terminal through Ink's Yoga-based layout engine. This allows you to arrange components like Box and Text using familiar Flexbox properties for expressive terminal UIs.

How do I build accessible CLI apps?

You build accessible CLI apps by leveraging Ink's accessibility hooks, such as useIsScreenReaderEnabled, alongside its standard component suite. This ensures terminal UIs are responsive to users relying on assistive technologies.