CLI-Anything:让所有软件成为AI代理的“原生应用”
AI代理能写代码、能聊天,但面对专业软件(如GIMP、Blender、LibreOffice)却束手无策。
大语言模型的推理能力日新月异,但在“使用真实软件”这件事上,进展却异常缓慢。我们期望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)等多个领域。
为什么是CLI?——代理优先的设计哲学
CLI(命令行界面)看似古老,却是目前最适合AI代理的交互方式:
-
结构化:命令、参数、选项天然适配LLM的文本生成格式,可组合成复杂工作流。
-
轻量通用:无需GUI、无需浏览器,任何系统都可运行。
-
自描述:
--help输出即时文档,代理可动态发现能力。 -
机器可读:内置
--json标志,输出结构化数据,消除解析误差。 -
确定可靠:无随机漂移,结果可复现,代理行为可预测。
CLI-Anything生成的每一个CLI都具备这些特性,并且支持两种模式:
-
REPL交互模式:适合代理进行多步操作,保持状态。
-
单条命令模式:适合脚本和管道集成。
03
—
7阶段全自动生成管道
CLI-Anything的核心是一个7阶段自动化流程,它接收任意软件的源代码(或GitHub仓库),输出一个完整的、可安装的CLI工具包。
-
分析:扫描代码,识别API、数据模型、用户操作路径。
-
设计:规划命令分组、状态模型、输出格式。
-
实现:用Python Click构建CLI,集成REPL、JSON输出、撤销/重做。
-
测试计划:生成
TEST.md,规划单元测试和端到端测试。 -
编写测试:自动实现测试代码,覆盖核心功能。
-
文档:更新测试结果到
TEST.md,生成使用说明。 -
发布:创建
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
--json模式供代理消费。07
—
软件“代理原生”的概念,是该认真对待了
-
CLI-Anything不仅仅是一个技术项目,它预示着一个新范式:未来,软件的设计不再只为人类服务,还要为AI代理“原生”考虑。
当然,这条路还有挑战:
-
生成质量依赖大模型能力(当前需Claude Opus/GPT-5级别模型)。
-
需要软件源代码,闭源软件需另寻他法(如API包装)。
-
单次生成可能不够完善,需多次迭代(
/refine命令可针对性增强)。 -
系统资源负担不容忽视。
-
对开发者:只需维护一份源代码,无需为每个AI平台单独开发接口。
-
对AI代理:可以像人类一样调用任何工具,完成复杂任务。
-
对用户:AI能真正“帮我们干活”,操作我们日常使用的专业软件。
但CLI-Anything已经证明了可行性:13款软件,1588项测试,100%通过。这是一个起点,一个让所有软件都能被AI代理使用的起点。
夜雨聆风