## 项目概述

CLI-Anything 是一个由 HKUDS 团队发起的开源项目，旨在将任何软件（尤其是 GUI 软件）转化为 AI 智能体（Agent）可以原生使用的命令行工具（CLI）。其核心理念是“让所有软件 Agent 原生（Making ALL Software Agent-Native）”，通过自动化的 7 阶段流水线，为软件生成结构化的、支持 JSON 输出的 CLI 接口，从而弥合 AI 智能体与真实世界软件之间的鸿沟。项目提供了一个名为 CLI-Hub 的中央注册表和包管理器，用于浏览、安装和管理这些生成的 CLI。

## 核心功能

- **自动化 CLI 生成**：通过 7 阶段流水线（分析、设计、实现、测试计划、编写测试、文档、发布），从源代码或仓库自动生成完整的 CLI 工具。
- **真实软件集成**：生成的 CLI 直接调用真实软件的后端（如 Blender 的 bpy、LibreOffice 的无头模式），确保功能完整，而非玩具实现。
- **Agent 原生设计**：所有命令支持 `--json` 标志，输出结构化数据，便于智能体解析；同时提供人类可读的表格输出。
- **CLI-Hub 注册表**：提供 `cli-hub` 命令，用于浏览、搜索、安装、更新和卸载社区构建的 CLI。
- **统一 REPL 界面**：所有生成的 CLI 共享一致的交互式 REPL（Read-Eval-Print Loop）界面，支持会话管理、撤销/重做等功能。
- **SKILL.md 生成**：每个生成的 CLI 都附带一个 AI 可发现的技能定义文件（SKILL.md），便于智能体自动发现和使用。
- **预览机制**：支持跨工具的预览协议，允许智能体在任务执行过程中生成和查看中间结果（如图像、视频、3D 模型预览）。

## 适用与不适用场景

**适用场景：**

- 需要让 AI 智能体（如 Claude Code、OpenClaw、Codex 等）控制复杂的专业软件（如 GIMP、Blender、LibreOffice）。
- 希望将分散的 Web API 或 SDK 统一封装为一个有状态的 CLI，供智能体调用。
- 需要替代或增强基于 GUI 的智能体自动化方案，避免脆弱的 UI 自动化。
- 为开源项目或内部工具快速构建 Agent 可用的命令行接口。

**不适用场景：**

- 目标软件没有可用的源代码，且仅提供需要反编译的二进制文件（生成质量会大幅下降）。
- 使用较弱的基础模型（如小型语言模型）进行 CLI 生成，可能产生不完整或错误的 CLI，需要大量人工修正。
- 需要实时、高帧率的 GUI 流式传输或远程桌面场景（项目明确不追求此目标）。

## 技术架构与依赖

- **编程语言**：Python（≥3.10）
- **核心依赖**：Click（≥8.0）用于构建 CLI，pytest 用于测试。
- **架构**：项目采用 monorepo 结构，每个软件对应一个独立的 Python 包（位于 `<software>/agent-harness/`），包内包含 Click CLI、核心模块、工具函数（如 `repl_skin.py`）和测试。
- **插件/技能系统**：支持多种 AI 编码代理平台，包括 Claude Code（插件）、OpenClaw（技能）、Codex（技能）、OpenCode（命令）、Hermes（技能）、Reasonix（技能）等。
- **CLI-Hub**：作为独立的 PyPI 包（`cli-anything-hub`）发布，提供注册表管理和预览查看功能。

## 安装与快速开始

**安装 CLI-Hub 包管理器：**

```bash
pip install cli-anything-hub
```

**浏览和安装 CLI：**

```bash
cli-hub list
cli-hub search <query>
cli-hub install <name>
cli-hub launch <name> [args...]
```

**为 Claude Code 安装插件：**

```bash
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
```

**生成新的 CLI：**

```bash
/cli-anything <software-path-or-repo>
```

**安装生成的 CLI：**

```bash
cd <software>/agent-harness
pip install -e .
```

## 典型使用方法

**使用生成的 CLI（以 LibreOffice 为例）：**

```bash
# 创建文档
cli-anything-libreoffice document new -o report.json --type writer

# 添加内容
cli-anything-libreoffice --project report.json writer add-heading -t "Q1 Report" --level 1

# 导出为 PDF
cli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite

# JSON 模式供智能体使用
cli-anything-libreoffice --json document info --project report.json
```

**进入 REPL 模式：**

```bash
cli-anything-blender
```

**使用 CLI-Hub 元技能（供智能体）：**

```bash
npx skills add HKUDS/CLI-Anything --skill cli-hub-meta-skill -g -y
```

## 配置与部署要点

- **环境要求**：Python 3.10+，Click 8.0+，pytest 7.0+。
- **后端软件**：某些 CLI 需要安装对应的上游软件（如 GIMP、Blender、LibreOffice），否则相关功能无法使用。
- **Windows 支持**：在 Windows 上使用 Claude Code 插件时，需要安装 Git for Windows（提供 bash 和 cygpath）或使用 WSL。
- **测试**：运行测试时，建议设置 `CLI_ANYTHING_FORCE_INSTALLED=1` 环境变量以强制使用已安装模式。
- **CLI-Hub 注册表**：社区贡献的 CLI 通过 `registry.json` 文件注册，合并 PR 后会自动更新到 CLI-Hub。

## 限制、风险与许可证

**限制：**

- 依赖强基础模型（如 Claude Opus 4.6、GPT-5.4 等）才能可靠生成 CLI，弱模型可能产生不完整结果。
- 依赖目标软件的源代码，对于仅提供编译后二进制的软件，生成质量会显著下降。
- 可能需要多次迭代（运行 `/refine`）才能达到生产级质量。

**风险：**

- 生成的 CLI 可能包含安全漏洞（如路径注入），项目已通过社区贡献修复了部分问题，但用户仍需谨慎使用。
- 第三方 CLI 或 API 可能有自己的许可、定价或使用限制，使用前需查阅上游文档。

**许可证：**

- 项目采用 Apache License 2.0，允许自由使用、修改和分发。

## 官方链接

- **GitHub 仓库**：https://github.com/HKUDS/CLI-Anything
- **CLI-Hub 网站**：https://clianything.cc/
- **PyPI 包**：https://pypi.org/project/cli-anything-hub/
- **技术报告**：https://arxiv.org/abs/2606.03854

## 信息来源和分析时间

- **信息来源**：GitHub 仓库 README、CONTRIBUTING.md、docs/ 目录下的文档（PREVIEW_PROTOCOL.md、PREVIEW_PROGRESS.md 等）、最新发布信息（v0.4.0）。
- **分析时间**：2026-06-25（基于最新发布版本日期）。