Design polished terminal UX for CLIs and TUIs. Use for setup flows, dashboards, tables, and actionable errors. NOT for web UIs, desktop windows, API schemas, or shell automation.
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Design polished terminal UX for CLIs and TUIs. Use for setup flows, dashboards, tables, and actionable errors. NOT for web UIs, desktop windows, API schemas, or shell automation.
license
Apache-2.0
allowed-tools
["Read","Write","Edit","Bash","Glob","Grep"]
metadata
{"category":"Developer Experience","tags":["cli","terminal","tui","design","ux","ansi","colors","unicode","progress-bars","interactive"],"provenance":{"kind":"first-party","owners":["port-daddy"]},"authorship":{"maintainers":["some-claude-skills"],"history":["Recovered from workgroup-ai (`some-claude-skills`) worktree agent-aa6fba4b on 2026-04-19; see CHANGELOG.md for the full recovery trail."]},"pairs-with":[{"skill":"beautiful-gui-design","reason":"The GUI counterpart — same hierarchy/color/motion/accessibility discipline applied to windows instead of terminals."},{"skill":"gpui-rust-console","reason":"This repo's own GPU-native operator console has to make the same TTY/width/color-fallback calls this skill teaches."},{"skill":"web-design-expert","reason":"Shared design principles still govern hierarchy, whitespace, and color choice in terminals."}],"io-contract":{"kind":"deliverable","consumes":["[Truncated]","[Truncated]"],"produces":["[Truncated]","[Truncated]"]}}
Beautiful CLI Design
Treat the terminal as a real interface surface: hierarchy, feedback, accessibility, and fallback modes all matter.
When to Use
Branded setup flows, login flows, and first-run wizards.
Rich command output with tables, spinners, status blocks, or markdown rendering.
Stateful terminal dashboards or TUIs that must feel intentional instead of bolted on.
Error and remediation flows where the output should guide action instead of dumping stack traces.
NOT for
Browser interfaces or responsive web dashboards.
Desktop GUI windows and native menu-bar apps.
API response schemas or machine-only output contracts.
Shell automation logic where human-facing polish is not the bottleneck.
Decision Points
flowchart TD
A[CLI UX request] --> B{Need full-screen stateful interaction?}
B -->|Yes| C{Team and runtime fit}
C -->|React or TypeScript| D[Ink]
C -->|Go| E[Bubble Tea or Huh]
C -->|Rust| F[Ratatui or inquire]
B -->|No| G{Need branded prompts or rich output?}
G -->|Prompts| H[Clack, Huh, or inquire]
G -->|Rich output| I[Chalk, Rich, or lipgloss plus tables and spinners]
D --> J[Layer color, width, and failure handling]
E --> J
F --> J
H --> J
I --> J
J --> K[Validate TTY fallback, Unicode width, and machine-readable mode]
Use this routing model first:
Prompt libraries are enough for wizards and first-run experiences.
Full TUI frameworks are worth it only when the interface has durable state and navigation.
Every visual choice must survive NO_COLOR, narrow widths, non-TTY pipes, and machine-readable flags.
Visual System Rules
Use semantic colors, not rainbow sampling. Success, warning, error, and one accent is usually enough.
Treat width as a first-class constraint. Reflow at 40, 80, and 120 columns.
Use Unicode-aware width calculation for tables and box drawing.
Make progress states honest: spinner for unknown duration, bars and ETA only when the denominator is real.
Turn every error surface into a next-action surface.
FAILURE MODES
Anti-Pattern: "Rainbow Vomit"
Symptom: Every piece of text has different colors, making nothing stand out
Detection Rule: If you count more than five colors in a single screen, you have hit this
Fix: Limit to three semantic colors plus one accent. Use grayscale for hierarchy.
Anti-Pattern: "Invisible in Light Mode"
Symptom: The CLI looks good in a dark terminal but becomes unreadable in light themes
Detection Rule: Hardcoded dark-theme colors without testing
Fix: Use semantic ANSI codes or verify the palette in both dark and light terminal themes.
Anti-Pattern: "Broken Pipe Panic"
Symptom: The CLI crashes or sprays ANSI codes when piped, for example mycli | head -5Detection Rule: isTTY or equivalent detection is missing from the formatting path
Fix: Strip formatting for pipes and keep a --color=always override when the user explicitly wants it.
Anti-Pattern: "Ghost Cursor"
Symptom: The terminal cursor disappears after a crash and the user has to recover it manually
Detection Rule: Cursor hiding is used without exit handlers for failure and interruption paths
Fix: Always restore cursor state before process termination.
Anti-Pattern: "Asian Character Explosion"
Symptom: Tables and boxes misalign when users have CJK names or emoji in data
Detection Rule: Layout math uses string length instead of display width
Fix: Use Unicode-aware width libraries for every alignment calculation.
Anti-Pattern: "Pretty but Script-Hostile"
Symptom: The human output looks great, but --json, pipes, or CI logs become unusable
Detection Rule: The command cannot cleanly switch between human mode and machine mode
Fix: Keep a machine-readable output path that bypasses decoration entirely.
WORKED EXAMPLES
Example 1: Setup Wizard Enhancement
Before: Basic prompts, no branding, inconsistent styling
layout: Unicode-width-aware column alignment, reflow at 40/80/120 columns.
feedback: honest progress (spinner for unknown duration, bar+ETA only with a real denominator), quiet by default, --json/--format=json escape hatch.
Use scripts/cli_design_audit.mjs to audit a CLI design spec JSON and return { pass, score, findings, recommendations }; see schemas/cli-spec.schema.json for the input shape and examples/sample-input.json for a passing spec.
Reference Map
diagrams/01_flowchart_decision-points.md — companion routing diagram for scope checks and first-pass implementation choice.
references/00-charmbracelet-ecosystem-overview.md — fast orientation for Bubble Tea, lipgloss, gum, and adjacent tooling.
references/02-ink-react-for-cli.md and references/03-inkjs-ui-components.md — React-flavored terminal UI guidance.
references/05-lipgloss-go-v2.md and references/10-huh-terminal-forms.md — polished Go output and prompt surfaces.
references/09-log-structured-logging.md — how to coexist with structured logs and machine-facing consumers.
schemas/cli-spec.schema.json — validate a CLI design spec JSON before auditing it.
examples/sample-input.json — a passing CLI design spec, for calibration.
scripts/cli_design_audit.mjs — deterministic scoring of a CLI design spec against this skill's Quality Gates.
templates/output-template.md — reusable structure for writing up a CLI/TUI design deliverable.
agents/openai.yaml — subagent descriptor for delegated CLI/TUI design or audit.
README.md — quick start for using this skill and its auditor.
Skill Bundle Index
Every file in this skill, and when to open it. Auto-generated; run scripts/index_references.py --fix.
root
CHANGELOG.md — Beautiful Cli Design — Changelog — - Upgraded to the agentic-family standard: provenance moved to block-style kind: first-party, owners: [port-daddy] (prior recovery prove
README.md — Beautiful CLI Design — Treat the terminal as a real interface surface: hierarchy, feedback, accessibility, and fallback modes all matter — for branded setup flows,
diagrams/INDEX.md — Diagram Index — | File | Type | | |---|---|---| | diagrams/01_flowchart_decision-points.md | flowchart | companion for inline SKILL.md diagram |
examples/
examples/INDEX.md — Examples Index — | File | When to load | |---|---| | sample-input.json | A passing cli-spec.schema.json input — use as a starting point or to calibrate `
examples/expected-output.md — Example Output: Beautiful CLI Design — Scenario: a legacy deploy CLI paints every status line in red/green/yellow with no fallback symbol, ignores NO_COLOR, and writes its error
references/04-bubbletea-elm-architecture.md — Bubble Tea -- The Elm Architecture for Terminal Apps — Package: charm.land/bubbletea/v2 (Go) Stars: 30k+ (one of the most popular Go TUI frameworks) License: MIT GitHub: https:/
references/05-lipgloss-go-v2.md — Lip Gloss v2 -- Go Styling Library (Complete Reference) — Package: charm.land/lipgloss/v2 (Go) Stars: 10k+ License: MIT GitHub: This is th