🚀 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(包含 bashcygpath
  • 或使用 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 GitHubhttps://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  │
└────────────────────────────────────────────────────────┘

未来展望

技术演进方向

  1. 更弱模型支持:当前需前沿模型(Claude 4.6+),未来可能优化提示策略适配更弱模型
  2. 实时协作:多智能体协同操控同一软件实例
  3. 跨语言扩展:Python之外的支持(Rust、Go、Node.js)
  4. 安全沙箱:增强安全边界,防止危险命令误执行

社区参与

GitHubhttps://github.com/HKUDS/CLI-Anything

贡献指南CONTRIBUTING.md


参考来源

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