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 阶段生成器)
- 分析 – 工具扫描目标软件(源代码、API 文档或 UI 录屏),推断程序可执行的操作。
- 设计 – 将这些操作分组为逻辑命令组,定义状态模型,并决定输出的 JSON 模式。
- 实现 – 生成完整的 Click 基础命令行界面,包含 REPL 模式、撤销/重做支持和仅 JSON 输出。
- 计划测试 – 创建
TEST.md模板,概述单元测试和端到端(E2E)测试用例。 - 编写测试 – 框架自动生成测试代码并运行,实现 README 中报告的高覆盖率(约 2,500 个通过测试)。
- 文档化 – 测试结果插入回
TEST.md,形成动态规格说明。 - 发布 – 生成
setup.py/pyproject.toml,打包 CLI,可全局安装或通过 CLI‑Hub 包管理器安装。
CLI‑Hub – 一站式注册表
- 通过
pip install cli-anything-hub安装。 - 使用
cli-hub list、search、install、launch等命令,可浏览不断增长的预构建 CLI 目录(如 GIMP、Blender、Zoom、Obsidian、FreeCAD、Unreal Engine 等)。 - 该注册表还发布一个 元技能(
cli-hub-meta-skill),代理可加载它,实现按需发现和安装合适的 CLI。
开发者的典型工作流程
- 选择目标 – 任何你希望代理控制的可执行文件或代码库。
- 运行生成器 – 例如
cli-anything ./path/to/gimp(或通过 Claude Code 插件)。框架生成一个可安装的 Python 包。 - 测试与优化 – 生成的测试套件自动运行;可添加更多命令或调整 JSON 模式。
- 发布 – 将包推送到 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 代理 之间架起缺失的桥梁,所有这一切都由自动化生成管道和共享注册表支持。
相关
- 项目
- 项目
- 项目
- 项目
- 项目