HKUDS/CLI-Anything

"CLI-Anything: Making ALL Software Agent-Native" -- CLI-Hub: https://clianything.cc/

CLI‑Anything — 将任意应用程序转换为代理就绪的命令行工具

是什么

  • 一个基于 Python 的框架,可让你 包装 现有的桌面或服务器软件,生成一个由 Click 驱动的 CLI,其命令输出 结构化 JSON。生成的 CLI 专为 可发现可使用 而设计,既适用于 AI 代理(Claude Code、Cursor、OpenClaw 等),也适用于人类用户。

为何重要

  • 现代 AI 代理在能够发出确定性、可组合的命令时表现最佳。一个定义良好的 CLI 满足这一需求:基于文本、自我文档化(--help),且可从代理运行的任何 shell 中调用。
  • 通过为任意目标程序自动生成 CLI,CLI‑Anything 消除了原本需要手动工程工作来向代理暴露该程序的繁琐过程。

工作原理(7 阶段生成器)

  1. 分析 – 工具扫描目标软件(源代码、API 文档或 UI 录屏),推断程序可执行的操作。
  2. 设计 – 将这些操作分组为逻辑命令组,定义状态模型,并决定输出的 JSON 模式。
  3. 实现 – 生成完整的 Click 基础命令行界面,包含 REPL 模式、撤销/重做支持和仅 JSON 输出。
  4. 计划测试 – 创建 TEST.md 模板,概述单元测试和端到端(E2E)测试用例。
  5. 编写测试 – 框架自动生成测试代码并运行,实现 README 中报告的高覆盖率(约 2,500 个通过测试)。
  6. 文档化 – 测试结果插入回 TEST.md,形成动态规格说明。
  7. 发布 – 生成 setup.py/pyproject.toml,打包 CLI,可全局安装或通过 CLI‑Hub 包管理器安装。

CLI‑Hub – 一站式注册表

  • 通过 pip install cli-anything-hub 安装。
  • 使用 cli-hub listsearchinstalllaunch 等命令,可浏览不断增长的预构建 CLI 目录(如 GIMP、Blender、Zoom、Obsidian、FreeCAD、Unreal Engine 等)。
  • 该注册表还发布一个 元技能cli-hub-meta-skill),代理可加载它,实现按需发现和安装合适的 CLI。

开发者的典型工作流程

  1. 选择目标 – 任何你希望代理控制的可执行文件或代码库。
  2. 运行生成器 – 例如 cli-anything ./path/to/gimp(或通过 Claude Code 插件)。框架生成一个可安装的 Python 包。
  3. 测试与优化 – 生成的测试套件自动运行;可添加更多命令或调整 JSON 模式。
  4. 发布 – 将包推送到 PyPI 或保留在内部;CLI‑Hub 可将其列给其他用户。

谁可以使用它

  • AI 优先团队:构建需要与现有软件交互的代理的团队。
  • 开发者:希望快速、可复现地为工具创建 CLI 包装,而无需手动编写 Click 代码的人。
  • 研究人员:探索代理驱动自动化、RAG 流水线或多工具工作流的人。

关键技术细节(来自 README)

  • Python ≥ 3.10,基于 Click ≥ 8.0
  • 输出为 JSON + 人类可读消息,以简化代理的解析。
  • 测试套件使用 pytest,100 % 通过率;包含单元测试和 E2E 测试。
  • 安全优先:令牌文件处理、路径遍历防护、XML 解析使用 defusedxml
  • 社区驱动:新 CLI 通过 PR 添加,注册表即时更新。

从哪里开始

  • 安装注册表:pip install cli-anything-hub
  • 浏览可用 CLI:cli-hub list
  • 安装一个(例如 GIMP):cli-hub install gimp && cli-hub launch gimp
  • 要创建新 CLI,请在你的软件上运行生成器并遵循屏幕提示。

总结 CLI‑Anything 通过将 GUI 密集型应用程序转换为干净、输出 JSON 的命令行接口,为 任何软件任何 AI 代理 之间架起缺失的桥梁,所有这一切都由自动化生成管道和共享注册表支持。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目