CLI-Anything 的核心想法是:把更多软件和源码仓库变成 AI Agent 可以稳定调用的 CLI。
仓库
项目定位
CLI-Anything 是一个把软件能力包装成 Agent-native CLI 的开源项目。它关注的不是单个工具,而是一套方法:分析软件或代码仓库,设计命令组和状态模型,实现结构化 CLI,再用测试和文档把能力稳定下来。
我关注的方向
- CLI 作为人和 Agent 都能理解的接口。
- 用结构化命令和 JSON 输出降低 Agent 操作软件的不确定性。
- 为 GUI 软件、内部工具和代码仓库构建可测试的命令层。
- 把工具能力接入 Codex、Claude Code、OpenCode 等 Agent 工作流。
这个方向和我正在整理的项目级 skills、Obsidian 内容维护规则、静态部署工具属于同一类问题:让 AI 不只是“聊天”,而是能进入明确的工作流。
核心流程
- Analyze:扫描源码或软件能力,识别可命令化的操作面。
- Design:设计 command groups、状态模型、输出格式和边界。
- Implement:用 Python Click 等工具实现 CLI、REPL、JSON 输出。
- Plan Tests:规划单元测试和端到端测试。
- Write Tests:补充自动化测试,验证 CLI 行为。
- Document:生成 README、TEST.md 和使用说明。
- Publish:打包安装,让 CLI 进入系统 PATH 或 Agent 可调用环境。
相关能力
- CLI-Hub:集中浏览、安装、更新和卸载社区 CLI。
skills/:每个 CLI harness 可沉淀成可安装的 Agent skill。- 支持围绕 GIMP、Blender、Obsidian、Kdenlive、Godot、n8n、Safari、QGIS 等软件生成或维护 CLI harness。
- 文档强调 JSON 输出、人类可读输出、测试覆盖和可复现安装。
我用它解决的问题
我主要把它当作“软件 Agent 化”的方法论参考:当一个系统只有 GUI、内部脚本或分散 API 时,先给它补出稳定 CLI,再让 Agent 基于 CLI 做真实操作。这个思路可以迁移到本地 Obsidian 内容维护、项目部署、浏览器任务、内容工具和内部后台。
当前状态
这是外部开源项目,我本地主要用于学习、验证和定制 CLI harness 思路。后续如果有合适的软件或内部工具,可以按它的方法生成自己的 Agent 友好 CLI。