---
name: "@termcn"
slug: "termcn"
description: "A shadcn/ui-compatible registry of terminal-style UI components for React, built on Ink and OpenTUI for full terminal rendering. Components span charts and data (bar charts, line charts, gauges, heat maps), AI/chat (chat messages, tool approvals, streaming text, thinking blocks), and navigation (command palettes, tabs, menus, sidebars, pagination). Shares the same registry format and CLI as shadcn/ui. Theme-aware, zero-config, free and open source (MIT). Use for: building terminal UIs, CLI tools with rich visual output, or embedding terminal-aesthetic widgets inside web apps that need streaming AI output or chart visualizations."
category: "Niche/single-purpose"
tags: ["aesthetic", "ai", "auth", "backgrounds", "blocks", "cards", "charts", "crypto", "dashboard", "forms", "loaders", "maps", "media", "navigation", "overlays", "retro", "theming"]
framework: "react"
license: "MIT"
author: "Aniket-508"
website: "https://termcn.vercel.app"
github: "https://github.com/Aniket-508/termcn"
registry: "https://termcn.vercel.app/r/registry.json"
pro: false
pro_url: null
github_stars: 652
component_count: 250
generated_at: "2026-07-28T08:00:50.948Z"
---

# @termcn

A shadcn/ui-compatible registry of terminal-style UI components for React, built on Ink and OpenTUI for full terminal rendering. Components span charts and data (bar charts, line charts, gauges, heat maps), AI/chat (chat messages, tool approvals, streaming text, thinking blocks), and navigation (command palettes, tabs, menus, sidebars, pagination). Shares the same registry format and CLI as shadcn/ui. Theme-aware, zero-config, free and open source (MIT). Use for: building terminal UIs, CLI tools with rich visual output, or embedding terminal-aesthetic widgets inside web apps that need streaming AI output or chart visualizations.

## Links

