cli-developer

Implements command-line tools with argument parsing, prompts, and shell completions across Node.js, Python, and Go.

Updated Mar 9, 2026
One-click install
npx skills add https://github.com/ArMaTeC/Redball --skill cli-developer-armatec
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: cli-developer
Source: https://github.com/ArMaTeC/Redball/tree/main/.devin/skills/cli-developer
Command: npx skills add https://github.com/ArMaTeC/Redball --skill cli-developer-armatec

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building a professional command-line tool requires consistent flag conventions, graceful error handling, shell completions, and cross-platform terminal behavior, which are easy to get wrong without established patterns. ## Core Features & Use Cases - Framework Guidance: Provides implementation patterns for commander and yargs (Node.js), click, typer, and argparse (Python), and cobra with viper (Go). - UX Patterns: Covers progress bars, spinners, colored output with TTY detection, interactive prompts, and structured help text design. - Use Case: When scaffolding a new deployment CLI in Go, use this Skill to structure cobra subcommands, wire viper configuration layers, add progress indicators, and generate shell completions. ## Quick Start Use the cli-developer skill to build a Python CLI with typer that has init and deploy subcommands, colored output, and shell completion support.

Frequently Asked Questions about cli-developer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a CLI tool with subcommands in Python?▼

Use typer or click to define subcommands with decorators, where each function becomes a command with typed arguments and options. Typer generates help text automatically from type hints and docstrings, while click offers explicit decorator-based configuration.

What CLI framework should I use for Node.js?▼

Commander.js is the recommended choice for most Node.js CLIs, offering subcommands, options parsing, and TypeScript support. Yargs is an alternative when you need middleware support and more advanced argument validation.

How do I add shell completions to a CLI?▼

Cobra, click, and typer all have built-in completion generation for bash, zsh, and fish. Run the framework's completion command to output the script, then source it or install it into the shell's completion directory.

Why should CLI colors be disabled when output is piped?▼

ANSI color codes corrupt output when piped to files or other programs, so detect TTY status before applying colors. Check process.stdout.isTTY in Node.js, sys.stdout.isatty() in Python, or term.IsTerminal() in Go, and respect the NO_COLOR environment variable.

How do I handle Ctrl+C gracefully in a CLI application?▼

Register a SIGINT handler that prints a cancellation message and exits with code 130, the POSIX convention for SIGINT termination. In Node.js use process.on('SIGINT'), in Python catch KeyboardInterrupt, and in Go use signal.Notify with os.Interrupt.

What exit codes should a CLI tool return?▼

Follow POSIX conventions: 0 for success, 1 for general errors, 2 for argument misuse, 77 for permission denied, 127 for not found, and 130 for SIGINT cancellation. Consistent exit codes let scripts and CI pipelines react to specific failure modes.