cli-design
Installation
SKILL.md
CLI Design
What this skill is for
CLI design is the professional practice of designing command-line interfaces as human interfaces with genuine UX obligations. A CLI is not the absence of UI — it is a distinct interaction surface with its own grammar, conventions, composability requirements, and failure modes. Treating it as pure plumbing produces opaque, automation-hostile, expert-only tools that frustrate users and break pipelines.
"Today's command line is human-first: a text-based UI that affords access to all kinds of tools, systems and platforms." — clig.dev (Command Line Interface Guidelines, 2021)
Load this skill when:
- Designing the command hierarchy, subcommand structure, or flag vocabulary for a CLI tool
- Designing stdin/stdout/stderr behavior, exit codes, or piping behavior
- Designing help text, error messages, or discoverability for a CLI
- Reviewing an existing CLI for design quality — grammar coherence, stream contracts, exit code correctness
- The tool will be used both interactively and in scripts, pipelines, or CI environments
Do NOT load this skill when:
- Designing a TUI — a stateful interactive application that holds the terminal for multiple interactions (→
tui-design). The boundary: if the program runs and exits per command, it is a CLI. If it holds a persistent interactive session with a render loop, it is a TUI. - Implementing CLI parsing or flag handling in code (→
golang-clior language equivalent) - Designing general interaction patterns not specific to CLI (→
interaction-design)