你有没有遇到过这种情况:让AI帮你做个视频剪辑,或者批量处理一堆图片,结果它的操作方式是:截屏,识别按钮位置,模拟鼠标点击。这种方式的脆弱性显而易见——稍微换个分辨率就崩了,窗口弹出来挡住了关键按钮也崩了,软件更新了界面同样会崩。
之前尝试用各种 AI Agent 操控桌面软件时,最大的痛点就是GUI自动化太脆了。截图识别虽然能用,但那种体验实在是一言难尽。最近,香港大学数据智能实验室(HKUDS)在GitHub上开源了一个名为 CLI-Anything 的项目,提供了一种截然不同的思路。它的口号是“Making ALL Software Agent-Native”,翻译过来就是:通过一条命令,将任何软件变成AI能直接操控的命令行工具。这个项目的热度增长迅猛,短短时间内就从几千星飙升至近万星,值得我们深入了解一下。

CLI-Anything 是什么?
简单来说,CLI-Anything 是一个自动化流水线工具。它要解决的核心问题,就是让AI Agent不通过脆弱的GUI截图点击,而是通过稳定、结构化的命令行(CLI)来直接操控桌面软件。
它的工作流程非常直接:你将任何一个软件的源代码路径提供给CLI-Anything,它会自动运行一个七阶段的流水线,最终生成一套完整的、专为该软件定制的命令行工具集。这套生成的CLI具备几个关键特性:
- 结构化JSON输出:每条命令都支持
--json 参数,AI可以直接解析返回的结构化数据,无需再对截图进行OCR识别和猜测。
- 双模式运行:支持REPL(交互式)模式,像聊天一样逐步操作;也支持子命令模式,一条指令直接完成复杂任务。
- 状态管理:内置撤销/重做功能,项目状态持久化,操作可回退。
- 真实文件生成:它并非模拟行为,而是真实调用底层软件。例如,用LibreOffice生成PDF,用Blender渲染3D场景,用Audacity处理音频。
核心技术:七阶段全自动流水线
这是整个项目最核心的技术部分。当你将一个软件的源代码丢给CLI-Anything后,它会自动执行以下七个步骤:
- 代码库分析:分析软件架构和数据模型。
- CLI设计:将GUI操作逻辑映射成命令行命令结构。
- 实现:编写核心模块,处理状态管理等。
- 测试规划:设计单元测试。
- 测试实现:编写并执行测试。
- 测试文档化:生成测试文档。
- 发布:打包并准备发布,可通过
pip install 直接安装使用。
整个过程是全自动的。你只需要输入一条命令,例如:
/cli-anything ./gimp
等待流水线执行完毕,你就拥有了一个功能完整的GIMP命令行工具。这个思路相当“暴力”——它直接从源代码层面理解软件能做什么,而不是通过API或界面模拟。

已验证的覆盖范围与可靠性
目前,该项目已成功为11款主流的开源桌面软件生成了可用的CLI,涵盖了图像编辑、3D建模、音视频处理、办公套件等多个领域。

更令人信服的是其测试数据:总计 1,508个测试(包含1,011个单元测试和425个端到端测试),实现了100%的通过率。这强有力地证明了该项目并非“玩具”或概念验证,而是经过了严格测试、真正可用的生产级工具。生成的CLI功能也相当全面,例如LibreOffice CLI可以操控Writer、Calc、Impress,OBS Studio CLI能控制流媒体场景。
安装与使用指南
对于 Claude Code 用户,这是最简便的体验方式:
方式一:通过插件市场安装(推荐)
- 添加市场源:
# Add the CLI-Anything marketplace
/plugin marketplace add HKUDS/CLI-Anything
- 安装插件:
# Install the cli-anything plugin from the marketplace
/plugin install cli-anything
-
使用命令构建CLI:
# /cli-anything:cli-anything <software-path-or-repo>
# Generate a complete CLI for GIMP (all 7 phases)
/cli-anything:cli-anything ./gimp
# Note: If your Claude Code is under 2.x, use "/cli-anything" instead.
-
可选:对生成的CLI进行完善或改进:
# Broad refinement — agent analyzes gaps across all capabilities
/cli-anything:refine ./gimp
# Focused refinement — target a specific functionality area
/cli-anything:refine ./gimp "I want more CLIs on image batch processing and filters"
方式二:手动安装插件
git clone https://github.com/HKUDS/CLI-Anything.git
cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything
然后在Claude Code中执行 /reload-plugins 即可。
使用生成的CLI
无论采用哪种安装方式,生成CLI后,进入对应目录安装即可使用:
# Install any generated CLI
cd <software>/agent-harness
pip install -e .
# Verify
which cli-anything-<software>
# Use
cli-anything-<software> --help
cli-anything-<software> # enters REPL
cli-anything-<software> --json <command> # JSON output for agents
运行测试以确保一切正常:
# Run tests for a specific CLI
cd <software>/agent-harness
python3 -m pytest cli_anything/<software>/tests/ -v
# Force-installed mode (recommended for validation)
CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything/<software>/tests/ -v -s
CLI模式为何优于传统截图模式?
我们来理清两者的本质区别:
- 传统截图流(GUI自动化):AI截屏 -> OCR识别界面元素 -> 计算坐标 -> 模拟鼠标点击。问题:高度依赖屏幕分辨率、窗口位置、软件界面版本,任何一个因素变化都可能导致流程崩溃。
- CLI流(CLI-Anything):AI发送结构化命令 -> CLI工具调用软件底层功能 -> 返回结构化JSON结果。优势:完全不依赖图形界面,不怕分辨率或UI改动,输出可直接被程序解析,稳定性和可靠性大幅提升。

