命令行工具是开发者的生产力基石。 Claude Code 能快速生成专业级 CLI 工具—— 从参数解析到帮助文档,从配置文件到自动补全, 一次性搞定。
技术栈选择指南
| 语言 | 推荐库 | 适合场景 |
|---|---|---|
| Python | Click / Typer | 数据处理/脚本/快速原型 |
| Node.js | Commander / Yargs | 前端工具链/npm 发布 |
| Go | Cobra | 高性能/单二进制/跨平台 |
| Rust | Clap | 极致性能/系统工具 |
场景一:Python Click CLI(文件批量重命名工具)
Prompt:
用 Python + Click 写一个文件批量重命名工具:
- 支持正则匹配文件名然后替换
- 支持预览模式 (--dry-run)
- 支持递归处理子目录 (--recursive)
- 重命名前显示变更列表请用户确认
- 操作结果输出彩色摘要
CLI 接口:
rename-tool replace --pattern "old_(.*)" --with "new_\1" ./photos/
rename-tool replace --pattern "old_(.*)" --with "new_\1" --dry-run ./photos/
Claude Code 生成的关键结构:
python
import click
from pathlib import Path
import re
@click.command()
@click.argument('directory', type=click.Path(exists=True))
@click.option('--pattern', required=True, help='正则匹配模式')
@click.option('--with', 'replacement', required=True, help='替换为')
@click.option('--dry-run', is_flag=True, help='预览模式,不实际修改')
@click.option('--recursive', is_flag=True, help='递归处理子目录')
def replace(directory, pattern, replacement, dry_run, recursive):
# 批量重命名文件
path = Path(directory)
glob_pattern = '**/*' if recursive else '*'
files = list(path.glob(glob_pattern))
renames = [
(f, f.parent / re.sub(pattern, replacement, f.name))
for f in files
if re.sub(pattern, replacement, f.name) != f.name
]
if not renames:
click.echo('没有匹配的文件')
return
click.echo(f'将重命名 {len(renames)} 个文件:')
for old, new in renames:
click.echo(f' {old.name} -> ' + click.style(new.name, fg='green'))
if dry_run:
click.echo(click.style('[预览模式] 未实际修改', fg='yellow'))
return
if click.confirm('确认执行?'):
for old, new in renames:
old.rename(new)
click.echo(click.style(f'成功重命名 {len(renames)} 个文件', fg='green'))场景二:Go Cobra CLI(API 压测工具)
用 Go + Cobra 写一个 API 压测工具:
- 子命令:run(执行压测)、report(查看历史报告)
- run 参数:--url, --method, --concurrency, --duration, --rps 限制
- 实时显示进度条(请求数/成功率/P99延迟)
- 结果保存为 JSON,支持生成 HTML 报告
- 单一可执行文件,无外部依赖
场景三:配置文件管理
帮我在 CLI 工具中添加配置文件支持:
- 配置存储在 ~/.config/my-tool/config.yaml
- 支持 config set key value 和 config get key 命令
- 支持多个 profile(config use dev/prod)
- 命令行参数优先级高于配置文件
场景四:Shell 自动补全
给这个 Click CLI 添加 zsh/bash 自动补全:
- 子命令名称补全
- --option 参数补全
- 文件路径参数补全(特定扩展名)
生成安装补全的说明文档。
场景五:跨平台打包发布
帮我写 GitHub Actions 工作流:
- 用 PyInstaller 打包为 macOS/Linux/Windows 单文件可执行
- 自动上传到 GitHub Releases
- 同时发布到 PyPI
- 触发条件:推送 v* tag
完整项目 Prompt 模板
用 [技术栈] 写一个 [工具名] CLI 工具,实现 [功能描述]。
包含:
- 完整的目录结构和文件列表
- 主要的 CLI 入口代码
- README.md(含安装和使用示例)
- requirements.txt 或 go.mod
来源:Anthropic Claude Code 官方文档 - docs.anthropic.com/en/docs/claude-code