Agent skill · software engineering · steipete

create-cli

CLI UX/spec: args, flags, help, output, errors, config, dry-run.

Why this skill is useful

Provides a structured template and guidelines for designing CLI interfaces that the AI wouldn't reliably generate on its own.

What it needs

About 2k tokens when loaded. Last updated 2026-08-06. 6,510 stars on the source repository.

What this skill does

Create CLI Design CLI surface area (syntax + behavior), human-first, script-friendly. Do This First Read agent-scripts/skills/create-cli/references/cli-guidelines.md and apply it as the default rubric. Upstream/full guidelines: https://clig.dev/ (propose changes: https://github.com/cli-guidelines/cli-guidelines) Ask only the minimum clarifying questions needed to lock the interface. Clarify (fast) Ask, then proceed with best-guess defaults if user is unsure: Command name + one-sentence purpose. Primary user: humans, scripts, or both. Input sources: args vs stdin; files vs URLs; secrets (never via flags). Output contract: human text, --json, --plain, exit codes. Interactivity: prompts allowed? need --no-input? confirmations for destructive ops? Config model: flags/env/config-file; precedence; XDG vs repo-local. Platform/runtime constraints: macOS/Linux/Windows; single binary vs runtime. Deliverables (what to output) When designing a CLI, produce a compact spec the user can implement: Command tree + USAGE synopsis. Args/flags table (types, defaults, required/optional, examples). Subcommand semantics (what each does; idempotence; state changes). Output rules: stdout vs stderr; TTY detection; --json/--plain; --quiet/--verbose. Error + exit code map (top failure modes). Safety rules: --dry-run, confirmations, --force, --no-input. Config/env rules + precedence (flags > env > project config > user config > system). Shell completion story (if relevant): install/discoverability; generation command or bundled scripts. 5–10 example invocations (common flows; include piped/stdin examples). Default Conventions (unless user says otherwise) -h/--help always shows help and ignores other args. --version prints version to stdout. Primary data to stdout; diagnostics/errors to stderr. Add --json for machine output; consider --plain for stable line-based text. Prompts only when stdin is a TTY; --no-input disables prompts. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills steipete/create-cli

View the source on GitHub

Browse the @skills marketplace