CLI-Anything
一、项目概述
CLI-Anything 是由香港大学数据科学实验室(HKUDS)开发的开源项目,核心目标是让所有软件都能被AI Agent原生调用。项目口号:'Today's Software Serves Humans 👨💻. Tomorrow's Users will be Agents 🤖'
| 项目指标 |
|---|
CLI-Anything 一、项目概述 **CLI-Anything** 是由香港大学数据科学实验室(HKUDS)开发的开源项目,核心目标是**让所有软件都能被AI Agent原生调用**。项目口号:'Today's Software Serves Humans 👨💻. Tomorrow's Users will be Agents 🤖' | 项目指标 | 数值 | | --- | ---…
CLI-Anything 是由香港大学数据科学实验室(HKUDS)开发的开源项目,核心目标是让所有软件都能被AI Agent原生调用。项目口号:'Today's Software Serves Humans 👨💻. Tomorrow's Users will be Agents 🤖'
| 项目指标 |
|---|
| 数值 |
|---|
| Stars | 1.1k |
| Forks | 110 |
| Watchers | 7 |
| 主要语言 | Python (99.7%) |
| 测试通过率 | 100% (1,436 tests) |
| 痛点 | 具体表现 |
|---|---|
| AI无法使用真实工具 | 现有方案要么是脆弱的UI自动化,要么是功能阉割的重新实现 |
| UI自动化不可靠 | 截图、点击、RPA等方式容易崩溃 |
| Agent需要结构化数据 | 缺乏标准化的输出格式 |
| 定制集成成本高 | 每个软件都需要单独开发接口 |
| 原型与生产差距大 | 缺乏真实软件验证 |
核心洞察:CLI(命令行界面)是人类和AI Agent的通用接口
--help 标志提供自动文档,Agent可自动发现/cli-anything <software-path-or-repo> ↓ 1. 🔍 Analyze(分析)— 扫描源代码,映射GUI动作到API 2. 📐 Design(设计)— 架构命令组、状态模型、输出格式 3. 🔨 Implement(实现)— 构建Click CLI,含REPL、JSON输出、撤销/重做 4. 📋 Plan Tests(规划测试)— 创建TEST.md,含单元测试+E2E测试计划 5. 🧪 Write Tests(编写测试)— 实现全面测试套件 6. 📝 Document(文档)— 更新TEST.md结果 7. 📦 Publish(发布)— 创建setup.py,安装到PATH
| 原则 | 说明 |
|---|---|
| 真实软件集成 | CLI必须调用实际应用进行渲染,不是替代而是封装 |
| 灵活交互模式 | 有状态REPL + 子命令接口,裸命令进入REPL模式 |
| 一致用户体验 | 统一REPL界面(repl_skin.py),品牌横幅、样式提示、命令历史 |
| Agent原生设计 | 内置--json标志,标准--help和which命令发现能力 |
| 零妥协依赖 | 真实软件是硬性要求,缺失时测试失败而非跳过 |
| 软件 | 领域 | CLI命令 | 后端技术 | 测试数 |
|---|---|---|---|---|
| 🎨 GIMP | 图像编辑 | cli-anything-gimp | Pillow + GEGL/Script-Fu | 107 |
| 🧊 Blender | 3D建模与渲染 | cli-anything-blender | bpy (Python脚本) | 208 |
| ✏️ Inkscape | 矢量图形 | cli-anything-inkscape | 直接SVG/XML操作 | 202 |
| 🎵 Audacity | 音频制作 | cli-anything-audacity | Python wave + sox | 161 |
| 📄 LibreOffice | 办公套件 | cli-anything-libreoffice | ODF生成 + 无头LO | 158 |
| 📹 OBS Studio | 直播与录制 | cli-anything-obs-studio | JSON场景 + obs-websocket | 153 |
| 🎞️ Kdenlive | 视频编辑 | cli-anything-kdenlive | MLT XML + melt渲染器 | 155 |
| 🎬 Shotcut | 视频编辑 | cli-anything-shotcut | 直接MLT XML + melt | 154 |
| 📐 Draw.io | 图表绘制 | cli-anything-drawio | mxGraph XML + draw.io CLI | 138 |
| 总计 | 1,436 |
测试构成:1,011单元测试 + 425 E2E测试,100%通过率
# 添加市场 /plugin marketplace add HKUDS/CLI-Anything # 安装插件 /plugin install cli-anything # 一键生成CLI(以GIMP为例) /cli-anything ./gimp
git clone https://github.com/HKUDS/CLI-Anything.git cp-r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything /reload-plugins
# 安装到PATHcd gimp/agent-harness && pip install-e.# 查看帮助 cli-anything-gimp --help# 创建项目 cli-anything-gimp project new --width1920--height1080-o poster.json # JSON模式(供Agent使用) cli-anything-gimp --json layer add-n"Background"--type solid --color"#1a1a2e"# 进入交互式REPL cli-anything-gimp
| 命令 | 功能 |
|---|---|
/cli-anything <path-or-repo> | 完整构建CLI(全部7阶段) |
/cli-anything:refine <path> [focus] | 优化现有CLI,扩展覆盖范围 |
/cli-anything:test <path-or-repo> | 运行测试并更新TEST.md |
/cli-anything:validate <path-or-repo> | 按HARNESS.md标准验证 |
cli-anything/ ├── 📄 README.md / README_CN.md # 中英文档 ├── 📁 assets/ # 图标、演示图 ├── 🔌 cli-anything-plugin/ # Claude Code插件 │ ├── HARNESS.md # 方法论SOP(核心文档) │ ├── QUICKSTART.md # 5分钟快速开始 │ ├── PUBLISHING.md # 发布指南 │ ├── repl_skin.py # 统一REPL界面 │ └── commands/ # 插件命令定义 │ ├── cli-anything.md │ ├── refine.md │ ├── test.md │ └── validate.md ├── 🎨 gimp/agent-harness/ ├── 🧊 blender/agent-harness/ ├── ✏️ inkscape/agent-harness/ ├── 🎵 audacity/agent-harness/ ├── 📄 libreoffice/agent-harness/ ├── 📹 obs-studio/agent-harness/ ├── 🎞️ kdenlive/agent-harness/ ├── 🎬 shotcut/agent-harness/ └── 📐 drawio/agent-harness/
每个agent-harness/包含:
cli_anything.<software>/)repl_skin.py和后端包装器)HARNESS.md是项目的标准操作程序(SOP),编码了通过自动化生成流程提炼的成熟模式。
| 教训 | 详细说明 |
|---|---|
| 使用真实软件 | CLI必须调用实际应用渲染,不能用Pillow替代GIMP,不能用自定义渲染器替代Blender |
| 渲染差距问题 | GUI应用在渲染时才应用效果,若CLI操作项目文件但使用简单导出工具,效果会被静默丢弃 |
| 滤镜转换 | MLT→ffmpeg等格式映射时注意:重复滤镜合并、交错流排序、参数空间差异、不可映射效果 |
| 时间码精度 | 非整数帧率(29.97fps)导致累积舍入,用round()而非int(),显示用整数运算,测试容差±1帧 |
| 输出验证 | 不能因退出码0就信任导出成功,需验证:magic bytes、ZIP/OOXML结构、像素分析、音频RMS电平、时长检查 |
| 类别 | 如何Agent化 | 典型示例 |
|---|---|---|
| 📂 GitHub仓库 | 自动CLI生成将任何开源项目转为Agent可控工具 | VSCodium, WordPress, Calibre, Zotero, Joplin |
| 🤖 AI/ML平台 | 结构化命令自动化模型训练、推理流程、超参调优 | Stable Diffusion, ComfyUI, InvokeAI, Fooocus |
| 📊 数据分析 | 程序化数据处理、可视化、统计分析工作流 | JupyterLab, Superset, Metabase, DBeaver |
| 💻 开发工具 | 命令接口简化代码编辑、构建、测试、部署 | Jenkins, Gitea, Portainer, SonarQube |
| 🎨 创意媒体 | 程序化控制内容创作、编辑、渲染工作流 | Blender, GIMP, OBS, Krita, Kdenlive |
| 🔬 科学计算 | 自动化研究工作流、仿真、复杂计算 | ImageJ, FreeCAD, QGIS, ParaView, KiCad |
| 🏢 企业办公 | 将业务应用和生产力工具转为Agent可访问系统 | NextCloud, GitLab, Grafana, LibreOffice, ERPNext |
| 📐 图表可视化 | 程序化创建和操作图表、流程图、架构图 | Draw.io, Mermaid, PlantUML, Excalidraw |
| ✨ AI内容生成 | 通过AI云API生成专业交付物(幻灯片、文档、图表) | AnyGen, Gamma, Beautiful.ai, Tome |

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online