CLI-Anything:让 AI 智能体「驾驭」任何软件的终极 CLI 桥梁
CLI-Anything一键将GUI软件转化为AI可操控的命令,使 AI 智能体能够通过结构化命令操控软件,无需 GUI 介入
🚀 CLI-Anything
一句话定义:无需模型训练,一键将任意 GUI 软件转化为 AI 可操控的命令行工具
📖 目录
项目背景与定位
问题痛点
在 AI 辅助开发日益普及的今天,一个关键瓶颈始终存在:AI 智能体无法直接操控 GUI 软件。
传统解决方案存在明显缺陷:
- GUI 自动化(如 Selenium、PyAutoGUI):脆弱、易出错、难以调试
- API 封装:需要针对每个软件单独开发,工作量巨大
- 手动 CLI 开发:周期长、维护成本高、覆盖面有限
CLI-Anything 的解法
CLI-Anything 由香港大学数据科学研究所(HKUDS)研究团队开发,提出了一个革命性方案:
自动为任何软件生成标准化 CLI Harness(命令行封装层),使 AI 智能体能够通过结构化命令操控软件,无需 GUI 介入。
这是一种 Agent-Native CLI(智能体原生命令行) 理念——CLI 不再为人类设计,而是为 AI 智能体优化。
核心创新与价值
四大核心模块
| 模块 | 功能 | 技术实现 |
|---|---|---|
| 工具检索模块 | 从候选工具中选择相关 CLI | 基于语义匹配的动态发现 |
| 自动文档解析器 | 解析 man page、help 输出 | 从现有文档提取关键参数信息 |
| 动态 CLI 智能体 | 生成精确命令 | 基于文档理解的命令合成 |
| 输出解析器 | 解释执行结果 | 结构化结果提取与错误恢复 |
关键价值主张
┌─────────────────────────────────────────────────────────────┐
│ 传统方式 vs CLI-Anything │
├─────────────────────────────────────────────────────────────┤
│ 传统:开发者手动封装 → 单个软件 → 高成本 → 低覆盖率 │
│ CLI-Anything:自动生成管道 → 任意软件 → 零训练 → 全覆盖 │
└─────────────────────────────────────────────────────────────┘
Training-Free(无训练) 是其最大亮点——框架无需额外模型训练,直接利用现有 LLM 的理解能力工作。
技术架构深度解析
整体架构图
┌──────────────────────────────────────────────────────────────────────┐
│ CLI-Anything 架构 │
├──────────────────────────────────────────────────────────────────────┤
│ │
│ AI 编码代理 CLI-Anything 插件 目标软件 │
│ ┌─────────────┐ ┌─────────────────┐ ┌──────────────┐ │
│ │ Claude Code │────────▶│ 7阶段生成管道 │─────▶│ Blender │ │
│ │ Pi │ │ │ │ GIMP │ │
│ │ OpenCode │ │ ┌───────────┐ │ │ LibreOffice │ │
│ │ Codex │ │ │ Analyze │ │ │ OBS │ │
│ │ Copilot │ │ │ Design │ │ │ Audacity │ │
│ └─────────────┘ │ │ Implement │ │ │ QGIS │ │
│ │ │ Test │ │ │ Godot │ │
│ │ │ Document │ │ │ Stable │ │
│ │ │ Publish │ │ │ Diffusion │ │
│ │ └───────────┘ │ └──────────────┘ │
│ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 生成的 CLI包 │ │
│ │ cli-anything-* │ │
│ └─────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘
技术栈详情
| 组件 | 技术选型 | 版本要求 |
|---|---|---|
| 核心语言 | Python | ≥ 3.10 |
| CLI 框架 | Click | ≥ 8.0 |
| REPL 接口 | prompt_toolkit | 内置 |
| 测试框架 | pytest | 100% 通过率 |
| 包规范 | PEP 420 Namespace Package | 命名空间包 |
| LLM 后端 | Claude Opus/Sonnet 4.6+, GPT-5.4+ | 前沿模型要求 |
双交互模式设计
CLI-Anything 生成的 Harness 支持两种交互范式:
1. Stateful REPL(有状态交互式终端)
cli-anything-gimp
# 进入 REPL 模式,支持历史、补全、撤销/重做
>>> project new --width 1920 --height 1080
>>> layer add -n "Background" --type solid --color "#1a1a2e"
>>> export --format png output.png
2. Subcommand CLI(脚本化命令)
cli-anything-gimp project new --width 1920 --height 1080 -o poster.json
cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e"
# --json 输出结构化 JSON,供 AI 智能体解析
七阶段自动化管道
CLI-Anything 的核心是 7-Phase Pipeline——一套完整的 CLI 自动生成方法论。
Phase 1: ANALYZE ───────▶ 源码扫描,GUI动作→API映射
Phase 2: DESIGN ────────▶ 命令组架构、状态模型、输出格式设计
Phase 3: IMPLEMENT ─────▶ Click CLI + REPL + JSON输出 + Undo/Redo
Phase 4: PLAN TESTS ────▶ TEST.md 编写(单元+E2E测试计划)
Phase 5: WRITE TESTS ───▶ 测试套件实现
Phase 6: DOCUMENT ─────▶ TEST.md 更新测试结果
Phase 7: PUBLISH ──────▶ setup.py + PATH 安装
阶段详解
| 阶段 | 输入 | 输出 | 关键技术 |
|---|---|---|---|
| Analyze | 源码仓库 | API 映射表 | 静态分析 + GUI 回调追踪 |
| Design | API 映射 | 命令规范 | 命令分组 + 状态建模 |
| Implement | 命令规范 | CLI 包 | Click + REPL Skin |
| Plan Tests | CLI 包 | TEST.md | 测试策略规划 |
| Write Tests | TEST.md | pytest 文件 | 单元测试 + E2E 测试 |
| Document | 测试结果 | TEST.md 更新 | 结果归档 |
| Publish | 完整包 | PyPI 包 | setup.py + pip install |
HARNESS.md 方法论
每个生成的 Harness 都遵循 HARNESS.md 标准操作程序(SOP),包含:
- Authentic Software Integration:CLI 必须调用真实软件渲染,禁止 Python 重实现
- The Rendering Gap:处理 GUI 应用「渲染时才应用特效」的特性
- No Graceful Degradation:真实软件是硬依赖,缺失时测试失败而非跳过
快速上手指南
5 分钟快速开始
# Step 1: 安装 CLI-Anything 插件(Claude Code)
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
# Step 2: 为目标软件生成 CLI
/cli-anything ./gimp
# Step 3: 安装生成的 Harness
cd gimp/agent-harness && pip install -e .
# Step 4: 使用 CLI
cli-anything-gimp --help
Windows 用户注意事项
Claude Code 通过 bash 执行 Shell 命令。Windows 用户需:
- 安装 Git for Windows(包含
bash和cygpath) - 或使用 WSL 环境
可用命令一览
| 命令 | 功能 |
|---|---|
/cli-anything <path> |
构建完整 CLI Harness(全部7阶段) |
/cli-anything:refine <path> |
精化已有 Harness(缺口分析) |
/cli-anything:test <path> |
运行 Harness 测试 |
/cli-anything:validate <path> |
验证 Harness 合规性 |
/cli-anything:list |
列出所有 CLI-Anything 工具 |
CLI-Hub 包管理器
# 安装 CLI-Hub
pip install cli-anything-hub
# 浏览、安装、管理已发布的 CLI
cli-hub install blender
cli-hub list
cli-hub update gimp
Web 界面:https://hkuds.github.io/CLI-Anything/
典型应用场景
已覆盖软件分类
| 类别 | 代表软件 |
|---|---|
| 创意媒体 | Blender, GIMP, OBS Studio, Audacity, Krita, Kdenlive |
| 开发工具 | Jenkins, Gitea, Portainer, pgAdmin, iTerm2 |
| AI/ML 平台 | Stable Diffusion WebUI, ComfyUI, Ollama, Open WebUI |
| 数据分析 | JupyterLab, Apache Superset, Metabase, DBeaver |
| 企业办公 | LibreOffice, NextCloud, GitLab, Grafana, Mattermost |
| 游戏开发 | Godot Engine, s&box, Slay the Spire II |
| 科学计算 | FreeCAD, QGIS, ParaView, KiCad |
| 视频字幕 | VideoCaptioner, Shotcut, Kdenlive |
实战示例:Blender 自动化
# AI 智能体通过 CLI-Anything 操控 Blender
cli-anything-blender project new --name "MyScene"
cli-anything-blender scene add --name "MainScene"
cli-anything-blender object add --type cube --position "0,0,0"
cli-anything-blender material create --name "Metal" --color "#888888"
cli-anything-blender render --resolution "1920x1080" --output render.png
实战示例:GIMP 批量处理
# 批量图片处理流水线
for img in *.jpg; do
cli-anything-gimp --json open "$img" \
layer add -n "Watermark" --type text --content "© 2025" \
filter apply --name "gaussian-blur" --radius 2 \
export --format png "processed/${img%.jpg}.png"
done
学术研究背景
论文信息
| 项目 | 详情 |
|---|---|
| 论文标题 | CLI-Anything: A Unified Interface for Terminal Interaction and Automation with LLMs |
| 会议 | CVPR 2025(计算机视觉与模式识别顶级会议) |
| arXiv ID | 2501.16732 |
| 提交日期 | 2025年1月28日 |
| 研究单位 | 香港大学数据科学研究所(HKUDS) |
研究团队
主要作者来自 HKUDS:
- Hao Pare, Yichen Zhu, Shuo Chen, Jinlu Zhang
- Jie Fu, Kehai Chen, Jianye Hao, Jun Zhu
- Liang Zhao, Yonghui Wang
CLI-Bench 基准测试
配套基准 CLI-Bench 用于评估 LLM 终端能力:
- 命令正确性(Command Correctness)
- 安全意识(Safety Awareness)
- 任务完成度(Task Completion)
- 错误处理能力(Error Handling)
Terminal-Bench GitHub:https://github.com/HKUDS/Terminal-Bench
同类工具对比
| 工具 | 定位 | CLI-Anything 差异点 |
|---|---|---|
| Open Interpreter | 本地代码执行(Python/JS/Shell) | CLI-Anything 专注 CLI 工具学习,更通用 |
| Aider | AI 结对编程,git 集成 | CLI-Anything 是通用 CLI 框架,非编程专用 |
| Terminal Agent | 开发者 CLI 辅助 | CLI-Anything 无训练、文档驱动、覆盖更广 |
CLI-Anything 独特优势
┌────────────────────────────────────────────────────────┐
│ 独特优势矩阵 │
├────────────────────────────────────────────────────────┤
│ ✅ Universal Compatibility → 无需预定义工具规范 │
│ ✅ Documentation-Driven → 动态解析现有文档 │
│ ✅ Error Recovery → 内置反馈与命令修正机制 │
│ ✅ Training-Free → 零额外模型训练成本 │
│ ✅ Multi-Platform Plugin → Claude/Pi/Codex/Copilot │
└────────────────────────────────────────────────────────┘
未来展望
技术演进方向
- 更弱模型支持:当前需前沿模型(Claude 4.6+),未来可能优化提示策略适配更弱模型
- 实时协作:多智能体协同操控同一软件实例
- 跨语言扩展:Python之外的支持(Rust、Go、Node.js)
- 安全沙箱:增强安全边界,防止危险命令误执行
社区参与
GitHub:https://github.com/HKUDS/CLI-Anything
贡献指南:CONTRIBUTING.md
参考来源
更多推荐

所有评论(0)