terminal-ui

Develop TypeScript terminal user interfaces with Ink and Clack.

193|17|Updated Jan 16, 2026
One-click install
npx skills add https://github.com/pproenca/dot-skills --skill terminal-ui-pproenca
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: terminal-ui
Source: https://github.com/pproenca/dot-skills/tree/main/skills/.curated/terminal-ui
Command: npx skills add https://github.com/pproenca/dot-skills --skill terminal-ui-pproenca

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve?

This Skill provides best practices for building high-performance, user-friendly Terminal User Interfaces (TUIs) in TypeScript, preventing common issues like flicker, lag, and confusing interactions.

Core Features & Use Cases

  • Performance Optimization: Rules for efficient rendering, input handling, and state management to ensure smooth, responsive TUIs.
  • UX Best Practices: Guidelines for clear prompts, actionable error messages, and intuitive navigation.
  • Robustness: Strategies for graceful degradation and proper terminal state management.
  • Use Case: When developing a complex CLI tool with interactive prompts and dynamic output, use these guidelines to ensure a professional and bug-free user experience.

Quick Start

Apply the terminal-ui skill to refactor the Ink component to use useInput for keyboard handling.

Frequently Asked Questions about terminal-ui

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

FAQPage Schema
How do I build interactive terminal user interfaces in TypeScript?

Build interactive terminal user interfaces in TypeScript using Ink and Clack to render components, manage state, and handle inputs. These frameworks provide the foundation for creating dynamic CLI tools with structured UX patterns.

Why does my CLI tool flicker or lag when rendering dynamic output?

CLI tools flicker or lag due to inefficient rendering and poor state management. Optimize terminal UI performance by following strict rules for component rendering and input handling to ensure smooth, responsive interactions.

What's the best way to handle keyboard input in an Ink component?

The best way to handle keyboard input in an Ink component is using the useInput hook. This method captures user interactions directly and integrates them cleanly into your state management workflow.

Does this approach work for both complex CLI tools and simple prompts?

Yes, this approach works for both complex CLI tools and simple prompts. Clack handles straightforward interactive prompts, while Ink manages complex layouts, ensuring clarity and robustness across different terminal applications.

How do I ensure my CLI application degrades gracefully on terminal errors?

Ensure your CLI application degrades gracefully by implementing proper terminal state management and actionable error messages. These strategies prevent confusing interactions and maintain output stability during failures.