From python-development
Use when building CLI tools, implementing argument parsing, or adding interactive prompts. Invoke for parsing flags and subcommands, displaying progress bars and spinners, generating bash/zsh/fish completion scripts, CLI design, shell completions, and cross-platform terminal applications using commander, click, typer, or cobra.
How this skill is triggered — by the user, by Claude, or both
Slash command
/python-development:cli-developerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. **Analyze UX** — Identify user workflows, command hierarchy, common tasks. Validate by listing all commands and their expected `--help` output before writing code.
--help output before writing code.<cli> --help to verify help text renders correctly and <cli> --version to confirm version output.Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Design Patterns | references/design-patterns.md | Subcommands, flags, config, architecture |
| Node.js CLIs | references/node-cli.md | commander, yargs, inquirer, chalk |
| Python CLIs | references/python-cli.md | click, typer, argparse, rich |
| Go CLIs | references/go-cli.md | cobra, viper, bubbletea |
| UX Patterns | references/ux-patterns.md | Progress bars, colors, help text |
#!/usr/bin/env node
// npm install commander
const { program } = require('commander');
program
.name('mytool')
.description('Example CLI')
.version('1.0.0');
program
.command('greet <name>')
.description('Greet a user')
.option('-l, --loud', 'uppercase the greeting')
.action((name, opts) => {
const msg = `Hello, ${name}!`;
console.log(opts.loud ? msg.toUpperCase() : msg);
});
program.parse();
For Python (click/typer) and Go (cobra) quick-start examples, see references/python-cli.md and references/go-cli.md.
--help and --version flagsBlock on synchronous I/O unnecessarily — use async reads or stream processing instead.
Print to stdout when output will be piped — write logs/diagnostics to stderr.
Use colors when output is not a TTY — detect before applying color:
// Node.js
const useColor = process.stdout.isTTY;
# Python
import sys
use_color = sys.stdout.isatty()
// Go
import "golang.org/x/term"
useColor := term.IsTerminal(int(os.Stdout.Fd()))
Break existing command signatures — treat flag/subcommand renames as breaking changes.
Require interactive input in CI/CD environments — always provide non-interactive fallbacks via flags or env vars.
Hardcode paths or platform-specific logic — use os.homedir() / os.UserHomeDir() / Path.home() instead.
Ship without shell completions — all three frameworks above have built-in completion generation.
When implementing CLI features, provide:
CLI frameworks (commander, yargs, oclif, click, typer, argparse, cobra, viper), terminal UI (chalk, inquirer, rich, bubbletea), testing (snapshot testing, E2E), distribution (npm, pip, homebrew, releases), performance optimization
npx claudepluginhub thimslugga/thimslugga-cc-plugins --plugin python-developmentProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.