
CLI-Anything 实战指南一行命令把任何软件改造成 AI Agent 原生工具【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything导读CLI-Anything 是一个面向Agent 原生软件生态的开源工程方案通过一条命令和一套经过验证的 7 阶段自动化流水线将任意带有代码库的 GUI 软件GIMP、Blender、LibreOffice、OBS Studio、Shotcut 等改造成可供 AI Agent 直接调用的有状态 Click CLI。本文以仓库中文主文档为核心结合 HARNESS.md 方法论规范、插件命令定义与实际 harness 源码系统讲解其设计理念、多平台接入方式、7 阶段构建流程、生成物的目录结构与使用方式并给出从为什么是 CLI到生产级测试如何落地的完整技术图谱。读完本文你将掌握如何为任意软件生成、优化、测试与发布一个 Agent 可用的 CLI harness。为什么是 CLICLI 是人与 Agent 共通的万能接口在深入工具链之前先理解 CLI-Anything 的设计起点它选择CLI 作为连接 AI Agent 与软件的唯一接口而非截图驱动或专用 API。文档给出的核心理由包括结构化、可组合文本命令天然匹配 LLM 的输入格式可自由串联成复杂工作流轻量且通用几乎零开销、跨平台运行、不依赖额外运行环境自描述一个--help就能让 Agent 自动发现全部能力配合which即可完成工具发现Agent 友好每条命令内置--json输出结构化数据无需任何额外解析即可被 Agent 消费确定且可靠输出稳定一致Agent 行为可预测避免 GUI 自动化的脆弱性。对应地仓库以 Python 3.10、Click ≥8.0 为技术栈所有生成 CLI 统一要求--json输出模式与可读表格格式并存这正是上述理念的工程落地可在 HARNESS.md 的 Principles Rules 一节看到这些要求的强制化表述。快速上手按平台选择接入方式CLI-Anything 采用同一套方法论、多平台分发载体的架构核心权威规范始终沉淀在 cli-anything-plugin/HARNESS.md而 Claude Code 插件、OpenCode 命令、Cursor 插件、Codex skill、Qodercli 插件、GitHub Copilot CLI 插件都是该规范在不同 Agent 平台上的装载器。环境要求Python 3.10目标软件已安装GIMP、Blender、LibreOffice 或你自己的应用至少一款受支持的 AI 编程工具Claude Code、Cursor、OpenClaw、OpenCode、Codex、Qodercli、GitHub Copilot CLI 之一Claude Code插件市场方式CLI-Anything 以 Claude Code 插件市场的形式托管。首先添加市场并安装插件/plugin marketplace add HKUDS/CLI-Anything /plugin install cli-anything然后即可一行命令生成 CLI。注意命令存在新旧版本的兼容写法主入口优先/cli-anything在确认插件已加载但旧版 Claude Code 不识别时可尝试/cli-anything:cli-anything。若出现Unknown skill: cli-anything两种写法指向同一个 skill应优先排查插件安装状态而非切换写法/reload-plugins重新加载插件/help cli-anything验证插件是否已加载仍未识别则重新执行市场添加与安装两步确认可用后重试/cli-anything ./gimp旧版本用/cli-anything:cli-anything ./gimp。Windows 用户需要注意Claude Code 通过bash执行命令需安装 Git for Windows含bash与cygpath或改用 WSL否则可能遇到cygpath: command not found。首次构建完成后可迭代优化# 全面优化 — Agent 分析所有功能的覆盖差距 /cli-anything:refine ./gimp # 定向优化 — 指定特定功能领域 /cli-anything:refine ./gimp 我需要更多图像批处理和滤镜相关的 CLI若不想使用插件市场可手动安装克隆仓库后把cli-anything-plugin复制到~/.claude/plugins/cli-anything再执行/reload-plugins。OpenCode命令文件方式OpenCode 通过斜杠命令目录加载。将命令文件与HARNESS.md一同复制HARNESS.md是所有命令引用的方法论规范必须与命令文件同目录# 全局安装所有项目可用 cp CLI-Anything/opencode-commands/*.md ~/.config/opencode/commands/ cp CLI-Anything/cli-anything-plugin/HARNESS.md ~/.config/opencode/commands/ # 或项目级安装 cp CLI-Anything/opencode-commands/*.md .opencode/commands/ cp CLI-Anything/cli-anything-plugin/HARNESS.md .opencode/commands/安装后可获得 5 个斜杠命令/cli-anything、/cli-anything-refine、/cli-anything-test、/cli-anything-validate与/cli-anything-list。生成命令同样支持本地路径与 GitHub 仓库地址两种输入/cli-anything ./gimp /cli-anything https://github.com/blender/blenderQodercli、OpenClaw 与 GitHub Copilot CLIQodercli社区贡献运行bash CLI-Anything/qoder-plugin/setup-qodercli.sh脚本把插件注册到~/.qoder.json之后即可使用/cli-anything:cli-anything ./gimp、/cli-anything:refine、/cli-anything:validate。OpenClaw复制openclaw-skill/SKILL.md位于仓库对应目录到~/.openclaw/skills/cli-anything/随后可用自然语言调用cli-anything build a CLI for ./gimp。GitHub Copilot CLI社区贡献copilot plugin install ./cli-anything-plugin后即可使用/cli-anything:cli-anything系列命令。Cursor生成器与消费端分离Cursor 场景下 CLI-Anything 拆成两条轨道生成器用斜杠命令构建新 harness与消费端从 Hub 查找/安装已发布 CLI。生成器通过cursor-plugin/安装bash CLI-Anything/cursor-plugin/scripts/install.sh # macOS/Linux .\CLI-Anything\cursor-plugin\scripts\install.ps1 # Windows PowerShell升级时加--force/-Force。安装器会把cli-anything-plugin/中的方法论资源 vendor 进插件并写入PLUGIN_ROOT.txt与~/.cursor/cli-anything-generator.root使 Cursor Agent 能以绝对路径读取 HARNESS。默认安装路径为~/.cursor/plugins/local/cli-anything且CURSOR_PLUGINS_HOME必须指向名为plugins的目录。安装后在 Cursor 中执行Developer: Reload Window即可使用/cli-anything、/cli-anything-refine、/cli-anything-test、/cli-anything-validate、/cli-anything-list。消费端则继续使用npx skills add与pip install cli-anything-hub。完整说明见 cursor-plugin/README.md。Codex实验性、社区贡献运行bash CLI-Anything/codex-skill/scripts/install.shWindows 用install.ps1skill 被安装到$CODEX_HOME/skills/cli-anything未设置则默认~/.codex/skills/cli-anything。安装器同时将权威版 HARNESS.md、命令规范与辅助脚本复制到已安装 skill 内保证 Codex skill 可独立工作且仍以cli-anything-plugin/为唯一权威来源。重启 Codex 后用自然语言触发Use CLI-Anything to build a harness for ./gimp Use CLI-Anything to refine ./shotcut for picture-in-picture workflows Use CLI-Anything to validate ./libreoffice Use CLI-Anything to list generated harnesses under the current directory无论哪个平台生成的 CLI 用法完全一致平台只负责生成生成物是标准 Python 包# 安装到 PATH cd gimp/agent-harness pip install -e . # 随处可用 cli-anything-gimp --help cli-anything-gimp project new --width 1920 --height 1080 -o poster.json cli-anything-gimp --json layer add -n Background --type solid --color #1a1a2e # 进入交互式 REPL直接运行无子命令即进入 cli-anything-gimp一条命令背后的 7 阶段流水线/cli-anything 软件路径或仓库地址接受本地源码路径如./blender或GitHub 仓库 URL如https://github.com/blender/blenderAgent 会先克隆再分析。注意仅给软件名如gimp不被接受必须提供真实源码这是 Agent 分析代码库的前提见 commands/cli-anything.md。完整流水线自动执行 7 个阶段 分析Codebase Analysis— 扫描源码识别后端引擎大多数 GUI 应用将展示与逻辑分离例如 Shotcut 对应 MLT、GIMP 对应 GEGL/ImageMagick把 GUI 动作映射为 API 调用识别数据模型项目状态用什么格式保存XML/JSON/二进制/数据库寻找后端自带的 CLI 工具melt、ffmpeg、convert梳理命令/撤销系统。 设计CLI Architecture Design— 规划命令分组项目管理、核心操作、导入导出、配置、会话状态管理、状态模型REPL 内存态 / 基于 JSON 会话文件、双输出格式可读表格 --json并产出该软件专属的架构 SOP 文档如GIMP.md。 实现Implementation— 先写数据层项目文件的 XML/JSON 操作再补 probe/info 命令然后是 mutation 命令通过utils/software_backend.py封装真实软件后端加入会话管理含撤销/重做与会话 JSON 排他文件锁参考 guides/session-locking.md最后接入统一 REPL 皮肤并让 REPL 成为默认行为Click 主 group 设invoke_without_commandTrue无子命令时ctx.invoke(repl, ...)。 规划测试Test Planning— 在写任何测试代码前先创建TEST.md列出测试文件与预估用例数、单元测试计划、E2E 场景、多步骤真实工作流清单。 编写测试Test Implementation— 实现单元测试合成数据、无外部依赖、中间文件 E2E、真实后端 E2E、CLI 子进程测试经_resolve_cli()调用已安装命令禁止硬编码路径。 文档Test Documentation— 运行全部测试后把pytest -v --tbno完整结果追加到TEST.md使该文件同时充当测试计划 结果文档。 发布PyPI Publishing Installation— 生成setup.py以 PEP 420 namespace packagecli_anything/无__init__.py子包各自有方式打包pip install -e .后验证which cli-anything-software。此外阶段 6.5 会生成 SKILL.md先用 skill_generator.py 提取 CLI 元数据或经 templates/SKILL.md.template 定制输出到仓库根skills/cli-anything-software/SKILL.md作为权威副本同时刷新包内兼容副本cli_anything/software/skills/SKILL.md使已安装 harness 自带本地 skill 文件setup.py中须声明package_data使该 md 随 pip 发布。仓库中skills/目录下的 60 个SKILL.md即这一阶段的产物。适用场景什么样的软件可以接入CLI-Anything 面向任何有代码库的软件文档划分了九大类别下表中典型的接入方式均可在仓库对应的agent-harness找到真实实现或构建示例类别如何接入 Agent典型软件 GitHub 开源项目自动生成 CLI 将开源项目转化为 Agent 可控工具VSCodium、WordPress、Calibre、Zotero、Joplin、Logseq、Penpot AI/ML 平台用结构化命令驱动模型训练、推理与超参搜索Stable Diffusion WebUI、ComfyUI、InvokeAI、Open WebUI、AnythingLLM 数据与分析以编程方式完成数据处理、可视化、统计分析JupyterLab、Apache Superset、Metabase、DBeaver、OpenSearch Dashboards 开发工具通过 CLI 串联代码编辑、构建、测试与部署Jenkins、Gitea、Portainer、pgAdmin、SonarQube、ArgoCD、OpenLens 创意与媒体以编程方式控制内容创作、编辑与渲染Blender、GIMP、OBS Studio、Audacity、Krita、Kdenlive、Shotcut、Inkscape 图表与可视化以编程方式创建流程图、架构图、ER 图Draw.io (diagrams.net)、Mermaid、PlantUML、Excalidraw 科学计算自动化科研工作流、仿真与复杂计算ImageJ、FreeCAD、QGIS、ParaView、KiCad、Stellarium 企业与办公将商业应用与生产力工具转为 Agent 可访问系统NextCloud、GitLab、Grafana、Mattermost、LibreOffice、NocoDB 通信与协作自动化会议调度、参会人管理、录制与报告Zoom、Jitsi Meet、BigBlueButton核心优势与设计原则CLI-Anything 想解决的问题很具体AI Agent 推理能力强但操控真实专业软件的能力弱——现有方案要么是脆弱的 GUI 自动化要么是覆盖面有限的 API要么是阉割掉大量功能的重新实现。它的解法是把任何专业软件变成 Agent 原生工具直接对接真实软件后端功能一个不少。在架构层面文档提炼了五条核心设计原则每条都能在源码与产出物中找到对应真实软件集成CLI 生成合法的项目文件ODF、MLT XML、SVG后交给真实应用渲染——做的是软件的结构化接口而不是替代品灵活的交互模式每个 CLI 同时支持有状态 REPL交互会话与子命令脚本/流水线两种模式无参数直接运行即进入 REPL一致的使用体验所有 CLI 共享统一 REPL 界面repl_skin.py提供品牌横幅、风格化提示符、命令历史、进度指示器与标准化格式。从源码可见ReplSkin 为每个软件分配独立强调色如 gimp 暖橙、blender 深橙、libreoffice 绿支持NO_COLOR/CLI_ANYTHING_NO_COLOR环境变量关闭颜色并按CLI_ANYTHING_SKILL_REPO等配置自动探测仓库根skills/下的权威 SKILL.md 路径Agent 原生设计每条命令内置--json结构化输出供 Agent 消费可读表格服务于交互调试Agent 通过标准--help与which发现能力零妥协的依赖策略真实软件是硬性要求——后端缺失时测试直接失败而非跳过确保功能真实性HARNESS.md 中对此有强制表述不允许优雅降级到兜底库缺失时给出清晰安装指引的报错。实测软件矩阵从 GIMP 到 sbox项目在大量复杂应用上验证过该流水线涵盖创意、生产力、通信、图表、原生调试、GPU 分析、游戏开发与 AI 内容生成等领域。以文档实测展示章节的软件矩阵为核心表格完整节选软件领域CLI 命令后端测试 GIMP图像编辑cli-anything-gimpPillow GEGL/Script-Fu✅ 107 Blender3D 建模与渲染cli-anything-blenderbpy (Python scripting)✅ 208✏️ Inkscape矢量图形cli-anything-inkscapeDirect SVG/XML manipulation✅ 202 Audacity音频制作cli-anything-audacityPython wave sox✅ 161 LibreOffice办公套件cli-anything-libreofficeODF generation headless LO✅ 158 OBS Studio直播与录制cli-anything-obs-studioJSON scene obs-websocket✅ 153️ Kdenlive视频剪辑cli-anything-kdenliveMLT XML melt renderer✅ 155 Shotcut视频剪辑cli-anything-shotcutDirect MLT XML melt✅ 154 Openscreen屏幕录像编辑cli-anything-openscreenffmpeg backend✅ 101 Zoom视频会议cli-anything-zoomZoom REST API (OAuth2)✅ 22 Draw.io图表绘制cli-anything-drawiomxGraph XML draw.io CLI✅ 138✨ AnyGenAI 内容生成cli-anything-anygenAnyGen REST API✅ 50 LLDB原生调试cli-anything-lldbLLDB Python API✅ 27 Unreal Insights性能分析cli-anything-unrealinsights后台 trace 会话 无头导出✅ 50 sbox游戏开发cli-anything-sboxSource 2 引擎 JSON 直读写✅ 244 Joplin笔记与待办cli-anything-joplinJoplin 终端 CLI 子进程✅ 134注各软件测试数均以各自 agent-harness 目录下的tests/TEST.md为权威记录README 汇总口径以表格内数据为准单元 端到端分层统计如 gimp 为 64 unit 43 e2e。从源码结构看每套生成的 CLI 都遵循同一包布局以 gimp/agent-harness 为例软件名/agent-harness/ ├── 软件名.md # 该应用的架构 SOP ├── setup.py # PyPI 包配置 └── cli_anything/ # PEP 420 namespace 包无 __init__.py └── 软件名/ # 子包有 __init__.py ├── __init__.py ├── __main__.py # python3 -m cli_anything.软件名 ├── README.md # 安装与使用说明 ├── 软件名_cli.py # 主 CLI 入口Click REPL ├── core/ # 核心模块project.py / session.py / export.py ... ├── utils/ # 软件名_backend.py repl_skin.py ├── skills/SKILL.md # 打包的兼容 skill 副本 └── tests/ # TEST.md test_core.py test_full_e2e.pycritical 细节cli_anything/目录绝不能含__init__.py这正是 PEP 420 namespace package 的机制——多个独立安装的 PyPI 包cli-anything-gimp、cli-anything-blender…可各自向cli_anything/贡献子包而互不冲突。生产级测试的四层结构每个 CLI 都经过多层严格测试README 汇总为四层HARNESS.md 的 Testing Strategy 一节给出了完全一致的划分测试层级测什么示例单元测试每个核心函数的隔离验证使用合成数据test_core.py— 项目创建、图层操作、滤镜参数端到端测试原生项目文件的完整生成流程ODF ZIP 结构合法性、MLT XML 正确性、SVG 格式完整性端到端测试真实后端调用真实软件并验证输出LibreOffice → 含%PDF-魔术字节的 PDFBlender → 渲染后的 PNGCLI 子进程测试通过subprocess.run调用已安装命令cli-anything-gimp --json project new→ 合法 JSON 输出测试的关键规范HARNESS.md Phase 5 中逐条给出代码模板包括E2E 必须调用真实软件且产出真实文件、验证魔术字节/ZIP 结构与内容、打印产物路径供人工检查、不允许优雅降级软件缺失则失败而非跳过子进程测试统一经_resolve_cli()解析已安装命令支持通过CLI_ANYTHING_FORCE_INSTALLED1强制要求安装态命令开发环境则回退到python -m cli_anything.软件名_cli且不设置cwd以验证命令可在任意目录工作。运行测试cd 软件名/agent-harness python3 -m pytest cli_anything/软件名/tests/ -v # 强制安装模式推荐用于验证 CLI_ANYTHING_FORCE_INSTALLED1 python3 -m pytest cli_anything/软件名/tests/ -v -sHARNESS.md沉淀下来的方法论核心经验HARNESS.md 被定义为通过自动化 CLI 生成、使任意软件具备 Agent 可用性的权威标准操作流程SOP提炼了构建生产级 CLI 的关键经验经验说明必须用真实软件CLI 必须调用真实应用渲染。不能用 Pillow 替代 GIMP不能自写渲染器替代 Blender。正确路径生成合法项目文件 → 调用真实后端LibreOffice 用libreoffice --headless --convert-toBlender 用blender --background --pythonInkscape 用inkscape --actionsShotcut/Kdenlive 用meltAudacity 用sox。渲染鸿沟GUI 应用在渲染时才应用特效。若 CLI 只操作项目文件却用简陋导出工具特效会被静默丢弃。解法是滤镜转译层优先级为原生引擎 → 翻译后的 filtergraph如 MLT 滤镜 → ffmpeg-filter_complex→ 可手动执行的渲染脚本。滤镜转译跨格式映射特效如 MLT → ffmpeg时警惕重复滤镜合并、交错的流排序、参数空间差异、无法映射的特效详见 guides/filter-translation.md。时间码精度非整数帧率如 29.97fps会产生累积舍入误差用round()而非int()显示用整数运算测试允许 ±1 帧容差详见 guides/timecode-precision.md。输出验证永远不要因为进程退出码为 0 就信任导出成功。要验证魔术字节%PDF-、ZIP/OOXML 结构、逐帧像素分析排除 letterbox 黑边、音频 RMS 电平与时长。HARNESS.md 还沉淀了会话 JSON 保存的排他文件锁模式guides/session-locking.md、面向 MCP 后端的封装模式guides/mcp-backend.md与 SKILL.md 生成流程guides/skill-generation.md。若 harness 支持 preview预览能力还须遵循 producercli-anything-软件 preview ...发布真实后端产物与 consumercli-hub previews ...只读查看角色分离以及bundle_dir不可变快照/session.json可变当前头/trajectory.json追加式历史三层持久化模型——其宗旨是真实的预览胜过漂亮的预览详见 guides/preview-methodology.md 与 PREVIEW_PROTOCOL.md。实操演示LibreOffice 与 Blender 的真实会话以cli-anything-libreoffice为例看 Agent 如何端到端工作# 创建一个 Writer 文档 $ cli-anything-libreoffice document new -o report.json --type writer ✓ Created Writer document: report.json # 添加内容 $ cli-anything-libreoffice --project report.json writer add-heading -t Q1 Report --level 1 ✓ Added heading: Q1 Report $ cli-anything-libreoffice --project report.json writer add-table --rows 4 --cols 3 ✓ Added 4×3 table # 通过 LibreOffice headless 导出为真实 PDF $ cli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite ✓ Exported: output.pdf (42,831 bytes) via libreoffice-headless # JSON 模式供 Agent 消费 $ cli-anything-libreoffice --json document info --project report.json { name: Q1 Report, type: writer, pages: 1, elements: 2, modified: true }进入 REPL 后状态以项目名为前缀展示未保存改动带星号提示$ cli-anything-blender ╔══════════════════════════════════════════╗ ║ cli-anything-blender v1.0.0 ║ ║ Blender CLI for AI Agents ║ ╚══════════════════════════════════════════╝ blender scene new --name ProductShot ✓ Created scene: ProductShot blender[ProductShot] object add-mesh --type cube --location 0 0 1 ✓ Added mesh: Cube at (0, 0, 1) blender[ProductShot]* render execute --output render.png --engine CYCLES ✓ Rendered: render.png (1920×1080, 2.3 MB) via blender --background blender[ProductShot] exit Goodbye! 架构总览下图为项目整体架构图展示了方法论规范 → 各平台命令载体 → 真实软件后端 → 统一 REPL/JSON 双输出的端到端结构图片来自 assets/architecture.png项目目录结构导读仓库采用插件 命令载体 各软件 harness的扁平布局方法论文档HARNESS.md唯一权威来源、QUICKSTART.md5 分钟上手、PUBLISHING.md分发与发布指南、README.md插件命令与阶段说明平台载体cli-anything-plugin/Claude Code、opencode-commands/OpenCode、cursor-plugin/Cursor 生成器、codex-skill/、qoder-plugin/、openclaw-skill/生成产物软件名/agent-harness/下每套 CLI 都附带软件名.md架构 SOP与tests/TEST.md测试计划与结果构成可复现 可审计的闭环消费端生态cli-hub/提供查找/安装已发布 CLI 的工具skills/存放按软件分发的 SKILL.md供npx skills等方式加载。已知局限与适用前提文档明确披露了三项限制使用前应充分知悉依赖强大的基础模型/cli-anything依赖前沿级别模型文档举例如 Claude Opus 4.6、Claude Sonnet 4.6、GPT-5.4 等才能可靠生成 harness较弱或较小的模型可能产出不完整或有误的 CLI需大量人工修正依赖可用的源代码生成基于源码分析若目标软件只提供编译后二进制需反编译harness 质量与覆盖率会显著下降可能需要迭代优化单次运行不一定完整覆盖全部功能通常需执行一次或多次/refine进行增量、非破坏性的差距分析与补全才能将 CLI 推至生产级水平。引用与许可技术报告引用信息与 License 见仓库根文档。若在研究中引用本项目可参考其提供的 BibTeX 条目位于 README_CN.md 文末。项目以Apache License 2.0开源可自由使用、修改与分发。CLI-Anything 定位清晰——一行命令让任何软件成为 Agent 的原生工具——其方法论、源码与全部 harness 产物均可在此仓库中持续追溯与复用。【免费下载链接】CLI-AnythingCLI-Anything: Making ALL Software Agent-Native -- CLI-Hub: https://clianything.cc/项目地址: https://gitcode.com/GitHub_Trending/cl/CLI-Anything创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考