Claude Code 能写代码、读文件、分析需求,但面对 GIMP、Blender、draw.io 这类桌面软件,它只能"望洋兴叹"——这些软件没有 AI 可以调用的接口,只有为人类设计的图形界面。CLI-Anything 就是为打破这道墙而生的,它能把任何有源码的软件,自动生成一套 AI Agent 可以直接调用的命令行接口。
什么是 CLI-Anything?
CLI-Anything 是一个开源的 Claude Code 插件,通过全自动的 7 阶段流水线,将 GIMP、Blender、LibreOffice、draw.io 等任意有源码的软件转化为 CLI 工具,让 Claude Code 通过结构化命令和 JSON 输出来直接控制它们。
项目来自香港大学数据智能实验室(HKUDS),发布后迅速积累了数万 GitHub Star,在开发者社区引发广泛关注。
核心思路其实很简单:CLI 是人和 AI 都能用的接口。 文本命令天然适合大模型,--help 让AI自己探索工具能力,--json 输出方便AI 解析,工作流随便组合。
为什么需要它?
比如你想让 Claude Code 帮你画一个 draw.io 的架构图,你懵了,它也懵了。 根本原因是——draw.io 是个 GUI 软件,没有对外暴露任何 Claude Code 能调用的接口,只有一堆按钮和菜单。没有足够的工具支撑它去操作draw.io。 如何实现呢?有两种方法:
一种是截图识别,让 AI 实时截屏、AI识别并猜界面元素在哪、模拟鼠标点击。这种方式不仅慢还消耗Token。
另一种是找软件的脚本接口,像 LibreOffice 有宏、Blender 有 Python API。但这需要你对每款软件都吃得很透,写起来也繁琐,不是每款软件都有,draw.io 就没有现成的。
但是CLI-Anything 不太一样,它换了个思路:它是基于软件的源码进行分析,搞清楚 GUI 背后实际在调用哪些函数,然后直接生成一套命令行接口对接这些函数。Claude Code 发命令,draw.io 在后台干活,结果和你手动操作完全一样——因为调用的就是同一套引擎。
安装
在 Claude Code 中执行:
# 第一步:添加 CLI-Anything 插件市场/plugin marketplace add HKUDS/CLI-Anything# 第二步:安装插件/plugin install cli-anything也可以在Claude Code中交互式安装。

