📌 项目地址:HKUDS/CLI-Anything | ⭐ 36,090 颗星 | 🔧 Python | 📜 未标注
AI操作软件为什么总卡在接口上
目前让AI代理操作本地软件,做法大致分两类。
一类是截图识别+模拟鼠标键盘。问题很清楚:窗口位置一变、分辨率不同、按钮样式微调,代理就找不到目标。更麻烦的是,AI拿不到软件内部状态——它以为点了保存,实际文件写失败了它也不知道。
另一类是调用软件API。这个办法靠谱,但每款软件API都不一样。更现实的问题是,很多软件根本没有开放API。CAD、游戏编辑器、专业音视频工具这些,交互界面是给人设计的,不是给程序调的。
CLI-Anything的思路很直接:给每款桌面软件包一层命令行接口。AI代理不看屏幕截图,只处理标准输入输出。文本是AI处理能力最强的模态,这条路线选得有道理。
两个核心组件:CLI-Hub和Harness
项目由两部分构成。
CLI-Hub是社区维护的CLI封装注册中心。安装后可以浏览、安装、管理所有社区贡献的CLI封装:
pip install cli-anything-hub
cli-hub install
这些封装可以直接对接Pi、OpenClaw、nanobot、Cursor、Claude Code等AI代理。
Harness是适配层,一个Python脚本,负责把GUI操作转成统一的CLI调用。实现方式不限——可以用pyautogui模拟点击,也可以直接调软件的底层库(比如Calibre的Python接口、Sketch的AppleScript)。但对AI来说,这些细节是黑盒,它只收参数、发指令、读返回值。输出格式统一成JSON、CSV或纯文本。
如果有人想为某款软件建立封装,可以提wishlist请求。想自己写封装,用贡献者注册模板登记,然后提交PR,流程文档里有步骤。
社区治理:测试覆盖和安全加固是硬门槛
翻看项目2026年5月的更新记录,几个提案和合并案例能看出团队对封装质量的控制。
Joplin CLI(#300) 5月20日提案。支持笔记、待办、标签、附件、搜索同步、导入导出、端到端加密。提案附带134个测试基线——每个功能路径和边界都测过。配套完整文档和打包的技能说明。
Calibre CLI(#223) 覆盖库管理、搜索、元数据、格式转换、导出。41个单元测试。提案特别注明提供的是真实Calibre端到端测试的证据,不是在mock环境里跑通的。实际环境验证和模拟测试差距很大。
Rekordbox CLI(#252) 封装DJ软件Rekordbox。写入路径用SQLCipher加密保护,强制写操作前必须备份。DJ现场演出数据不可逆,备份是基础防护。
Sketch CLI(#304) 对token文件处理做了路径遍历和符号链接逃逸防护。如果封装有漏洞,AI代理可能被恶意诱导读写不该访问的文件。
3MF CLI(#209) 处理3D模型格式3MF,覆盖网格检查、孔洞调整、修复、比较、保留三角形属性。
Obsidian Agent CLI(#307) 除了基础笔记操作,增加了持久代理记忆工作流。
此外,Hermes技能(#320)在开发中,用于增加CLI编排能力,配合安装脚本和Harness回退指导。ArcGIS Pro(#318)也进入议程,作为Windows/ArcPy CLI服务制图、地理处理、要素编辑。
为什么测试和安全如此重要
AI代理通过CLI操作本地软件,获取的是用户级别的系统权限。如果底层封装有路径遍历漏洞,恶意代码可以绕过限制。Sketch CLI对token文件做的加固属于基础防护。这个问题不是假设——GitHub上已有相关的安全议题被提出和修复 [1]。
输出格式必须稳定,错误提示必须明确,边界情况必须覆盖。Joplin那134个测试不是为了凑数量,是为了降低AI代理出错时无声失败的概率。AI代理如果读错一个JSON输出,可能以为操作成功,实际上什么都没发生。一个错误被吞掉,比错误本身更麻烦。
三个观察
第一,CLI-Anything把“给软件做CLI封装”这件事做成了社区协作。不是每个开发者都懂如何让AI代理操作软件,但懂某款软件的开发者可以只贡献一个CLI封装。这个拆解降低了参与门槛。
第二,AI代理目前的能力瓶颈不在模型本身,在它能操作的软件范围。文字对话、联网搜索这些已够用,但要让代理替人完成复杂的本地软件操作——CAD建模、剪辑视频、管理数据库——它需要可靠、统一的接口。CLI-Anything提供的就是这层接口。
第三,这类项目可能会改变软件设计的思路。当AI代理成为软件的用户,软件需要的不是更花哨的UI,而是更干净的CLI接口。README项目介绍里有一句话:“Today‘s Software Serves Humans. Tomorrow’s Users will be Agents.“ 这句话不是威胁,是提示。
快速上手指南
如果你在开发AI代理,或者有常用桌面软件想让AI能用,直接安装CLI-Hub。
pip install cli-anything-hub
cli-hub install
装完之后浏览社区,挑需要的封装试试。README里提供了Real-World Demos链接,演示AI用这些CLI配合预览、实时预览、轨迹循环,生成CAD模型、3D场景、图表、游戏画面、字幕等。
不是所有软件都有封装。社区每天在增长。也可以提wishlist,或者自己写一个。
CLI-Anything有个特点:它不要求软件开发者额外做任何事,只要求社区帮它包一层接口。这个模式能不能跑通,取决于有多少人愿意为“自己的软件”写这个封装。
[1] 参见CLI-Anything Issues #304“Sketch CLI token-file handling hardened against path traversal and symlink escapes”。
===
标签:AI代理, 命令行界面, 社区驱动, 软件封装