背景与核心思路

在 AI 快速发展的当下,一个核心矛盾日益凸显:AI 代理擅长逻辑推理,却难以操作真实世界的专业软件。传统解决方案要么依赖脆弱的 UI 自动化,要么需要重新实现简化版功能,往往丢失了软件 90% 的核心能力。CLI-Anything 正是为了解决这一问题而生。它是香港大学数据科学实验室(HKUDS)开发的一个开创性项目,核心价值在于弥合 AI 代理与专业软件之间的鸿沟。
其核心理念很简单:'一个命令行,让任何软件都支持 AI 代理'。通过将软件的图形界面功能映射为结构化的命令行接口,AI 代理可以像人类使用命令行一样,精确、可靠地控制 GIMP、Blender、LibreOffice 等复杂专业软件,而无需妥协功能完整性。CLI 具有结构化、可组合、轻量级、自描述等特性,完美匹配大型语言模型的文本处理能力。CLI-Anything 不是重新发明轮子,而是为现有软件构建'代理原生'的访问层,让 AI 能够直接调用软件的真实后端功能。
核心机制与功能
全自动七阶段流水线
CLI-Anything 的核心是一个完全自动化的七阶段生成流水线,能够将任何代码库转化为完整的命令行工具。这个过程确保了生成的 CLI 工具不仅功能完整,而且达到生产就绪的质量标准。
首先是分析阶段,扫描源代码,识别功能模块和 API 接口。接着进入设计阶段,架构命令分组、状态模型和输出格式。随后是实施阶段,构建基于 Click 的 CLI 框架,包含 REPL 交互、JSON 输出和撤销/重做功能。之后创建详细的测试计划,包含单元测试和端到端测试方案,并编写全面的测试套件以确保功能完整性。最后更新文档并记录结果,创建 setup.py 配置文件,安装到系统 PATH。
真实软件集成,零功能妥协
与简单的包装器不同,CLI-Anything 生成的是能够调用真实软件后端的完整接口。生成的 CLI 创建有效的项目文件(如 ODF、MLT XML、SVG),然后调用实际应用程序进行渲染。不使用简化替代方案,如不用 Pillow 替代 GIMP,不用自定义渲染器替代 Blender,保持软件 100% 的专业能力,AI 代理可以访问所有高级功能。
双重交互模式
每个生成的 CLI 都支持两种使用方式,适应不同场景。运行基础命令进入交互式环境,提供品牌化横幅、样式化提示符、命令历史和进度指示,这是最直观的使用方式,特别适合探索性任务和复杂工作流。对于自动化和批处理任务,可以使用子命令模式,支持管道化和批处理,适合集成到更大的工作流中,或由其他脚本调用。所有 CLI 共享相同的 REPL 界面,确保一致的操作体验。
代理原生设计
专门为 AI 代理使用场景优化。每个命令都支持 --json 标志,为机器消费提供结构化数据。代理可以通过标准的 --help 和 which 命令发现工具功能。简单的 pip install -e . 安装后,CLI 工具直接出现在 PATH 中,代理可以立即使用。
生产级测试验证
CLI-Anything 采用多层测试策略,确保生成的工具稳定可靠。包括使用合成数据隔离测试每个核心功能的单元测试,验证项目文件生成管道的正确性的端到端测试(原生),以及调用真实软件并验证输出结果的端到端测试(真实后端)。通过 subprocess.run 验证安装的命令。目前已通过 9 个不同复杂开源应用的测试,总计 1,436 个测试全部通过,包括 1,011 个单元测试和 425 个端到端测试。
广泛的软件支持
项目已经成功为 9 个专业软件生成了完整的 CLI 接口,包括 GIMP 图像编辑、Blender 3D 建模与渲染、Inkscape 矢量图形、Audacity 音频制作、LibreOffice 办公套件、OBS Studio 直播录制、Kdenlive 视频编辑、Shotcut 视频编辑以及 Draw.io 图表绘制。
部署与配置指南
环境要求
CLI-Anything 主要设计为 Claude Code 插件,但生成的 CLI 工具可以独立使用。需要支持插件的 Claude Code 版本,Python 3.10+ 作为运行生成 CLI 的基本要求,目标软件已安装,以及网络连接用于从 GitHub 市场添加插件。
快速安装
这是最简单快捷的安装方式,通过 Claude Code 插件市场一键安装。首先在 Claude Code 会话中执行命令,添加 CLI-Anything 的 GitHub 市场源,这个市场包含了所有可用的 CLI 工具生成器。然后从已添加的市场中安装 cli-anything 插件。安装完成后,插件会立即在当前的 Claude Code 会话中可用。可以通过插件命令列表确认 cli-anything 插件已成功加载,现在可以使用 命令开始为任何软件生成 CLI 接口。

