Use when you have a written implementation plan to execute in a separate session with review checkpoints
npx skills add phrazzld/claude-config --skill "cli-development"
Install specific skill from multi-skill repository
# Description
|
# SKILL.md
name: cli-development
description: |
Command-line tool development patterns, conventions, and toolchain. Use when:
- Building CLI applications
- Designing command interfaces
- Choosing CLI frameworks (Commander.js, oclif, Ink, Cobra, Thor)
- Implementing help and error messages
- Following Unix conventions
Keywords: CLI, command line, terminal, help text, exit codes,
flags, arguments, Commander, Thor, Cobra, oclif
CLI Development
Verb-noun commands, progressive disclosure, helpful errors.
Command Structure
Verb-noun pattern:
tool create project
tool deploy app
tool logs get
tool config set key value
Max 2 levels deep. Use common verbs: create, delete, list, show, update, get, set.
Flags
-h, --help Always support both
-v, --verbose Increase output detail
-f, --force Skip confirmations
-o, --output json Format specifier
--dry-run Show what would happen
Boolean flags don't take values. Value flags use space or =.
Help Text
USAGE
tool deploy <app> [flags]
DESCRIPTION
Deploy an application to the specified environment.
FLAGS
-e, --env string Target environment (default: "staging")
-f, --force Skip confirmation prompt
--dry-run Show what would be deployed
EXAMPLES
# Deploy to staging
tool deploy my-app
# Deploy to production with confirmation bypass
tool deploy my-app --env production --force
SEE ALSO
tool deploy logs View deployment logs
tool deploy status Check deployment status
Error Messages
Error: Configuration file not found
The file 'config.yaml' does not exist in the current directory.
To fix this:
1. Run 'tool init' to create a new config file
2. Or specify a path with --config /path/to/config.yaml
See 'tool init --help' for more information.
Include: what went wrong, context, specific fix, help reference.
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | General error |
| 2 | Misuse (invalid arguments) |
| 126 | Not executable |
| 127 | Command not found |
Output
Human-readable by default, machine-readable on request:
tool list users # Pretty table
tool list users --format json # JSON output
tool list users -o yaml # YAML output
Progressive Disclosure
- Simple commands with sensible defaults
- Advanced options available but not prominent
- Help organized by experience level
- Discovery through
--helpand suggestions
Anti-Patterns
- Cryptic abbreviations (
-xwithout long form) - Stack traces in user output
- Silent failures (no output on error)
- Required flags for common cases
- Deep command hierarchies (>2 levels)
- Inconsistent verbs across commands
Toolchain
See references/toolchain.md for framework-specific guidance:
- Commander.js (default for Node.js)
- oclif (enterprise CLIs)
- Ink (React for terminals)
- Cobra (Go CLIs)
- Thor (Ruby CLIs)
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.