用途:为构建可被 AI 助手与高级用户串联、解析和依赖的 CLI 工具提供设计模式,核心是面向智能体工作流。
主要能力与原则:自文档化(--help 完整且最新)、可预测(各命令模式一致)、可组合(Unix 哲学,只做好一件事)、可解析(--json 始终可用且有效)、默认安静(只输出数据)、快速失败(无效输入立即报错)。设计公理包括:stdout 只放数据,stderr 放进度、颜色、表格、警告等人类信息;退出码有语义;帮助含示例;JSON 结构可预测。
命令架构:<tool> [global-options] <resource> <action> [options] [arguments]。资源用复数小写名词,动作用小写动词,长标志用 kebab-case,短标志单字母。标准资源动作含 list、get <id>、create、update <id>、delete <id>、search。
标志:每个命令必须支持 --help/-h 与 --json;根命令须支持 --version/-V。推荐 --quiet/-q、--verbose/-v、--dry-run、--limit/-n、--output/-o、--format/-f。布尔标志不带值,短标志可组合,未知标志报错。
输出:stdout 仅数据,stderr 承载其余内容。通过 sys.stdout.isatty() 与 sys.stderr.isatty() 判断交互模式。JSON 约定:列表 {"data": [...], "meta": {...}},单项 {"data": {...}},错误 {"error": {"code": "...", "message": "..."}};日期用 ISO 8601,金额用十进制数,ID 用字符串,枚举用 UPPER_SNAKE_CASE。
退出码:0 成功、1 一般错误、2 需认证、3 未找到、4 校验失败、5 禁止、6 限流、7 冲突。错误码含 AUTH_REQUIRED、TOKEN_EXPIRED、FORBIDDEN、NOT_FOUND、VALIDATION_ERROR、INVALID_ARGUMENT、MISSING_ARGUMENT、RATE_LIMITED、CONFLICT、ALREADY_EXISTS、INTERNAL_ERROR、API_ERROR、NETWORK_ERROR。
认证:需认证的工具应实现 auth login/status/logout。凭据存储优先级为环境变量、操作系统钥匙串、.env 文件。未认证时退出码为 2。
过滤与分页:支持 --status、--from/--to、--month、--search、布尔过滤;分页支持 --limit、--page/--offset、--cursor/--after。
实现:推荐 Typer(新工具),Click 亦可接受,两者须遵循相同输出约定。反模式包括输出污染、非交互环境弹提示、标志不一致、静默失败。
限制:资料未提供具体安装命令、版本号、收费信息或平台支持范围。