‹ 首页

cli-developer

@jeffallan · 收录于 1 周前 · 上游提交 1 个月前

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.

适合你,如果你经常用 Python、TypeScript 或 Go 开发 CLI 工具

/ 下载安装
cli-developer.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add jeffallan/claude-skills/cli-developer
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- jeffallan/claude-skills/cli-developer
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify jeffallan/claude-skills/cli-developer
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
10501GitHub stars
~953最小装载
~9.9K含声明引用
~9.9K文本包总量
镜像托管

怎么用

商店整理自技能原文 · 版本 e8be415 · 表述以原文为准
它做什么

安装后,Claude 会帮你设计、实现和优化命令行工具(CLI),包括解析参数、生成帮助文本、添加进度条和自动补全等功能。

什么时候触发

当你提到“CLI”、“命令行工具”、“参数解析”等关键词,或要求使用 commander、click、typer、cobra 等框架时触发。

装好后可以这样说
Claude 会提供补全脚本和集成方法。
技能原文 SKILL.md作者撰写 · MIT · e8be415

CLI Developer

Core Workflow
  1. Analyze UX — Identify user workflows, command hierarchy, common tasks. Validate by listing all commands and their expected --help output before writing code.
  2. Design commands — Plan subcommands, flags, arguments, configuration. Confirm flag naming is consistent and no existing signatures are broken.
  3. Implement — Build with the appropriate CLI framework for the language (see Reference Guide below). After wiring up commands, run <cli> --help to verify help text renders correctly and <cli> --version to confirm version output.
  4. Polish — Add completions, help text, error messages, progress indicators. Verify TTY detection for color output and graceful SIGINT handling.
  5. Test — Run cross-platform smoke tests; benchmark startup time (target: <50ms).
Reference Guide

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 |

Quick-Start Example
Node.js (commander)
#!/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.

Constraints
MUST DO
  • Keep startup time under 50ms
  • Provide clear, actionable error messages
  • Support --help and --version flags
  • Use consistent flag naming conventions
  • Handle SIGINT (Ctrl+C) gracefully
  • Validate user input early
  • Support both interactive and non-interactive modes
  • Test on Windows, macOS, and Linux
MUST NOT DO
  • Block 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: ```js // Node.js const useColor = process.stdout.isTTY; ``` ```python # Python import sys use_color = sys.stdout.isatty() ``` ```go // 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.
Output Templates

When implementing CLI features, provide:

  1. Command structure (main entry point, subcommands)
  2. Configuration handling (files, env vars, flags)
  3. Core implementation with error handling
  4. Shell completion scripts if applicable
  5. Brief explanation of UX decisions
Knowledge Reference

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

Documentation

按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。