georg-unterholzner

ink

Build CLI applications using React. Use when creating terminal UIs, handling keyboard input, or building interactive command-line tools with React components. Supports flexbox layouts, text styling, focus management, and accessibility.

georg-unterholzner 2 Updated 4mo ago

Resources

1
GitHub

Install

npx skillscat add georg-unterholzner/ink-skill/ink

Install via the SkillsCat registry.

SKILL.md

Ink - React for CLIs

React for CLIs. Build and test your CLI output using components.

Ink provides the same component-based UI building experience that React offers in the browser, but for command-line apps. It uses Yoga for Flexbox layouts in the terminal.

Important: All text must be wrapped in a `<Text>` component.

Quick Example

import {render, Text, Box} from 'ink';

render(
	<Box borderStyle="round" padding={1}>
		<Text color="green">Hello World</Text>
	</Box>
);

Components

  • `<Text>` - Display text with styling (color, bold, italic, underline, etc.)
  • `<Box>` - Flexbox container for layouts
  • `<Newline>` - Insert newline characters
  • `<Spacer>` - Flexible space that expands to fill available space
  • `<Static>` - Permanently render output above everything else (for logs, completed tasks)
  • `<Transform>` - Transform string representation before output

Hooks

Interaction

Lifecycle & Streams

Accessibility

API

Guides

Third-Party Components

See references/third-party.md for a comprehensive list of community components including:

  • Text inputs, spinners, select menus
  • Progress bars, tables, charts
  • Markdown rendering, syntax highlighting
  • And many more