- Website: https://termcn.vercel.app
- GitHub: https://github.com/Aniket-508/termcn
- Registry JSON: https://termcn.vercel.app/r/registry.json
- Directory page: https://sh4dcn.vercel.app/registry/termcn
- This file: https://sh4dcn.vercel.app/md/termcn.md

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://termcn.vercel.app/r/registry.json
pnpm dlx shadcn@latest add https://termcn.vercel.app/r/registry.json
bunx shadcn@latest add https://termcn.vercel.app/r/registry.json
# clone the source repo
git clone https://github.com/Aniket-508/termcn.git
# fetch the raw registry index
curl -s https://termcn.vercel.app/r/registry.json
```

## Components (250)

| name | type | description | install |
| --- | --- | --- | --- |
| ink/types | registry:file | Shared terminal theme and provider types. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/types.json` |
| ink/alert | registry:ui | Alert box with success/error/warning/info variants | `npx shadcn@latest add https://termcn.vercel.app/r/ink/alert.json` |
| ink/app-shell | registry:ui | Full-screen TUI layout with header, tip bar, full-width input, scrollable content, and hints footer | `npx shadcn@latest add https://termcn.vercel.app/r/ink/app-shell.json` |
| ink/aspect-ratio | registry:ui | Constrains children to a given aspect ratio | `npx shadcn@latest add https://termcn.vercel.app/r/ink/aspect-ratio.json` |
| ink/badge | registry:ui | Semantic status indicator badge (success/error/warning/info) | `npx shadcn@latest add https://termcn.vercel.app/r/ink/badge.json` |
| ink/banner | registry:ui | Full-width announcement banner | `npx shadcn@latest add https://termcn.vercel.app/r/ink/banner.json` |
| ink/bar-chart | registry:ui | Horizontal and vertical bar chart with labels | `npx shadcn@latest add https://termcn.vercel.app/r/ink/bar-chart.json` |
| ink/big-text | registry:ui | Figlet-style large ASCII art text | `npx shadcn@latest add https://termcn.vercel.app/r/ink/big-text.json` |
| ink/box | registry:ui | Enhanced flexbox container with theme-aware borders | `npx shadcn@latest add https://termcn.vercel.app/r/ink/box.json` |
| ink/breadcrumb | registry:ui | Breadcrumb navigation trail | `npx shadcn@latest add https://termcn.vercel.app/r/ink/breadcrumb.json` |
| ink/bullet-list | registry:ui | Nested structured content with ●/└/□ bullet prefixes | `npx shadcn@latest add https://termcn.vercel.app/r/ink/bullet-list.json` |
| ink/card | registry:ui | Card with header, body, and footer slots | `npx shadcn@latest add https://termcn.vercel.app/r/ink/card.json` |
| ink/center | registry:ui | Centers children horizontally and vertically | `npx shadcn@latest add https://termcn.vercel.app/r/ink/center.json` |
| ink/chat-message | registry:ui | Chat message bubble with role label, streaming indicator, and collapsible content | `npx shadcn@latest add https://termcn.vercel.app/r/ink/chat-message.json` |
| ink/chat-thread | registry:ui | Scrollable container for stacking ChatMessage components in a conversation thread | `npx shadcn@latest add https://termcn.vercel.app/r/ink/chat-thread.json` |
| ink/checkbox | registry:ui | Checkbox with indeterminate state | `npx shadcn@latest add https://termcn.vercel.app/r/ink/checkbox.json` |
| ink/checkbox-group | registry:ui | Checkbox group with min/max selection | `npx shadcn@latest add https://termcn.vercel.app/r/ink/checkbox-group.json` |
| ink/clipboard | registry:ui | Copy-to-clipboard button with success feedback | `npx shadcn@latest add https://termcn.vercel.app/r/ink/clipboard.json` |
| ink/clock | registry:ui | Real-time clock display with 12h/24h and date | `npx shadcn@latest add https://termcn.vercel.app/r/ink/clock.json` |
| ink/code | registry:ui | Syntax-highlighted code block (50+ languages) | `npx shadcn@latest add https://termcn.vercel.app/r/ink/code.json` |
| ink/color-picker | registry:ui | Color picker with palette, hex, and RGB input | `npx shadcn@latest add https://termcn.vercel.app/r/ink/color-picker.json` |
| ink/columns | registry:ui | Multi-column layout with configurable widths | `npx shadcn@latest add https://termcn.vercel.app/r/ink/columns.json` |
| ink/command-palette | registry:ui | VS Code–style command palette with fuzzy search | `npx shadcn@latest add https://termcn.vercel.app/r/ink/command-palette.json` |
| ink/confirm | registry:ui | Yes/No confirmation prompt | `npx shadcn@latest add https://termcn.vercel.app/r/ink/confirm.json` |
| ink/conversation-history | registry:ui | Arrow-key scrollable stack for long assistant threads with optional hint | `npx shadcn@latest add https://termcn.vercel.app/r/ink/conversation-history.json` |
| ink/data-grid | registry:ui | Advanced data grid with sorting, filtering, pagination, and cell editing | `npx shadcn@latest add https://termcn.vercel.app/r/ink/data-grid.json` |
| ink/date-picker | registry:ui | Calendar date picker with keyboard navigation | `npx shadcn@latest add https://termcn.vercel.app/r/ink/date-picker.json` |
| ink/definition | registry:ui | Term–description definition list | `npx shadcn@latest add https://termcn.vercel.app/r/ink/definition.json` |
| ink/dialog | registry:ui | Confirmation dialog with OK/Cancel actions | `npx shadcn@latest add https://termcn.vercel.app/r/ink/dialog.json` |
| ink/diff-view | registry:ui | Unified, split, and inline diff viewer with LCS-based diff algorithm and line numbers | `npx shadcn@latest add https://termcn.vercel.app/r/ink/diff-view.json` |
| ink/digits | registry:ui | Box-drawing character numerals | `npx shadcn@latest add https://termcn.vercel.app/r/ink/digits.json` |
| ink/directory-tree | registry:ui | Filesystem browser with expand/collapse | `npx shadcn@latest add https://termcn.vercel.app/r/ink/directory-tree.json` |
| ink/dither-area-chart | registry:ui | Dithered area charts with layered fills, dots, axes, stacking, bloom, and keyboard interaction | `npx shadcn@latest add https://termcn.vercel.app/r/ink/dither-area-chart.json` |
| ink/dither-bar-chart | registry:ui | Dithered grouped, stacked, and percent bar charts with terminal-native textures and interaction | `npx shadcn@latest add https://termcn.vercel.app/r/ink/dither-bar-chart.json` |
| ink/dither-line-chart | registry:ui | Dithered multi-series line charts with solid or dashed strokes, markers, axes, and terminal interaction | `npx shadcn@latest add https://termcn.vercel.app/r/ink/dither-line-chart.json` |
| ink/dither-pie-chart | registry:ui | Dithered pie and donut charts with textured slices, legends, tooltips, and keyboard inspection | `npx shadcn@latest add https://termcn.vercel.app/r/ink/dither-pie-chart.json` |
| ink/dither-radar-chart | registry:ui | Dithered radar charts for comparing multiple series across terminal-friendly radial axes | `npx shadcn@latest add https://termcn.vercel.app/r/ink/dither-radar-chart.json` |
| ink/dither-sparkline | registry:ui | Compact dithered sparklines for terminal dashboards, summaries, and inline metrics | `npx shadcn@latest add https://termcn.vercel.app/r/ink/dither-sparkline.json` |
| ink/divider | registry:ui | Horizontal or vertical divider / rule | `npx shadcn@latest add https://termcn.vercel.app/r/ink/divider.json` |
| ink/drawer | registry:ui | Slide-in panel from any edge | `npx shadcn@latest add https://termcn.vercel.app/r/ink/drawer.json` |
| ink/email-input | registry:ui | Email input with validation and domain suggestions | `npx shadcn@latest add https://termcn.vercel.app/r/ink/email-input.json` |
| ink/embedded-terminal | registry:ui | Embedded PTY terminal panel (requires node-pty peer) | `npx shadcn@latest add https://termcn.vercel.app/r/ink/embedded-terminal.json` |
| ink/error-boundary | registry:ui | React error boundary with graceful terminal display | `npx shadcn@latest add https://termcn.vercel.app/r/ink/error-boundary.json` |
| ink/error-retry | registry:ui | Inline error panel with retry, dismiss, and max-retry guard | `npx shadcn@latest add https://termcn.vercel.app/r/ink/error-retry.json` |
| ink/file-change | registry:ui | Interactive file-change review list with diff expansion, per-file accept/reject actions, and accept-all shortcut | `npx shadcn@latest add https://termcn.vercel.app/r/ink/file-change.json` |
| ink/file-picker | registry:ui | Interactive file browser and picker | `npx shadcn@latest add https://termcn.vercel.app/r/ink/file-picker.json` |
| ink/form | registry:ui | Form container with validation, Ctrl+S submit, and dirty tracking | `npx shadcn@latest add https://termcn.vercel.app/r/ink/form.json` |
| ink/form-field | registry:ui | Form field wrapper with label, hint, and error | `npx shadcn@latest add https://termcn.vercel.app/r/ink/form-field.json` |
| ink/gauge | registry:ui | Arc/speedometer gauge meter | `npx shadcn@latest add https://termcn.vercel.app/r/ink/gauge.json` |
| ink/git-status | registry:ui | Git status display (branch, staged, modified, ahead/behind) | `npx shadcn@latest add https://termcn.vercel.app/r/ink/git-status.json` |
| ink/gradient | registry:ui | Color gradient text | `npx shadcn@latest add https://termcn.vercel.app/r/ink/gradient.json` |
| ink/grid | registry:ui | Rows × columns grid layout | `npx shadcn@latest add https://termcn.vercel.app/r/ink/grid.json` |
| ink/heading | registry:ui | h1–h4 styled headings with optional figlet ASCII art | `npx shadcn@latest add https://termcn.vercel.app/r/ink/heading.json` |
| ink/heat-map | registry:ui | Grid heatmap with color intensity scale | `npx shadcn@latest add https://termcn.vercel.app/r/ink/heat-map.json` |
| ink/help | registry:ui | Auto-generated help panel from a keymap | `npx shadcn@latest add https://termcn.vercel.app/r/ink/help.json` |
| ink/help-screen | registry:ui | Figlet banner + tagline + aligned Options/Commands help sections | `npx shadcn@latest add https://termcn.vercel.app/r/ink/help-screen.json` |
| ink/image | registry:ui | Image renderer with iTerm2/Kitty protocol and ASCII fallback | `npx shadcn@latest add https://termcn.vercel.app/r/ink/image.json` |
| ink/info-box | registry:ui | Bordered info panel with header, key-value rows, and tree-prefix rows | `npx shadcn@latest add https://termcn.vercel.app/r/ink/info-box.json` |
| ink/json | registry:ui | Pretty-printed JSON with collapsible nodes | `npx shadcn@latest add https://termcn.vercel.app/r/ink/json.json` |
| ink/key-value | registry:ui | Aligned key–value pairs | `npx shadcn@latest add https://termcn.vercel.app/r/ink/key-value.json` |
| ink/keyboard-shortcuts | registry:ui | Formatted keyboard shortcut reference table | `npx shadcn@latest add https://termcn.vercel.app/r/ink/keyboard-shortcuts.json` |
| ink/line-chart | registry:ui | ASCII line chart with axes and multi-series support | `npx shadcn@latest add https://termcn.vercel.app/r/ink/line-chart.json` |
| ink/link | registry:ui | OSC 8 clickable hyperlink | `npx shadcn@latest add https://termcn.vercel.app/r/ink/link.json` |
| ink/list | registry:ui | Navigable list with optional filtering | `npx shadcn@latest add https://termcn.vercel.app/r/ink/list.json` |
| ink/log | registry:ui | Scrolling log viewer with severity levels and filtering | `npx shadcn@latest add https://termcn.vercel.app/r/ink/log.json` |
| ink/login-flow | registry:ui | Full-page onboarding/login screen with announcement banner, big ASCII title, description, and numbered select | `npx shadcn@latest add https://termcn.vercel.app/r/ink/login-flow.json` |
| ink/markdown | registry:ui | Full markdown renderer for terminal | `npx shadcn@latest add https://termcn.vercel.app/r/ink/markdown.json` |
| ink/masked-input | registry:ui | Masked input for phone, date, credit card formats | `npx shadcn@latest add https://termcn.vercel.app/r/ink/masked-input.json` |
| ink/menu | registry:ui | Dropdown menu with nested submenus | `npx shadcn@latest add https://termcn.vercel.app/r/ink/menu.json` |
| ink/modal | registry:ui | Focus-trapped overlay modal, close with Esc | `npx shadcn@latest add https://termcn.vercel.app/r/ink/modal.json` |
| ink/model-selector | registry:ui | Keyboard-navigable list for selecting an AI model, with optional provider grouping and context-window display | `npx shadcn@latest add https://termcn.vercel.app/r/ink/model-selector.json` |
| ink/multi-progress | registry:ui | Parallel progress display for package managers, build pipelines, and deploy tools | `npx shadcn@latest add https://termcn.vercel.app/r/ink/multi-progress.json` |
| ink/multi-select | registry:ui | Multi-select list with checkboxes and select-all | `npx shadcn@latest add https://termcn.vercel.app/r/ink/multi-select.json` |
| ink/notification-center | registry:block | Persistent queue-based notification panel with useNotifications hook | `npx shadcn@latest add https://termcn.vercel.app/r/ink/notification-center.json` |
| ink/number-input | registry:ui | Numeric input with increment/decrement and bounds | `npx shadcn@latest add https://termcn.vercel.app/r/ink/number-input.json` |
| opentui/types | registry:file | Shared terminal theme and provider types. | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/types.json` |
| opentui/alert | registry:ui | Alert box with success/error/warning/info variants | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/alert.json` |
| opentui/app-shell | registry:ui | Full-screen TUI layout with header, tip bar, full-width input, scrollable content, and hints footer | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/app-shell.json` |
| opentui/aspect-ratio | registry:ui | Constrains children to a given aspect ratio | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/aspect-ratio.json` |
| opentui/badge | registry:ui | Semantic status indicator badge (success/error/warning/info) | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/badge.json` |
| opentui/banner | registry:ui | Full-width announcement banner | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/banner.json` |
| opentui/bar-chart | registry:ui | Horizontal and vertical bar chart with labels | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/bar-chart.json` |
| opentui/big-text | registry:ui | Figlet-style large ASCII art text | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/big-text.json` |
| opentui/box | registry:ui | Enhanced flexbox container with theme-aware borders | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/box.json` |
| opentui/breadcrumb | registry:ui | Breadcrumb navigation trail | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/breadcrumb.json` |
| opentui/bullet-list | registry:ui | Nested structured content with ●/└/□ bullet prefixes | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/bullet-list.json` |
| opentui/card | registry:ui | Card with header, body, and footer slots | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/card.json` |
| opentui/center | registry:ui | Centers children horizontally and vertically | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/center.json` |
| opentui/chat-message | registry:ui | Chat message bubble with role label, streaming indicator, and collapsible content | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/chat-message.json` |
| opentui/chat-thread | registry:ui | Scrollable container for stacking ChatMessage components in a conversation thread | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/chat-thread.json` |
| opentui/checkbox | registry:ui | Checkbox with indeterminate state | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/checkbox.json` |
| opentui/checkbox-group | registry:ui | Checkbox group with min/max selection | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/checkbox-group.json` |
| opentui/clipboard | registry:ui | Copy-to-clipboard button with success feedback | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/clipboard.json` |
| opentui/clock | registry:ui | Real-time clock display with 12h/24h and date | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/clock.json` |
| opentui/code | registry:ui | Syntax-highlighted code block (50+ languages) | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/code.json` |
| opentui/color-picker | registry:ui | Color picker with palette, hex, and RGB input | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/color-picker.json` |
| opentui/columns | registry:ui | Multi-column layout with configurable widths | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/columns.json` |
| opentui/command-palette | registry:ui | VS Code–style command palette with fuzzy search | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/command-palette.json` |
| opentui/confirm | registry:ui | Yes/No confirmation prompt | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/confirm.json` |
| opentui/data-grid | registry:ui | Advanced data grid with sorting, filtering, pagination, and cell editing | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/data-grid.json` |
| opentui/date-picker | registry:ui | Calendar date picker with keyboard navigation | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/date-picker.json` |
| opentui/definition | registry:ui | Term–description definition list | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/definition.json` |
| opentui/dialog | registry:ui | Confirmation dialog with OK/Cancel actions | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/dialog.json` |
| opentui/diff-view | registry:ui | Unified, split, and inline diff viewer with LCS-based diff algorithm and line numbers | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/diff-view.json` |
| opentui/digits | registry:ui | Box-drawing character numerals | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/digits.json` |
| opentui/directory-tree | registry:ui | Filesystem browser with expand/collapse | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/directory-tree.json` |
| opentui/dither-area-chart | registry:ui | Dithered area charts with layered fills, dots, axes, stacking, bloom, and keyboard interaction | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/dither-area-chart.json` |
| opentui/dither-bar-chart | registry:ui | Dithered grouped, stacked, and percent bar charts with terminal-native textures and interaction | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/dither-bar-chart.json` |
| opentui/dither-line-chart | registry:ui | Dithered multi-series line charts with solid or dashed strokes, markers, axes, and terminal interaction | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/dither-line-chart.json` |
| opentui/dither-pie-chart | registry:ui | Dithered pie and donut charts with textured slices, legends, tooltips, and keyboard inspection | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/dither-pie-chart.json` |
| opentui/dither-radar-chart | registry:ui | Dithered radar charts for comparing multiple series across terminal-friendly radial axes | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/dither-radar-chart.json` |
| opentui/dither-sparkline | registry:ui | Compact dithered sparklines for terminal dashboards, summaries, and inline metrics | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/dither-sparkline.json` |
| opentui/divider | registry:ui | Horizontal or vertical divider / rule | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/divider.json` |
| opentui/drawer | registry:ui | Slide-in panel from any edge | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/drawer.json` |
| opentui/email-input | registry:ui | Email input with validation and domain suggestions | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/email-input.json` |
| opentui/embedded-terminal | registry:ui | Embedded PTY terminal panel (requires node-pty peer) | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/embedded-terminal.json` |
| opentui/error-boundary | registry:ui | React error boundary with graceful terminal display | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/error-boundary.json` |
| opentui/file-change | registry:ui | Interactive file-change review list with diff expansion, per-file accept/reject actions, and accept-all shortcut | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/file-change.json` |
| opentui/file-picker | registry:ui | Interactive file browser and picker | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/file-picker.json` |
| opentui/form | registry:ui | Form container with validation, Ctrl+S submit, and dirty tracking | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/form.json` |
| opentui/form-field | registry:ui | Form field wrapper with label, hint, and error | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/form-field.json` |
| opentui/gauge | registry:ui | Arc/speedometer gauge meter | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/gauge.json` |
| opentui/git-status | registry:ui | Git status display (branch, staged, modified, ahead/behind) | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/git-status.json` |
| opentui/gradient | registry:ui | Color gradient text | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/gradient.json` |
| opentui/grid | registry:ui | Rows × columns grid layout | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/grid.json` |
| opentui/heading | registry:ui | h1–h4 styled headings with optional figlet ASCII art | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/heading.json` |
| opentui/heat-map | registry:ui | Grid heatmap with color intensity scale | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/heat-map.json` |
| opentui/help | registry:ui | Auto-generated help panel from a keymap | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/help.json` |
| opentui/help-screen | registry:ui | Figlet banner + tagline + aligned Options/Commands help sections | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/help-screen.json` |
| opentui/image | registry:ui | Image renderer with iTerm2/Kitty protocol and ASCII fallback | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/image.json` |
| opentui/info-box | registry:ui | Bordered info panel with header, key-value rows, and tree-prefix rows | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/info-box.json` |
| opentui/json | registry:ui | Pretty-printed JSON with collapsible nodes | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/json.json` |
| opentui/key-value | registry:ui | Aligned key–value pairs | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/key-value.json` |
| opentui/keyboard-shortcuts | registry:ui | Formatted keyboard shortcut reference table | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/keyboard-shortcuts.json` |
| opentui/line-chart | registry:ui | ASCII line chart with axes and multi-series support | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/line-chart.json` |
| opentui/link | registry:ui | OSC 8 clickable hyperlink | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/link.json` |
| opentui/list | registry:ui | Navigable list with optional filtering | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/list.json` |
| opentui/log | registry:ui | Scrolling log viewer with severity levels and filtering | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/log.json` |
| opentui/login-flow | registry:ui | Full-page onboarding/login screen with announcement banner, big ASCII title, description, and numbered select | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/login-flow.json` |
| opentui/markdown | registry:ui | Full markdown renderer for terminal | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/markdown.json` |
| opentui/masked-input | registry:ui | Masked input for phone, date, credit card formats | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/masked-input.json` |
| opentui/menu | registry:ui | Dropdown menu with nested submenus | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/menu.json` |
| opentui/modal | registry:ui | Focus-trapped overlay modal, close with Esc | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/modal.json` |
| opentui/model-selector | registry:ui | Keyboard-navigable list for selecting an AI model, with optional provider grouping and context-window display | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/model-selector.json` |
| opentui/multi-progress | registry:ui | Parallel progress display for package managers, build pipelines, and deploy tools | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/multi-progress.json` |
| opentui/multi-select | registry:ui | Multi-select list with checkboxes and select-all | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/multi-select.json` |
| opentui/notification-badge | registry:ui | Notification Badge component for OpenTUI React. | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/notification-badge.json` |
| opentui/notification-center | registry:block | Persistent queue-based notification panel with useNotifications hook | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/notification-center.json` |
| opentui/number-input | registry:ui | Numeric input with increment/decrement and bounds | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/number-input.json` |
| opentui/pagination | registry:ui | Page navigation with prev/next and jump | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/pagination.json` |
| opentui/panel | registry:ui | Titled bordered panel | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/panel.json` |
| opentui/password-input | registry:ui | Password input with masked characters and reveal toggle | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/password-input.json` |
| opentui/path-input | registry:ui | Filesystem path input with tab autocomplete | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/path-input.json` |
| opentui/pie-chart | registry:ui | Unicode block pie chart with legend | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/pie-chart.json` |
| opentui/popover | registry:ui | Positioned popover with arbitrary content | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/popover.json` |
| opentui/progress-bar | registry:ui | Determinate progress bar with percent and value/total display | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/progress-bar.json` |
| opentui/progress-circle | registry:ui | Circular progress indicator using Unicode braille | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/progress-circle.json` |
| opentui/qr-code | registry:ui | Unicode block QR code generator | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/qr-code.json` |
| opentui/radio-group | registry:ui | Mutually exclusive radio button group | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/radio-group.json` |
| opentui/scroll-view | registry:ui | Scrollable container with scrollbar | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/scroll-view.json` |
| opentui/search-input | registry:ui | Fuzzy search input with autocomplete | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/search-input.json` |
| opentui/select | registry:ui | Single-select dropdown with arrow-key navigation | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/select.json` |
| opentui/setup-flow | registry:ui | @clack-style step flow with ◇/◆/│ visual language, badge, info steps, and multi-select | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/setup-flow.json` |
| opentui/sidebar | registry:ui | Collapsible navigation sidebar panel | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/sidebar.json` |
| opentui/skeleton | registry:ui | Shimmer loading placeholder | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/skeleton.json` |
| opentui/spacer | registry:ui | Flexible space between flex children | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/spacer.json` |
| opentui/sparkline | registry:ui | Inline Unicode braille sparkline chart | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/sparkline.json` |
| opentui/spinner | registry:ui | Animated spinner with 12+ styles | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/spinner.json` |
| opentui/splash-screen | registry:ui | Styled startup banner with big ASCII art title, subtitle, author credit, and status line | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/splash-screen.json` |
| opentui/stack | registry:ui | Vertical/horizontal stack with gap | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/stack.json` |
| opentui/status-message | registry:ui | Inline status message with icon and color | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/status-message.json` |
| opentui/stopwatch | registry:ui | Count-up stopwatch with laps and reset | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/stopwatch.json` |
| opentui/streaming-text | registry:ui | Token-by-token streaming text with blinking cursor and optional typing animation | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/streaming-text.json` |
| opentui/tabbed-content | registry:ui | Tab bar wired to content panels | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/tabbed-content.json` |
| opentui/table | registry:ui | Sortable, selectable, paginated data table | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/table.json` |
| opentui/tabs | registry:ui | Tab bar with left/right arrow and tab-key navigation | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/tabs.json` |
| opentui/tag | registry:ui | Removable chip/tag | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/tag.json` |
| opentui/tag-input | registry:ui | Add and remove tags inline | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/tag-input.json` |
| opentui/text-area | registry:ui | Multi-line text editor with word wrap | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/text-area.json` |
| opentui/text-input | registry:ui | Single-line text input with placeholder, validation, mask | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/text-input.json` |
| opentui/theme-provider | registry:ui | Terminal theme provider, design tokens, and theme helpers. | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/theme-provider.json` |
| opentui/thinking-block | registry:ui | Collapsible block for displaying extended thinking / reasoning content from an AI model | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/thinking-block.json` |
| opentui/time-picker | registry:ui | Time picker with hour/minute/second spinners | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/time-picker.json` |
| opentui/timer | registry:ui | Countdown timer with pause/resume and auto-start | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/timer.json` |
| opentui/toast | registry:ui | Auto-dismissing toast notification | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/toast.json` |
| opentui/toggle | registry:ui | Toggle/switch component with on/off labels | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/toggle.json` |
| opentui/token-usage | registry:ui | Compact token counter showing prompt and completion usage with optional cost estimate; also exports ContextMeter for visualising context window fill | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/token-usage.json` |
| opentui/tool-approval | registry:ui | Interactive approval prompt for AI tool calls with risk-level badge, args display, and auto-deny timeout | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/tool-approval.json` |
| opentui/tool-call | registry:ui | Displays an AI tool invocation with status indicator, args, result, and elapsed time | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/tool-call.json` |
| opentui/tooltip | registry:ui | Contextual tooltip on focus or hover | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/tooltip.json` |
| opentui/tree | registry:ui | Expandable/collapsible tree view | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/tree.json` |
| opentui/tree-select | registry:ui | Hierarchical tree selection | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/tree-select.json` |
| opentui/usage-monitor | registry:ui | Real-time dashboard with diamond header, progress metrics, burn rate, predictions, and status bar | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/usage-monitor.json` |
| opentui/virtual-list | registry:ui | Virtualized list for 10k+ items | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/virtual-list.json` |
| opentui/welcome-screen | registry:ui | Two-panel welcome dashboard with titled border, logo, greeting, and sections | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/welcome-screen.json` |
| opentui/wizard | registry:ui | Multi-step wizard with per-step validation | `npx shadcn@latest add https://termcn.vercel.app/r/opentui/wizard.json` |
| ink/pagination | registry:ui | Page navigation with prev/next and jump | `npx shadcn@latest add https://termcn.vercel.app/r/ink/pagination.json` |
| ink/panel | registry:ui | Titled bordered panel | `npx shadcn@latest add https://termcn.vercel.app/r/ink/panel.json` |
| ink/password-input | registry:ui | Password input with masked characters and reveal toggle | `npx shadcn@latest add https://termcn.vercel.app/r/ink/password-input.json` |
| ink/path-input | registry:ui | Filesystem path input with tab autocomplete | `npx shadcn@latest add https://termcn.vercel.app/r/ink/path-input.json` |
| ink/pie-chart | registry:ui | Unicode block pie chart with legend | `npx shadcn@latest add https://termcn.vercel.app/r/ink/pie-chart.json` |
| ink/popover | registry:ui | Positioned popover with arbitrary content | `npx shadcn@latest add https://termcn.vercel.app/r/ink/popover.json` |
| ink/progress-bar | registry:ui | Determinate progress bar with percent and value/total display | `npx shadcn@latest add https://termcn.vercel.app/r/ink/progress-bar.json` |
| ink/progress-circle | registry:ui | Circular progress indicator using Unicode braille | `npx shadcn@latest add https://termcn.vercel.app/r/ink/progress-circle.json` |
| ink/qr-code | registry:ui | Unicode block QR code generator | `npx shadcn@latest add https://termcn.vercel.app/r/ink/qr-code.json` |
| ink/radio-group | registry:ui | Mutually exclusive radio button group | `npx shadcn@latest add https://termcn.vercel.app/r/ink/radio-group.json` |
| ink/scroll-view | registry:ui | Scrollable container with scrollbar | `npx shadcn@latest add https://termcn.vercel.app/r/ink/scroll-view.json` |
| ink/search-input | registry:ui | Fuzzy search input with autocomplete | `npx shadcn@latest add https://termcn.vercel.app/r/ink/search-input.json` |
| ink/select | registry:ui | Single-select dropdown with arrow-key navigation | `npx shadcn@latest add https://termcn.vercel.app/r/ink/select.json` |
| ink/setup-flow | registry:ui | @clack-style step flow with ◇/◆/│ visual language, badge, info steps, and multi-select | `npx shadcn@latest add https://termcn.vercel.app/r/ink/setup-flow.json` |
| ink/sidebar | registry:ui | Collapsible navigation sidebar panel | `npx shadcn@latest add https://termcn.vercel.app/r/ink/sidebar.json` |
| ink/skeleton | registry:ui | Shimmer loading placeholder | `npx shadcn@latest add https://termcn.vercel.app/r/ink/skeleton.json` |
| ink/spacer | registry:ui | Flexible space between flex children | `npx shadcn@latest add https://termcn.vercel.app/r/ink/spacer.json` |
| ink/sparkline | registry:ui | Inline Unicode braille sparkline chart | `npx shadcn@latest add https://termcn.vercel.app/r/ink/sparkline.json` |
| ink/spinner | registry:ui | Animated spinner with 12+ styles | `npx shadcn@latest add https://termcn.vercel.app/r/ink/spinner.json` |
| ink/splash-screen | registry:ui | Styled startup banner with big ASCII art title, subtitle, author credit, and status line | `npx shadcn@latest add https://termcn.vercel.app/r/ink/splash-screen.json` |
| ink/stack | registry:ui | Vertical/horizontal stack with gap | `npx shadcn@latest add https://termcn.vercel.app/r/ink/stack.json` |
| ink/status-message | registry:ui | Inline status message with icon and color | `npx shadcn@latest add https://termcn.vercel.app/r/ink/status-message.json` |
| ink/stopwatch | registry:ui | Count-up stopwatch with laps and reset | `npx shadcn@latest add https://termcn.vercel.app/r/ink/stopwatch.json` |
| ink/streaming-text | registry:ui | Token-by-token streaming text with blinking cursor and optional typing animation | `npx shadcn@latest add https://termcn.vercel.app/r/ink/streaming-text.json` |
| ink/tabbed-content | registry:ui | Tab bar wired to content panels | `npx shadcn@latest add https://termcn.vercel.app/r/ink/tabbed-content.json` |
| ink/table | registry:ui | Sortable, selectable, paginated data table | `npx shadcn@latest add https://termcn.vercel.app/r/ink/table.json` |
| ink/tabs | registry:ui | Tab bar with left/right arrow and tab-key navigation | `npx shadcn@latest add https://termcn.vercel.app/r/ink/tabs.json` |
| ink/tag | registry:ui | Removable chip/tag | `npx shadcn@latest add https://termcn.vercel.app/r/ink/tag.json` |
| ink/tag-input | registry:ui | Add and remove tags inline | `npx shadcn@latest add https://termcn.vercel.app/r/ink/tag-input.json` |
| ink/text-area | registry:ui | Multi-line text editor with word wrap | `npx shadcn@latest add https://termcn.vercel.app/r/ink/text-area.json` |
| ink/text-input | registry:ui | Single-line text input with placeholder, validation, mask | `npx shadcn@latest add https://termcn.vercel.app/r/ink/text-input.json` |
| ink/theme-catppuccin | registry:file | A Catppuccin theme for rich terminal UI previews. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-catppuccin.json` |
| ink/theme-default | registry:file | The default termcn terminal theme. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-default.json` |
| ink/theme-dracula | registry:file | A purple-heavy Dracula theme for terminal UI components. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-dracula.json` |
| ink/theme-high-contrast | registry:file | High contrast themes for dark and light terminal backgrounds. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-high-contrast.json` |
| ink/theme-monokai | registry:file | A classic Monokai-inspired theme for terminal apps. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-monokai.json` |
| ink/theme-nord | registry:file | A cool Nord palette tuned for terminal contrast. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-nord.json` |
| ink/theme-one-dark | registry:file | A One Dark theme for terminal components. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-one-dark.json` |
| ink/theme-provider | registry:ui | Terminal theme provider, design tokens, and theme helpers. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-provider.json` |
| ink/theme-solarized | registry:file | A Solarized theme for terminal components. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-solarized.json` |
| ink/theme-tokyo-night | registry:file | Tokyo Night colors for terminal interfaces. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-tokyo-night.json` |
| ink/theme-amoled | registry:file | AMOLED - high contrast dark theme with pure black. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-amoled.json` |
| ink/theme-aura | registry:file | Aura - soft elegant theme with pastel purple. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-aura.json` |
| ink/theme-ayu | registry:file | Ayu - clean modern terminal theme. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-ayu.json` |
| ink/theme-carbonfox | registry:file | Carbonfox - minimal dark theme. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-carbonfox.json` |
| ink/theme-catppuccin-frappe | registry:file | Catppuccin Frappe - soothing pastel. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-catppuccin-frappe.json` |
| ink/theme-catppuccin-macchiato | registry:file | Catppuccin Macchiato - deeper pastel tones. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-catppuccin-macchiato.json` |
| ink/theme-cobalt2 | registry:file | Cobalt2 - vibrant blue and gold. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-cobalt2.json` |
| ink/theme-cursor | registry:file | Cursor IDE theme. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-cursor.json` |
| ink/theme-everforest | registry:file | Everforest - warm forest theme. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-everforest.json` |
| ink/theme-flexoki | registry:file | Flexoki - versatile theme. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-flexoki.json` |
| ink/theme-github | registry:file | GitHub official dark theme. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-github.json` |
| ink/theme-gruvbox | registry:file | Gruvbox - retro earth tones. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-gruvbox.json` |
| ink/theme-kanagawa | registry:file | Kanagawa - Japanese wave theme. | `npx shadcn@latest add https://termcn.vercel.app/r/ink/theme-kanagawa.json` |

## For AI agents

```text
You are adding components from @termcn to a shadcn-compatible project.
1. Read this file (https://sh4dcn.vercel.app/md/termcn.md) for the component list.
2. Fetch the machine-readable index: https://termcn.vercel.app/r/registry.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.vercel.app/json (library slug: termcn).
```
