✓ Verified 💻 Development ✓ Enhanced Data

Create Cli

Design CLI arguments, flags, subcommands.

Rating
4.9 (67 reviews)
Downloads
780 downloads
Version
1.0.0

Overview

Design CLI arguments, flags, subcommands.

Complete Documentation

View Source →

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.
  • Destructive operations: interactive confirmation + non-interactive requires --force or explicit --confirm=....
  • Respect NO_COLOR, TERM=dumb; provide --no-color.
  • Handle Ctrl-C: exit fast; bounded cleanup; be crash-only when possible.

Templates (copy into your answer)

CLI spec skeleton

Fill these sections, drop anything irrelevant:

  • Name: mycmd
  • One-liner: ...
  • USAGE:
  • mycmd [global flags] [args]
  • Subcommands:
  • mycmd init ...
  • mycmd run ...
  • Global flags:
  • -h, --help
  • --version
  • -q, --quiet / -v, --verbose (define exactly)
  • --json / --plain (if applicable)
  • I/O contract:
  • stdout:
  • stderr:
  • Exit codes:
  • 0 success
  • 1 generic failure
  • 2 invalid usage (parse/validation)
  • (add command-specific codes only when actually useful)
  • Env/config:
  • env vars:
  • config file path + precedence:
  • Examples:

Notes

  • Prefer recommending a parsing library (language-specific) only when asked; otherwise keep this skill language-agnostic.
  • If the request is “design parameters”, do not drift into implementation.

Installation

Terminal bash

openclaw install create-cli
    
Copied!

Tags

#cli_utilities #cli

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author steipete
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install create-cli