Introduction
Copy-paste terminal UI components for React. Built on Ink, works with the shadcn CLI.
termcn provides beautifully designed, accessible, and customizable terminal UI components. Built on Ink and designed to work seamlessly with the shadcn CLI.
Philosophy
termcn follows the shadcn model for terminal UIs: copy-paste components you can own, with zero lock-in and sensible defaults that work immediately.
Terminal apps are often treated as afterthoughts — bolted together with ad-hoc formatting and inconsistent styling. termcn takes a different approach. It stays close to Ink's primitives, keeps the API familiar, and lets you drop down to raw Ink components whenever you need more control.
The goal is simple: make terminal UIs feel like the rest of your stack — composable, themeable, accessible, and easy to customize.
Why termcn?
Most Ink component setups are either too opinionated or too scattered. termcn is built for teams that want to ship quickly without giving up control:
- Own Your Code: Copy the components into your project and customize everything.
- Start Fast: Run one command and render your first terminal UI with production-ready defaults.
- Scale Safely: Build on top of Ink directly, then drop to raw APIs when needed.
Any Terminal Style
termcn works with any terminal that supports ANSI escape codes and Unicode. This means your components look great everywhere:
- iTerm2 — Full Unicode and true color support on macOS
- Kitty — GPU-accelerated with image protocol support
- Alacritty — Fast, cross-platform, GPU-accelerated
- Windows Terminal — Modern terminal for Windows
- Ghostty — Modern, GPU-accelerated terminal emulator
- And any other terminal with ANSI/Unicode support