nWave/skills/nw-ux-tui-patterns/SKILL.md
Terminal UI and CLI design patterns for product owners. Load when designing command-line tools, interactive terminal applications, or writing CLI-specific acceptance criteria.
npx skillsauth add nwave-ai/nwave nw-ux-tui-patternsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Actionable terminal interface patterns for requirements gathering and design review. Use when target is CLI tool or interactive terminal application.
Follow program subcommand [flags] [arguments] (e.g., git commit -m "message").
-h) and long (--help) for common flags--help, --version, --verbose/--quiet, --no-colorcreate, delete, list, show, updateuser, project, configtool resource action or tool action resource) consistentlyRequired arguments are positional; optional use flags. Accept stdin for piping. Support glob patterns for file arguments. Provide --dry-run for destructive/complex operations.
| Framework | Language | Architecture | Best For | |-----------|----------|-------------|----------| | Bubble Tea | Go | Elm (Model-Update-View) | Full TUI apps with complex state | | Rich | Python | Declarative rendering | Beautiful output, progress, tables | | Ink | JavaScript | React component model | Teams with React experience | | Textual | Python | CSS-like styling, widgets | Dashboard-style applications | | Ratatui | Rust | Immediate-mode rendering | High-performance terminal apps |
Unidirectional data flow makes TUI state predictable and testable.
Arrow keys to navigate, Enter to select. Type-ahead filtering for long lists. Multi-select with space bar, confirm with Enter. Show selected count with clear visual indicator. Support Esc to cancel.
Red: errors, failures, deletions | Yellow/amber: warnings, attention | Green: success, confirmations, additions | Blue/cyan: information, links, highlights | Dim/gray: secondary info, metadata
NO_COLOR environment variable (no-color.org)Bold for emphasis and headings | Tables for structured data | Indentation for hierarchy | Horizontal rules for section breaks | Unicode box-drawing for visual structure (provide ASCII fallback)
Every CLI error answers three questions:
Error: Could not connect to database at localhost:5432
The connection was refused. The database server may not be
running or is not accepting connections on this port.
Try:
1. Check if PostgreSQL is running: pg_isready -h localhost -p 5432
2. Start the server: sudo systemctl start postgresql
3. Verify the port in config: cat ~/.config/myapp/database.yaml
Documentation: https://docs.myapp.com/troubleshooting/database
Error: ECONNREFUSED
--help Output Structuretool-name - One-line description
USAGE
tool-name <command> [flags]
COMMANDS
create Create a new resource
list List existing resources
delete Remove a resource
FLAGS
-h, --help Show this help message
-v, --version Show version information
-q, --quiet Suppress non-error output
EXAMPLES
# Create a new project
tool-name create my-project --template=web
# List all projects
tool-name list --format=table
LEARN MORE
Documentation: https://docs.tool-name.com
Report issues: https://github.com/org/tool-name/issues
Lead with examples (users scan for examples first). Show common commands/flags first. One line per description. Link to detailed docs. Support both tool help <cmd> and tool <cmd> --help.
Detect TTY: terminal gets colors, tables, progress bars. Disable animations/spinners in non-TTY mode. Use structured formatting (headers, indentation, alignment).
--json for structured output (most important machine format)--plain or --tsv for tabular data compatible with grep, awk, cut--quiet for scripts needing only exit codeOnce --json schema published, treat as API contract. Breaking changes require major version bump or --output-version flag.
[3/7] Installing dependencies...| Anti-Pattern | Alternative | |-------------|-------------| | Wall of unformatted text | Structured output with headers, tables, color | | Raw exception stack traces | Caught errors rewritten in human language | | No --help or misleading help | Comprehensive, example-led help text | | Requiring interactive input in CI/CD | Detect non-TTY and accept flags/env vars | | Breaking JSON output between versions | Treat machine output as versioned API contract | | Secrets accepted via flags | Use files, stdin, or environment variables | | Color as only information channel | Pair color with text labels or symbols |
testing
Runs feature-scoped mutation testing to validate test suite quality. Use after implementation to verify tests catch real bugs (kill rate >= 80%).
development
Canonical AT completeness gate — research-anchored 7-category taxonomy (C1-C7) + 15-item mechanical checklist. Paradigm-neutral. Drives acceptance-designer reviewer verdict deterministically.
development
Canonical AT completeness gate — research-anchored 7-category taxonomy (C1-C7) + 15-item mechanical checklist. Paradigm-neutral. Drives acceptance-designer reviewer verdict deterministically.
testing
Methodology for minimizing test count while maximizing behavioral coverage - behavior definition, anti-pattern catalog, consolidation patterns, stopping criterion, coverage-preserving validation