例如,使用 cli-anything-blender --json scene list 命令,返回的是清晰的JSON格式场景列表,AI Agent可以直接使用。这远比让AI去分析一张Blender的截图并猜测有哪些场景要高效和准确得多。--json 参数的设计非常巧妙,实现了人机两用:人类用户看的是格式化的表格,机器处理的是结构化数据。
项目的局限性
在肯定其价值的同时,也需了解当前的边界:
- 需要本地安装真实软件:CLI-Anything不是模拟器。要操控Blender,本地必须安装Blender。这是其“零妥协”设计哲学的一部分,确保功能的真实性。
- 依赖软件源代码:目前主要针对开源软件。像Photoshop、Final Cut Pro这类闭源商业软件,由于无法获取源代码,暂时无法使用此方案。
- 并非万能:对于一些结构特别简单或特殊的软件,其七阶段流水线可能无法完美适配。项目Issue区显示,曾有用户尝试包装gedit失败。目前成功案例都是代码结构相对规范的大型开源软件。官方也建议,首次生成后可以运行
/refine 命令进行多次迭代,以提升功能覆盖率。
- 处于快速成长期:作为一个近万星的热门 开源项目,它仍在快速迭代中。这意味着API可能发生变化,文档可能不完善,使用者需要有一定的踩坑心理准备。
意义与展望
CLI-Anything 代表了一个重要的方向转变:AI Agent与软件的交互方式,正从脆弱的GUI自动化转向稳定、原生的CLI交互。
此前,让AI操控软件要么依赖专门开发的API(极少软件提供),要么采用GUI自动化。CLI-Anything 开辟了 第三条道路:自动将软件“翻译”成CLI。这对于AI Agent生态意义重大,理论上,任何开源软件都可以通过这种方式无缝接入AI的工作流,而无需软件开发者做任何专门适配。
想象一下这个场景:AI Agent通过一条命令让Blender渲染场景,再一条命令让Stable Diffusion生成贴图,接着用Inkscape处理矢量元素,最后用LibreOffice生成项目报告。整个过程没有一次截图点击,完全基于结构化命令和数据交互,稳定且高效。这才是Agent操控软件应有的形态。
总结与建议
- Claude Code用户:强烈建议直接尝试。安装简单,可以快速体验AI通过命令行操控Blender或GIMP的感觉,成本极低。
- 有批量自动化需求者:如果你经常需要批量处理图片、视频或文档,这个工具提供的CLI化思路比传统截图自动化方案稳定得多,值得深入研究。
- 观望者:可以持续关注这个项目。随着生态的成熟和更多软件的适配,其应用场景会越来越广泛。
让AI通过截图操控软件,本质上是用一种笨拙的方式(看屏幕猜按钮)去完成本该高效的任务。直接发送精确的指令才是更合理的路径。CLI-Anything 可能不是最终的完美形态,但它无疑指向了正确的方向。你对AI操控桌面软件有哪些想法或踩坑经历?欢迎在技术社区进行交流。
项目地址:https://github.com/HKUDS/CLI-Anything
本文介绍的 CLI-Anything 是AI Agent工具链领域的一个有趣实践。对于此类前沿技术动态和开源项目解读,云栈社区 的开发者们也在持续关注和讨论。如果你对人工智能、自动化以及更多开源实战内容感兴趣,不妨来社区一起交流探讨。