⌨️ 写 CLI,先把这份指南喂给 AI

Command Line Interface Guidelines 是一份开源的现代 CLI 设计指南。它不教你选 Commander、Cobra 还是 Click,而是讨论更容易被忽略的东西:一个命令行工具到底怎样才算“好用”。

作者里有 Docker Compose 的共同创造者,内容从传统 UNIX 原则出发,但没有停留在几十年前:

• 给人用时,报错要能看懂,还要告诉用户怎么修
• 给脚本用时,stdout / stderr、退出码和信号必须守规矩
• 检测 TTY 后再决定是否显示颜色、进度条和交互提示
• 支持 --help、--version、自动补全,并保持参数命名一致
• 危险操作要确认,但也得提供明确的非交互模式
• 输出别装死,也别把调试日志倒用户一脸

这份指南 2020 年首次发布时,在 Hacker News 拿到 564 分、引出 212 条讨论;GitHub 目前约 3.8k Stars,而且 2026 年仍在维护。

社区争议也很有意思:有人反对它淡化 man page,有人认为 emoji 会破坏终端兼容性,还有人质疑“现代 CLI 应该 human-first”是否矫枉过正。所以它不是标准,更不是圣经,里面一些偏主观的建议需要结合目标用户取舍。

Agili 点评:

现在写 CLI 最大的新坑,是 AI 十分钟就能堆出一坨“能跑”的命令,但参数乱、错误信息烂、管道一接就废。

我的建议很直接:把 clig.dev 当作 CLI 的设计 review checklist,或者把全文塞进项目的 Agent Skill / AGENTS.md。先让 AI 遵守输出、错误处理、交互和兼容性的约束,再让它写代码,成品会从 demo 味迅速接近真正可发布的工具。

源码:https://github.com/cli-guidelines/cli-guidelines Command Line Interface Guidelines