摘要: AI Agent 能写代码、能推理,但操控真实专业软件时却频频"翻车"——截屏猜坐标、RPA 模拟点击、API 覆盖不全……香港大学 HKUDS 开源的 CLI-Anything,用一条命令把任意软件自动转成 Agent 可调用的 CLI,覆盖 18 款专业软件,1,774 项测试全部通过。本文从原理到实战,带你彻底搞懂这个项目。
一、痛点:Agent 的"最后一公里"
2026 年了,AI Agent 赛道已经卷到飞起。Claude Code、OpenClaw、Cursor、Codex……各大平台都在喊"让 AI 帮你干活"。
但你有没有试过让 Agent 帮你做这些事?
- 用 Blender 建一个 3D 产品模型
- 用 GIMP 批量给 500 张图片加水印
- 用 LibreOffice 把 10 份 Word 报告统一转成 PDF
- 用 Audacity 剪辑一段播客音频
试过就知道,Agent 干这些活有多痛苦:
| 痛点 | 具体表现 |
|---|---|
| 🤖 GUI 自动化 | 截屏 → 识别坐标 → 模拟点击,界面一改就崩,效率极低 |
| 💸 专用 API | 很多软件根本没有 API,有 API 的也经常覆盖不全 |
| 🔧 功能重写 | 用 Python 重写一遍?GIMP 有 500+ 功能,你重写 50 个就累趴了 |
| 📊 MCP 协议 | Anthropic 2024 年推出的方案,规范太重,抽象层太厚,社区正在转向更轻量的方案 |
核心矛盾:Agent 的推理能力已经很强了,但"手脚"还很弱。
这就是 CLI-Anything 要解决的问题。
二、为什么是 CLI?一场路线之争的终局
2026 年初,技术社区爆发了一场激烈的"CLI vs MCP"路线之争。掘金、博客园、CSDN 上大量文章讨论"为什么 CLI 击败了 MCP"。
我总结了社区的核心共识:
在 Agent 时代,简洁和高效战胜了规范和抽象。CLI 的回归不是倒退,而是对 AI 本质的重新理解。
CLI 之所以成为 Agent 的最优接口,有 5 个关键原因:
① 结构化、可组合
文本命令天然匹配 LLM 的输入格式。Agent 可以自由地把多条命令串联成复杂工作流,就像人类写 shell 脚本一样自然。
② 自描述
一个 --help 就能让 Agent 自动发现所有功能。不需要额外的文档、不需要专门的 SDK、不需要注册开发者账号。
③ Agent 原生
--json 参数输出结构化数据,Agent 无需任何额外解析。人看可读表格,Agent 拿 JSON——两全其美。
④ 确定且可靠
同样的命令,同样的输出。不像 GUI 截图那样"这次识别到了,下次不一定"。
⑤ 久经验证
Claude Code 每天通过 CLI 执行数以千计的真实任务。这不是实验室里的概念验证,而是经过大规模实战检验的范式。
三、CLI-Anything 到底做了什么
一句话概括:你给它一个软件的代码库,它自动帮你生成一套完整的、可安装的 CLI 工具。
输入:任意有代码库的软件(如 GIMP、Blender、LibreOffice……)
输出:一套生产级 CLI,包含 REPL 交互、JSON 输出、撤销重做、完整测试
项目信息:
| 项 | 值 |
|---|---|
| GitHub | github.com/HKUDS/CLI-A… |
| CLI-Hub | clianything.cc/ |
| 出品方 | 香港大学数据科学实验室(HKUDS) |
| 许可证 | Apache 2.0 |
| Python 版本 | ≥ 3.10 |
| 核心依赖 | Click ≥ 8.0 |
| 已覆盖软件 | 18 款 |
| 测试用例 | 1,774 项(100% 通过) |
划重点:它不是生成一个 demo,而是生成一套生产级的 CLI 工具——有测试、有文档、有 REPL、有状态管理、有 JSON 输出。
四、七阶段流水线:从源码到可安装 CLI 的全自动化
CLI-Anything 的核心是一条全自动的 7 阶段流水线。你不需要写一行代码,Agent 会自动完成所有工作:
┌─────────────────────────────────────────────────────────┐
│ 阶段 1 🔍 分析 │
│ 扫描源码,识别后端引擎,将 GUI 操作映射到 API │
├─────────────────────────────────────────────────────────┤
│ 阶段 2 📐 设计 │
│ 规划命令分组、状态模型、输出格式 │
├─────────────────────────────────────────────────────────┤
│ 阶段 3 🔨 实现 │
│ 构建 Click CLI,包含 REPL、JSON 输出、撤销/重做 │
├─────────────────────────────────────────────────────────┤
│ 阶段 4 📋 规划测试 │
│ 生成 TEST.md,涵盖单元测试和端到端测试计划 │
├─────────────────────────────────────────────────────────┤
│ 阶段 5 🧪 编写测试 │
│ 按计划实现完整测试套件 │
├─────────────────────────────────────────────────────────┤
│ 阶段 6 📝 文档 │
│ 更新 TEST.md,写入测试结果 │
├─────────────────────────────────────────────────────────┤
│ 阶段 7 📦 发布 │
│ 生成 setup.py,pip install 到 PATH │
└─────────────────────────────────────────────────────────┘
流水线的关键设计
阶段 1 的"后端引擎识别"是核心中的核心。 它不是简单地扫描代码结构,而是要找到软件的"真正引擎":
- Shotcut 的引擎是 MLT(多媒体框架)
- GIMP 的引擎是 GEGL + Script-Fu
- Blender 的引擎是 bpy(Python 脚本接口)
- LibreOffice 的引擎是 ODF 生成 + headless 模式
找到引擎后,再把每个 GUI 操作映射到对应的 API 调用。这一步做好了,后面的一切都是水到渠成。
阶段 3 的实现质量决定了最终产出。 生成的 CLI 不是简单的命令拼接,而是包含:
- Click 框架:Python 生态最成熟的 CLI 框架
- REPL 交互:有状态的交互式终端,带命令历史、进度指示
- JSON 输出:每个命令都支持
--json参数 - 撤销/重做:基于命令模式的状态管理
- 会话持久化:项目状态可以保存和恢复
五、技术架构深度拆解
5.1 五条铁律
CLI-Anything 的架构设计遵循 5 条不可妥协的原则:
铁律一:必须调用真实软件
CLI 必须调用真实应用进行渲染。不能用 Pillow 替代 GIMP,不能自己写渲染器替代 Blender。正确做法:生成合法的项目文件 → 调用真实后端。
为什么这条这么重要?因为 GUI 应用在渲染时才会应用特效和滤镜。如果你用 Python 脚本"模拟"了 GIMP 的功能,那些复杂的滤镜链、色彩管理、图层混合模式全都会丢失。
铁律二:双模式交互
每个 CLI 支持两种使用方式:
# 模式 1:REPL 交互(有状态)
cli-anything-gimp
gimp> layer add -n "Background" --type solid --color "#1a1a2e"
gimp[project.xcf]*> filter apply gaussian-blur --radius 5
gimp[project.xcf]> exit
# 模式 2:子命令(无状态,供 Agent 脚本调用)
cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e"
铁律三:统一 REPL 界面(ReplSkin)
所有生成的 CLI 共享同一套 REPL 界面组件——品牌横幅、风格化提示符、命令历史、进度指示器、格式化表格。用户体验一致,学习成本为零。
铁律四:Agent 原生设计
每个命令内置 --json 参数。Agent 消费 JSON,人类看可读表格。Agent 通过标准的 which 命令发现工具,通过 --help 发现能力——零配置,零注册。
铁律五:零降级策略
后端缺失时测试直接失败(不是跳过,不是标记为 skipped)。没有兜底,没有"假装成功"。这条保证了每个 CLI 都是真正可用的。
5.2 项目结构
cli-anything/
├── cli-anything-plugin/ # Claude Code 插件(核心入口)
│ ├── HARNESS.md # 方法论 SOP(项目灵魂)
│ ├── commands/ # 插件命令定义
│ │ ├── cli-anything.md # 主构建命令
│ │ ├── refine.md # 优化扩展命令
│ │ ├── test.md # 测试运行器
│ │ ├── validate.md # 标准验证
│ │ └── list.md # 列出所有 CLI
│ └── repl_skin.py # 统一 REPL 界面
│
├── gimp/agent-harness/ # GIMP CLI(107 项测试)
├── blender/agent-harness/ # Blender CLI(208 项测试)
├── inkscape/agent-harness/ # Inkscape CLI(202 项测试)
├── audacity/agent-harness/ # Audacity CLI(161 项测试)
├── libreoffice/agent-harness/ # LibreOffice CLI(158 项测试)
├── zotero/agent-harness/ # Zotero CLI(文献管理,测试数未公开)
├── obs-studio/agent-harness/ # OBS Studio CLI(153 项测试)
├── kdenlive/agent-harness/ # Kdenlive CLI(155 项测试)
├── shotcut/agent-harness/ # Shotcut CLI(154 项测试)
├── openscreen/agent-harness/ # Openscreen CLI(101 项测试)
├── zoom/agent-harness/ # Zoom CLI(22 项测试)
├── drawio/agent-harness/ # Draw.io CLI(138 项测试)
├── anygen/agent-harness/ # AnyGen CLI(50 项测试)
├── lldb/agent-harness/ # LLDB CLI(27 项测试)
├── nsight-graphics/agent-harness/ # Nsight Graphics CLI(51 项测试)
├── unrealinsights/agent-harness/ # Unreal Insights CLI(50 项测试)
├── sbox/agent-harness/ # s&box CLI(244 项测试)
└── sketch/agent-harness/ # Sketch CLI(19 项测试,Node.js)
每个 agent-harness/ 目录都是一个独立的 Python 包,命名空间统一在 cli_anything.<软件名>/ 下,可以直接 pip install -e . 安装到 PATH。
六、实战演示:三款软件的真实体验
6.1 LibreOffice:自动化办公
这是我个人觉得最实用的场景。企业里天天要处理各种文档格式转换:
# 创建一个 Writer 文档
$ cli-anything-libreoffice document new -o report.json --type writer
✓ Created Writer document: report.json
# 添加标题
$ cli-anything-libreoffice --project report.json writer add-heading \
-t "2026年Q1营收报告" --level 1
✓ Added heading: "2026年Q1营收报告"
# 添加表格
$ cli-anything-libreoffice --project report.json writer add-table \
--rows 4 --cols 3
✓ Added 4×3 table
# 调用 LibreOffice headless 导出真实 PDF
$ cli-anything-libreoffice --project report.json export render \
output.pdf -p pdf --overwrite
✓ Exported: output.pdf (42,831 bytes) via libreoffice-headless
# JSON 模式:Agent 直接消费
$ cli-anything-libreoffice --json document info --project report.json
{
"name": "Q1 Report",
"type": "writer",
"pages": 1,
"elements": 2,
"modified": true
}
划重点: 最后导出的 PDF 是通过真正的 LibreOffice headless 渲染的,不是 Python 脚本"模拟"的。所以字体、排版、样式都和你在 LibreOffice 里手动操作一模一样。
6.2 Blender:3D 建模到渲染
$ cli-anything-blender
╔══════════════════════════════════════════╗
║ cli-anything-blender v1.0.0 ║
║ Blender CLI for AI Agents ║
╚══════════════════════════════════════════╝
blender> scene new --name ProductShot
✓ Created scene: ProductShot
blender[ProductShot]> object add-mesh --type cube --location 0 0 1
✓ Added mesh: Cube at (0, 0, 1)
blender[ProductShot]*> render execute --output render.png --engine CYCLES
✓ Rendered: render.png (1920×1080, 2.3 MB) via blender --background
注意看提示符的变化:blender> → blender[ProductShot]> → blender[ProductShot]*>。最后那个 * 号表示项目有未保存的修改——这个细节设计真的很用心。
6.3 GIMP:图像处理
# 创建项目
$ cli-anything-gimp project new --width 1920 --height 1080 -o poster.json
# 添加图层
$ cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e"
{
"status": "ok",
"layer": {
"name": "Background",
"type": "solid",
"color": "#1a1a2e",
"visible": true
}
}
# 进入 REPL 模式进行交互式操作
$ cli-anything-gimp --project poster.json
gimp[poster]> filter apply gaussian-blur --radius 5
✓ Applied gaussian-blur (radius=5)
gimp[poster]*> export render output.png
✓ Exported: output.png (1920×1080, 245 KB)
七、多平台支持:不绑定任何厂商
CLI-Anything 的一个设计亮点是平台无关。它不是某个 Agent 平台的专属工具,而是一套通用的方法论,可以适配任何支持命令行调用的 Agent 框架。
| 平台 | 状态 | 安装方式 |
|---|---|---|
| Claude Code | ✅ 主力支持 | /plugin marketplace add HKUDS/CLI-Anything |
| OpenClaw | ✅ 原生 Skill | 复制 SKILL.md 到 ~/.openclaw/skills/cli-anything/ |
| OpenCode | ✅ 实验性 | 复制命令文件到 ~/.config/opencode/commands/ |
| Codex | ✅ 实验性 | 运行 bash install.sh 安装脚本 |
| Qodercli | ✅ 社区贡献 | bash setup-qodercli.sh |
| GitHub Copilot CLI | ✅ 社区贡献 | copilot plugin install |
| Pi | ✅ 已支持(仅英文文档列出) | 扩展安装 |
个人建议: 如果你是 Claude Code 用户,体验最好,直接用插件市场安装。OpenClaw 用户也可以用,但需要手动复制 SKILL.md 文件。其他平台的用户建议关注社区更新。注意:Pi 的支持信息仅出现在英文 README 中,中文文档未列出,使用前请确认最新状态。
八、CLI-Hub:Agent 工具的"应用商店"
2026 年 3 月 17 日,CLI-Anything 团队发布了 CLI-Hub——一个中心化的 CLI 注册表。
# 方式一:pip 安装
pip install cli-anything-hub
cli-hub list
cli-hub install cli-anything-gimp
# 方式二:npx skills 安装(支持 OpenClaw、Nanobot、Claude Code 等)
npx skills add HKUDS/CLI-Anything --skill cli-hub-meta-skill -g -y
# 方式三:通过 ClawHub / SkillHub 安装
# ClawHub: https://clawhub.ai/yuh-yang/cli-anything-hub
# SkillHub: https://www.skillhub.club/web/skills/itsyuhao-cli-anything-hub
截至 2026 年 5 月,CLI-Hub 已收录数十款 CLI 工具,覆盖以下领域:
| 领域 | 代表软件 |
|---|---|
| 🎨 创意与媒体 | GIMP、Blender、Inkscape、Audacity、Krita、Kdenlive、Shotcut、MuseScore |
| 📊 数据与分析 | JupyterLab、Apache Superset、Metabase、DBeaver、KNIME |
| 💻 开发工具 | Jenkins、Gitea、Portainer、SonarQube、ArgoCD、Insomnia |
| 🔬 科学计算 | ImageJ、FreeCAD、QGIS、KiCad、Gephi |
| 🏢 企业与办公 | NextCloud、GitLab、Grafana、LibreOffice、Odoo、NocoDB |
| 📞 通信协作 | Zoom、Jitsi Meet、BigBlueButton、Mattermost |
| 🎮 游戏开发 | Godot、s&box、Slay the Spire II |
| 🧠 知识管理 | Obsidian、Zotero、Logseq、Joplin |
最酷的功能: CLI-Hub 支持 Agent 自主发现和安装 CLI。通过 meta-skill,Agent 可以自动搜索需要的工具并安装——"Agent 帮 Agent 找工具"的闭环。
九、测试体系:1,774 项测试怎么设计的
CLI-Anything 的测试不是走过场。它采用四层验证体系,确保每个 CLI 都是生产可用的:
第一层:单元测试(test_core.py)
每个核心函数单独测试,使用合成数据,不依赖外部软件。
# 示例:测试项目创建
def test_project_new():
result = invoke_cli(["project", "new", "--width", "1920", "--height", "1080"])
assert result.exit_code == 0
assert "Created" in result.output
第二层:端到端测试——原生文件验证
测试 CLI 生成的项目文件是否格式正确:
- ODF 文件:验证 ZIP 结构、content.xml 合法性
- MLT XML:验证 XML schema、时间线逻辑
- SVG 文件:验证 XML 结构、属性完整性
第三层:端到端测试——真实后端验证
这是最关键的一层。 它调用真实的软件来渲染输出,然后验证结果:
# LibreOffice → 真实 PDF
def test_libreoffice_export():
result = invoke_cli(["export", "render", "output.pdf", "-p", "pdf"])
assert Path("output.pdf").exists()
with open("output.pdf", "rb") as f:
assert f.read(4) == b"%PDF" # 验证 PDF 魔术字节
第四层:CLI 子进程测试
通过 subprocess.run 调用已安装的命令,验证 JSON 输出格式:
$ cli-anything-gimp --json project new --width 1920 --height 1080
# 验证返回的是合法 JSON
测试结果汇总
┌──────────────────┬────────┬─────────────────────────────────────┐
│ 软件 │ 通过数 │ 测试分布 │
├──────────────────┼────────┼─────────────────────────────────────┤
│ gimp │ 107 │ 64 unit + 43 e2e │
│ blender │ 208 │ 150 unit + 58 e2e │
│ inkscape │ 202 │ 148 unit + 54 e2e │
│ audacity │ 161 │ 107 unit + 54 e2e │
│ libreoffice │ 158 │ 89 unit + 69 e2e │
│ zotero │ — │ 测试数未公开(支持文献导入/集合/引用)│
│ obs-studio │ 153 │ 116 unit + 37 e2e │
│ kdenlive │ 155 │ 111 unit + 44 e2e │
│ shotcut │ 154 │ 110 unit + 44 e2e │
│ openscreen │ 101 │ 78 unit + 23 e2e │
│ zoom │ 22 │ 22 unit + 0 e2e │
│ drawio │ 138 │ 116 unit + 22 e2e │
│ anygen │ 50 │ 40 unit + 10 e2e │
│ lldb │ 27 │ 23 unit + 4 e2e │
│ nsight-graphics │ 51 │ 46 unit + 5 e2e │
│ unrealinsights │ 50 │ 49 unit + 1 e2e │
│ sbox │ 244 │ 157 unit + 17 orchestrator + 50 e2e │
│ sketch │ 19 │ 19 jest (Node.js) │
├──────────────────┼────────┼─────────────────────────────────────┤
│ **合计(已公开)**│ **1,774** │ README 官方汇总数字 │
└──────────────────┴────────┴─────────────────────────────────────┘
说明: 上述 1,774 为 README 官方标注的汇总数字,涵盖 17 款已公开测试数的软件。Zotero CLI 已包含在仓库中但未列出具体测试数。测试类型包含单元测试(合成数据隔离验证)、端到端测试(真实文件 + 真实后端渲染)、编排测试和 Node.js 测试。
注意: 其中 506 项是端到端测试(含 19 项 Node.js 测试),需要真实安装对应的软件才能运行。如果你只想跑单元测试,大部分不需要外部依赖。另外,Zotero CLI 已包含在项目中(支持文献导入、集合管理、引用生成),但 README 未列出其具体测试数量,因此未计入上述汇总。
十、HARNESS.md:方法论才是灵魂
很多人看 CLI-Anything 只看到了"自动生成 CLI"这个表层能力。但我觉得这个项目最有价值的产出是 HARNESS.md——一份经过 18 款软件实战验证的方法论 SOP。
以下是我从 HARNESS.md 中提炼的几条关键经验,每一条都是踩过坑才总结出来的:
经验一:必须用真实软件
CLI 必须调用真实应用进行渲染。不能用 Pillow 替代 GIMP,不能自己写渲染器替代 Blender。
为什么?因为 GUI 应用的渲染管线是极其复杂的。以 GIMP 为例,它支持的图层混合模式有 20+ 种,滤镜链可以任意嵌套,色彩管理涉及 ICC Profile 转换。你用 Python 重写一遍?写到明年也写不完。
经验二:渲染鸿沟
GUI 应用在渲染时才应用特效。如果你的 CLI 操作了项目文件但用了简陋的导出工具,特效会被静默丢弃。
这是一个极其隐蔽的坑。你的 CLI 命令执行成功了,项目文件也生成了,但导出的图片/视频/音频可能丢失了所有特效——因为你的导出工具没有调用真实的渲染引擎。
经验三:滤镜转译
在不同格式间映射特效时(比如 MLT → ffmpeg),要注意:
- 重复滤镜需要合并
- 交错的流需要排序
- 参数空间可能不同(0-100 vs 0-255)
- 某些特效无法映射,需要降级处理
经验四:时间码精度
非整数帧率(如 29.97fps)会导致累积舍入误差。HARNESS.md 的建议是:
- 用
round()而非int() - 显示时用整数运算
- 测试中允许 ±1 帧容差
经验五:输出验证
永远不要因为进程退出码为 0 就信任导出成功。
要验证:
- PDF:检查
%PDF魔术字节 - ZIP/OOXML:验证 ZIP 结构
- 图片:检查像素分析
- 音频:检查 RMS 电平和时长
十一、踩坑与注意事项
根据社区反馈和我的实际测试,以下是使用 CLI-Anything 时需要注意的几个坑:
坑 1:Windows 用户需要额外配置
Claude Code 通过 bash 执行命令。Windows 用户必须安装 Git for Windows(包含 bash 和 cygpath)或使用 WSL,否则会出现 cygpath: command not found 错误。
坑 2:模型能力要求高
CLI-Anything 依赖前沿级别的模型才能可靠地生成 harness。官方推荐:
- Claude Opus 4.6
- Claude Sonnet 4.6
- GPT-5.4
较弱的模型可能会生成不完整或有误的 CLI,需要大量人工修正。
坑 3:单次生成不一定完整
/cli-anything 一次运行不一定能覆盖软件的所有功能。通常需要执行一次或多次 /refine 命令来扩展覆盖面:
# 全面优化
/cli-anything:refine ./gimp
# 定向优化
/cli-anything:refine ./gimp "图像批处理和滤镜"
坑 4:需要源码
/cli-anything 基于源码进行分析和生成。如果目标软件只有编译后的二进制文件(如 Photoshop),harness 的质量和覆盖率会显著下降。开源软件是最佳选择。
坑 5:插件加载失败
如果 Unknown skill: cli-anything 错误,排查步骤:
- 重新加载插件:
/reload-plugins - 验证插件是否加载:
/help cli-anything - 重新安装:
/plugin marketplace add HKUDS/CLI-Anything /plugin install cli-anything
十二、适用场景与局限性
最适合的场景
| 场景 | 为什么适合 |
|---|---|
| 🎨 创意工作流 | 图像编辑、3D 建模、视频剪辑、音频处理——这些软件功能复杂,CLI 能完整暴露 |
| 📊 办公自动化 | 文档格式转换、批量处理、报告生成——LibreOffice CLI 非常实用 |
| 🔬 科研工作流 | 数据处理、仿真模拟、可视化——科学计算软件的 CLI 能大幅提效 |
| 🤖 Agent 评测 | 为 GUI 软件自动生成 Agent 任务、评测器和 Benchmark |
不太适合的场景
| 场景 | 原因 |
|---|---|
| 纯 Web 应用 | 本身就有 API,CLI-Anything 的优势不明显 |
| 闭源商业软件 | 没有源码,生成质量会下降 |
| 简单工具 | 功能太少的软件,CLI 的价值有限 |
十三、横向对比:CLI-Anything vs 其他方案
这是我整理的一个全面对比,帮你快速判断 CLI-Anything 是否适合你的场景:
| 维度 | CLI-Anything | GUI Agent (RPA) | MCP 协议 | 功能重写 |
|---|---|---|---|---|
| 功能完整性 | ✅ 100%(调用真实软件) | ❌ 约 30% | ⚠️ 取决于实现 | ❌ 约 10% |
| 稳定性 | ✅ 确定性输出 | ❌ 界面一改就崩 | ⚠️ 规范太重 | ✅ 可控 |
| 开发成本 | ✅ 全自动 | ❌ 逐个适配 | ❌ 需要专用 API | ❌ 天文数字 |
| Agent 兼容性 | ✅ 通用 CLI | ❌ 需要截图能力 | ⚠️ 需要 MCP 客户端 | ✅ 通用 |
| 维护成本 | ✅ 低 | ❌ 极高 | ⚠️ 中等 | ❌ 极高 |
| 学习曲线 | ⚠️ 中等 | ✅ 低 | ⚠️ 中等 | ❌ 高 |
| 实时交互 | ✅ REPL | ✅ GUI | ⚠️ 有限 | ❌ 无 |
十四、我的总结与思考
CLI-Anything 做对了什么?
-
抓住了时代痛点。 Agent 的瓶颈不在推理,而在"手脚"。CLI-Anything 直接解决了这个问题。
-
选择了正确的接口范式。 CLI 不是新东西,但在 Agent 时代,它被重新发现了。简洁、结构化、自描述——完美匹配 LLM 的工作方式。
-
方法论比工具更重要。 HARNESS.md 记录的不是代码,而是"如何为任意软件设计 CLI"的方法论。这个方法论可以被复用、被改进、被社区共建。
-
平台无关的设计。 不绑定 Claude Code,不绑定 OpenClaw,任何支持命令行的 Agent 框架都能用。这才是基础设施该有的样子。
我的建议
-
如果你是 Agent 开发者: CLI-Anything 的方法论(HARNESS.md)值得深入研究。即使你不用这个工具,它的设计思想也对你有启发。
-
如果你是普通用户: 从 Claude Code + 插件市场安装开始,体验最顺滑。先试 LibreOffice 或 GIMP 的 CLI,这两个最成熟。
-
如果你是开源贡献者: CLI-Hub 欢迎你提交新的 CLI。按照 HARNESS.md 的方法论,为你的软件生成一个 CLI,然后提交 PR。
一句话总结
今天的软件为人而生,明天的用户是 Agent。CLI-Anything 是连接两者之间的桥梁。
1.11亿条引用审计:14.7万条是假的——深度解析ARS如何用「人在回路」终结AI论文幻觉