Claude-skill-registry cli-developer
Expert in building Command Line Interfaces (CLIs), Terminal User Interfaces (TUIs), and shell automation tools. Use when creating CLI applications, building interactive terminal UIs, parsing command-line arguments, or developing shell scripts and automation tools.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/cli-developer-skill" ~/.claude/skills/majiayu000-claude-skill-registry-cli-developer-778a99 && rm -rf "$T"
manifest:
skills/data/cli-developer-skill/SKILL.mdsource content
CLI Developer
Purpose
Provides expertise in building robust, user-friendly command-line applications and terminal interfaces. Covers argument parsing, interactive prompts, TUI frameworks, and shell automation across multiple languages.
When to Use
- Building CLI applications in any language
- Creating interactive terminal user interfaces
- Implementing command-line argument parsing
- Building shell scripts and automation tools
- Adding progress bars, spinners, and colors
- Creating REPL-style applications
- Distributing CLI tools as packages
Quick Start
Invoke this skill when:
- Building CLI applications in any language
- Creating interactive terminal user interfaces
- Implementing command-line argument parsing
- Building shell scripts and automation tools
- Creating REPL-style applications
Do NOT invoke when:
- Building GUI desktop applications (use windows-app-developer)
- Creating web-based interfaces (use frontend skills)
- Writing PowerShell-specific tools (use powershell skills)
- Building mobile applications (use mobile-developer)
Decision Framework
CLI Framework Selection: ├── Node.js → Commander.js, Yargs, Oclif ├── Python → Click, Typer, argparse ├── Go → Cobra, urfave/cli ├── Rust → Clap, structopt ├── TUI needed │ ├── Node.js → Ink, Blessed │ ├── Python → Textual, Rich │ ├── Go → Bubbletea, tview │ └── Rust → Ratatui, crossterm └── Simple script → Shell (bash/zsh)
Core Workflows
1. CLI Application Setup
- Choose framework based on language/needs
- Define command structure and subcommands
- Implement argument and option parsing
- Add input validation and help text
- Implement core command logic
- Add output formatting (JSON, table, etc.)
- Package for distribution
2. Interactive TUI Development
- Select TUI framework
- Design screen layout and components
- Implement input handling and navigation
- Add state management
- Handle terminal resize events
- Test across different terminal emulators
3. CLI Distribution
- Add proper versioning
- Create man pages or help docs
- Package for target platforms
- Set up installation via package managers
- Create shell completions
- Add update mechanism
Best Practices
- Follow POSIX conventions for flags and arguments
- Provide both short (-v) and long (--verbose) options
- Include --help and --version flags
- Use exit codes properly (0 for success)
- Support piping and stdin input
- Add shell completion scripts
Anti-Patterns
| Anti-Pattern | Problem | Correct Approach |
|---|---|---|
| No help text | Users can't discover commands | Add comprehensive --help |
| Silent failures | Users don't know what went wrong | Clear error messages + exit codes |
| Hard-coded paths | Breaks on other systems | Use environment variables, XDG |
| No stdin support | Can't pipe data | Support reading from stdin |
| Colored output to pipes | Breaks parsing | Detect TTY, disable colors for pipes |