乐于分享
好东西不私藏

CLI-Anything:让所有软件成为AI代理的“原生应用”

CLI-Anything:让所有软件成为AI代理的“原生应用”

AI代理能写代码、能聊天,但面对专业软件(如GIMP、Blender、LibreOffice)却束手无策。

我们需要一种方法,让任意软件都能被AI代理直接控制,且不牺牲任何功能。

大语言模型的推理能力日新月异,但在“使用真实软件”这件事上,进展却异常缓慢。我们期望AI代理能像人类一样操作GIMP修图、用Blender渲染3D场景、通过LibreOffice生成PDF报告——但现实是:

  • GUI自动化(截图+点击)脆弱易碎,界面稍有变化就失效;

  • API覆盖不全,许多专业软件只提供有限接口,90%的功能被锁死;

  • 重新实现功能成本极高,且永远追不上原软件的迭代速度。

结果是:AI代理被关在“沙箱”里,无法真正触及人类日常使用的专业工具。


01

CLI-Anything:一座桥,连接AI代理与全世界的软件

CLI-Anything 提出一个简单而深刻的思路:为任何软件自动生成一个结构化的命令行界面(CLI),让AI代理通过命令行与软件交互。

  • 对AI代理而言,CLI是天然接口:文本输入、结构化输出(JSON)、自带--help文档。

  • 对软件而言,只需有源代码,CLI-Anything就能分析其能力,生成完整的CLI工具,包含测试、文档、甚至AI可读的SKILL.md

目前,CLI-Anything已成功为 13款专业软件 生成CLI,并通过了 1588项测试,100%通过。支持的软件涵盖图像处理(GIMP)、3D建模(Blender)、办公套件(LibreOffice)、音视频编辑(Audacity、OBS Studio)、AI图像生成(ComfyUI)等多个领域。


02

为什么是CLI?——代理优先的设计哲学

CLI(命令行界面)看似古老,却是目前最适合AI代理的交互方式:

  • 结构化:命令、参数、选项天然适配LLM的文本生成格式,可组合成复杂工作流。

  • 轻量通用:无需GUI、无需浏览器,任何系统都可运行。

  • 自描述--help输出即时文档,代理可动态发现能力。

  • 机器可读:内置--json标志,输出结构化数据,消除解析误差。

  • 确定可靠:无随机漂移,结果可复现,代理行为可预测。

CLI-Anything生成的每一个CLI都具备这些特性,并且支持两种模式:

  • REPL交互模式:适合代理进行多步操作,保持状态。

  • 单条命令模式:适合脚本和管道集成。


03

7阶段全自动生成管道

CLI-Anything的核心是一个7阶段自动化流程,它接收任意软件的源代码(或GitHub仓库),输出一个完整的、可安装的CLI工具包。

  1. 分析:扫描代码,识别API、数据模型、用户操作路径。

  2. 设计:规划命令分组、状态模型、输出格式。

  3. 实现:用Python Click构建CLI,集成REPL、JSON输出、撤销/重做。

  4. 测试计划:生成TEST.md,规划单元测试和端到端测试。

  5. 编写测试:自动实现测试代码,覆盖核心功能。

  6. 文档:更新测试结果到TEST.md,生成使用说明。

  7. 发布:创建setup.py,将CLI安装到系统PATH。

还会生成SKILL.md——一个AI可读的技能定义文件,放在Python包内。当代理启动时,REPL横幅会显示该文件的绝对路径,代理可直接读取,知晓CLI的全部能力。


04

真实案例:从GIMP到Zoom,13款软件已就绪

总计 1,588 项测试,100%通过这些CLI不是玩具,它们能调用真正的软件后端(如LibreOffice无头模式、Blender的bpy、FFmpeg等),生成真实可用的文件。

例如,用cli-anything-libreoffice创建一个Writer文档并导出为PDF:

cli-anything-libreoffice document new -o report.json --type writercli-anything-libreoffice --project report.json writer add-heading -t "Q1报告" --level 1cli-anything-libreoffice --project report.json export render output.pdf -p pdf

AI代理可以轻松完成这一系列操作,就像人类打开LibreOffice一样。


05

架构原则:真实、一致、可测试

CLI-Anything的设计建立在几条核心原则上:

  • 真实软件集成:生成的CLI必须调用软件的真实后端(例如GIMP的GEGL/Script-Fu,Blender的bpy),绝不采用简化版替代。如果软件未安装,测试会失败(而非跳过),确保CLI的功能与原软件完全一致。

  • 一致的用户体验:所有CLI共享同一套REPL皮肤(repl_skin.py),提供统一的命令历史、进度提示、彩色输出,代理无需学习新界面。

  • 代理原生:每个命令都支持--json,输出结构化数据;--help输出标准格式;which命令可发现安装路径。

  • 多级测试:单元测试+端到端测试(真实软件调用)+ CLI子进程测试,三层保障确保生产可用。


06

架构原则:真实、一致、可测试

前提条件

  • Python 3.10+

  • 目标软件的源代码(本地路径或GitHub URL)

  • 一个支持的AI代理(如Claude Code)

在Claude Code中使用

# 添加CLI-Anything市场/plugin marketplace add HKUDS/CLI-Anything/plugin install cli-anything# 为GIMP生成CLI/cli-anything:cli-anything ./gimp

安装并使用生成的CLI

cd gimp/agent-harnesspip install -e .cli-anything-gimp --help
生成后的CLI会安装到系统PATH,可直接使用。REPL模式提供交互式会话,--json模式供代理消费。

07

软件“代理原生”的概念,是该认真对待了

  • CLI-Anything不仅仅是一个技术项目,它预示着一个新范式未来,软件的设计不再只为人类服务,还要为AI代理“原生”考虑。

    当然,这条路还有挑战:

    • 生成质量依赖大模型能力(当前需Claude Opus/GPT-5级别模型)。

    • 需要软件源代码,闭源软件需另寻他法(如API包装)。

    • 单次生成可能不够完善,需多次迭代(/refine命令可针对性增强)。

    • 系统资源负担不容忽视。

    • 对开发者:只需维护一份源代码,无需为每个AI平台单独开发接口。

    • 对AI代理:可以像人类一样调用任何工具,完成复杂任务。

    • 对用户:AI能真正“帮我们干活”,操作我们日常使用的专业软件。

但CLI-Anything已经证明了可行性:13款软件,1588项测试,100%通过这是一个起点,一个让所有软件都能被AI代理使用的起点。


GitHub仓库:
https://github.com/HKUDS/CLI-Anything