无需任何额外配置,装完即用。
插件命令
/cli-anything <软件路径或仓库> | |
/cli-anything:refine <软件路径> [聚焦方向] | |
/cli-anything:test <软件路径或仓库> | |
/cli-anything:validate <软件路径或仓库> | |
/cli-anything:list |
使用示例
draw.io 是开发和架构团队最常用的绘图工具。如果把 draw.io 变成 CLI 用cli-anything只需执行:
#参数 仓库地址 或 文件路径, 如果是仓库地址会先Clone到本地。/cli-anything:cli-anything https://github.com/jgraph/drawio然后会触发完整的流水线:
获取源码 - 如果是仓库地址会先Clone到本地 源码分析 — 扫描源码,将 GUI 操作映射到 API 架构设计 — 决定交互模式(REPL/子命令/BOTH)规划命令分组、状态模型、输出格式: --json代码实现 — 从数据层开始,依次实现查询命令、变更命令、真实软件后端集成、导出渲染管道、会话管理,最后加上统一 REPL 交互界面。核心原则:必须调用真实软件,不允许用 Python 重新实现其功能 规划测试 — 在写任何测试代码之前,先产出一份 TEST.md,列出测试文件、覆盖模块、边界用例和端到端工作流场景,作为后续实现的蓝图 测试实现 — 按计划写代码:单元测试(隔离、无外部依赖)→ 中间文件结构验证 → 调用真实软件的 E2E 测试 → CLI 子进程测试。输出文件必须做格式验证(magic bytes、ZIP 结构等),不能仅凭"无报错"判断成功。 测试结果归档 — 将完整测试输出追加到 TEST.md 中;同时生成 SKILL.md,描述 CLI 的能力和用法,供 AI Agent 在运行时自动发现和调用。 发布 — 生成 setup.py,安装CLI到本地,也可以发布到PyPI。采用命名空间,多个CLI多个 CLI 工具可在同一Python环境中共存。 最终执行完毕会在基于HARNESS.MD提示词的约束创建如下的目录结构:
<software>/└── agent-harness/ ├── <SOFTWARE>.md # Project-specific analysis and SOP ├── setup.py # PyPI package configuration (Phase 7) ├── cli_anything/ # Namespace package (NO __init__.py here) │ └── <software>/ # Sub-package for this CLI │ ├── __init__.py │ ├── __main__.py # python3 -m cli_anything.<software> │ ├── README.md # HOW TO RUN — required │ ├── <software>_cli.py # Main CLI entry point (Click + REPL) │ ├── core/ # Core modules (one per domain) │ │ ├── __init__.py │ │ ├── project.py # Project create/open/save/info │ │ ├── ... # Domain-specific modules │ │ ├── export.py # Render pipeline + filter translation │ │ └── session.py # Stateful session, undo/redo │ ├── utils/ # Shared utilities │ │ ├── __init__.py │ │ ├── <software>_backend.py # Backend: invokes the real software │ │ └── repl_skin.py # Unified REPL skin (copy from plugin) │ └── tests/ # Test suites │ ├── TEST.md # Test documentation and results — required │ ├── test_core.py # Unit tests (synthetic data) │ └── test_full_e2e.py # E2E tests (real files) └── examples/ # Example scripts and workflowsCLI-Anything Hub,任何人都可以通过 PR 提交新的 CLI,社区可以直接浏览安装。提供了许多功能完备,测试充分,可以生产环境可用的CLI, 当我们安装完插件后,可以看到目录~/.claude/plugins/marketplaces/cli-anything/就有很多可以直接用的CLI了,Draw.io便是其中之一,它的目录结构如图:
为了节省Token,就不必重复造轮子了,我们可以直接使用。
第一步:先安装,使用CLI-Anything Hub 的命令行:
pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=drawio/agent-harness也可以从插件目录中自行安装。
cd ~/.claude/plugins/marketplaces/cli-anything/drawio/agent-harnesspip install -e .# 校验cli-anything-drawio --help在 Claude Code 中使用示例
提示词: 帮我画一个saas后端的架构图,使用 cli-anything-drawio, 使其具有视觉冲击力,参考我的绘图风格[Image #1]
执行过程:
最终结果:
整个过程 Claude Code 没有打开任何 GUI,没有截图,没有模拟鼠标点击,就是纯命令调用,结果生成的图也是非常的不错,稍加修改便能直接使用了。
但需要注意的是cli-anything-drawio明确指出
Note: The CLI can create and manipulate
.drawiofiles without the desktop app installed. The app is only needed for rasterized export (PNG, PDF, SVG).
没有安装draw.io的应用,不影响创建.drawio文件,但导出 PNG/PDF 这类操作会直接报错。
重要的事情
CLI-Anything 工作时需要两样东西同时到位,缺一不可。
第一:软件的源代码。 生成阶段,它会去读源码,分析 GUI 界面背后实际调用了哪些函数,再据此生成命令行接口。没有源码,它根本不知道该生成什么。所以它天然只支持开源软件,或者你自己公司的内部项目(源码在手)。闭源软件只有安装包、没有源码的,搞不了。
第二:软件本体要装好。 生成出来的 CLI 是个"壳",发命令时最终还是要调 draw.io、GIMP、LibreOffice 这些软件本身去干活的——就像快捷方式背后还是要有程序才能打开。如果软件没装,CLI 装好了也跑不起来。 简单说就是:源码用来生成接口,软件本体用来真正干活,两个都得有。 对于 Hub 里已经收录的软件(draw.io、GIMP、LibreOffice 等),CLI 已经有人生成好了,直接 pip install 拿来用就行,不用自己跑生成流程。但软件本体还是要根据需求进行安装的。
总结
想给新的软件生成 CLI,只需要把源码交给 cli-anything 分析,就能自动理解代码结构并生成可调用的命令行接口,整个过程非常便利,真的是非常的强大和实用。而且还可以在 Hub 中共享和复用别人已经生成好的 CLI,都是充分测试和验证过的,基本拿来就能用。
参考资料
CLI-Anything GitHub CLI-Anything Hub(官方注册表) CLI-Anything 官网 Claude Code 插件文档
-END -
如果您关注前端+AI 相关领域可以扫码进群交流

添加小编微信进群😊
关于奇舞团
奇舞团是 360 集团最大的大前端团队,非常重视人才培养,有工程师、讲师、翻译官、业务接口人、团队 Leader 等多种发展方向供员工选择,并辅以提供相应的技术力、专业力、通用力、领导力等培训课程。奇舞团以开放和求贤的心态欢迎各种优秀人才关注和加入奇舞团。

夜雨聆风