CLI-Anything 研究筆記¶
資料來源¶
| 項目 | 連結 |
|---|---|
| GitHub repo | https://github.com/HKUDS/CLI-Anything |
| 官方網站 / CLI Hub | https://clianything.cc/、https://hkuds.github.io/CLI-Anything/ |
| Trendshift | https://trendshift.io/repositories/22991 |
| 規模 | 36,720 stars / 3,560 forks / Apache 2.0 / 創建 2026-03-08(2 個月衝到 36k+ stars) |
| 語言 | Python ≥ 3.10 + Click ≥ 8.0 |
| 上游組織 | HKUDS(同 [[rag-anything]]、LightRAG) |
| 中文 / 日文 README | README_CN.md / README_JA.md |
| 測試規模 | 2,269 passing tests / 18 個 demo apps |
概述¶
CLI-Anything 是港大 HKUDS(也是 LightRAG / [[rag-anything]] 的同一個 lab)2026-03 推出的工具,slogan 直白:
"Today's Software Serves Humans. Tomorrow's Users will be Agents. CLI-Anything: Bridging the Gap Between AI Agents and the World's Software."
它在解的問題:多數軟體(GIMP、Blender、LibreOffice、Obsidian、Audacity ...)沒有 agent-friendly 的介面。Agent 看不懂 GUI、不能點滑鼠,所以一堆生產級軟體被擋在 agent 工作流外面。CLI-Anything 的解法是——用一個 7 階段 pipeline,自動把任何軟體變成 agent-native CLI:
/cli-anything ./gimp
↓
🔍 Analyze 掃描原始碼、把 GUI 動作對應到 API
📐 Design 架構 command groups / state model / 輸出格式
🔨 Implement 用 Click 寫出 CLI + REPL + JSON output + undo/redo
📋 Plan Tests 產出 TEST.md(unit + E2E plan)
🧪 Write Tests 把測試實作出來
📝 Document 把測試結果寫回 TEST.md
📦 Publish 生成 setup.py + 裝進 PATH
→ agent 不再需要為每個軟體手刻 wrapper。Pipeline 跑完一次就有完整 CLI、SKILL.md、測試、setup.py。
為什麼是 CLI 而不是 MCP?¶
README 直接陳述設計哲學:
| CLI 優勢 | 為什麼 agent 友善 |
|---|---|
| Structured & Composable | 文字指令對 LLM 友善、可串接(pipe / xargs / scripts) |
| Lightweight & Universal | 不需要 daemon、不需要 transport 層、無相依 |
| Self-Describing | --help 自帶說明,agent 一秒上手 |
| Proven Success | Claude Code 每天靠 CLI 跑成千上萬個 workflow |
| JSON output | 機器讀直接 parse |
| Deterministic | 結果可重現,agent 行為可預期 |
→ 隱含主張:CLI 是比 MCP server 更輕量、更通用的 agent 介面。MCP 要起 server、要連 stdio/HTTP、要管 lifecycle;CLI 是「shell 直接呼叫」。對開發者門檻低很多。
→ 對照 [[rag-anything]] 的 MCP-server 路線、[[linebot-multimodal-rag]] 的 Gemini File Search 路線,CLI-Anything 走的是第三條路——「讓 agent 直接呼叫 shell 工具」。
60+ 已支援軟體(依領域分類)¶
從 repo 根目錄掃出來的子目錄,每個都是一個獨立 CLI harness:
| 領域 | 軟體 |
|---|---|
| 3D / CAD | Blender、FreeCAD、CloudCompare |
| 2D / 影像 / 繪圖 | GIMP、Krita、Inkscape、Sketch |
| 影音 / 直播 | Audacity、Kdenlive、Shotcut、OBS Studio、Openscreen、VideoCaptioner |
| GIS / 地圖 | QGIS |
| 辦公 / 文件 | LibreOffice、Mubu、draw.io、Mermaid |
| 筆記 / 知識管理 | Obsidian、Zotero、NotebookLM |
| 遊戲引擎 / 遊戲 | Godot、Sbox、Slay the Spire II |
| 音樂 | MuseScore |
| 工作流自動化 | n8n、Dify、ComfyUI |
| 瀏覽器 / Web | Safari、Browser、Openscreen |
| 開發工具 | iTerm2、LLDB、PM2、WireMock、Mailchimp、Anygen |
| GPU / Rendering | RenderDoc、Nsight Graphics、Unreal Insights、NSLogger |
| 網路 / 雲端 | CloudAnalyzer、AdGuardHome、RMS、SeaClip |
| 金融 / Web3 | Firefly-iii、eth2-quickstart |
| AI / ML | Ollama、ChromaDB、Novita、UniMol Tools |
| 協作 / 通訊 | Zoom |
| OSINT | IntelWatch |
| CLI-Hub 自身 | cli-hub、cli-hub-meta-skill、anygen、macrocli、skill_generation |
→ 覆蓋面驚人:從 Blender / GIMP / FreeCAD 這種重 GUI 創作工具,到 LLDB / GPU profiler 這種開發者深度工具,到 Zoom / Mailchimp 這種協作 SaaS,再到 Slay the Spire II 這種遊戲 agent 介面,全部用同一個 pipeline 自動產。
CLI-Hub:「npm for agent CLIs」¶
CLI-Hub 是 CLI-Anything 的 package manager + registry:
或 npm 風格:
特性:
public_registry.json列出所有公開 CLI(含 pip / npm / brew / 系統工具多 install 源)- PyPI auto-publish workflow:每個 merge 自動發版
- Live end-to-end checks:CI 真實跑 install / update / uninstall 驗證
- 公開貢獻流程:開 PR → review merge → Hub 立即更新
- 可上自家 repo:CLI 可以放在自己 repo 下,CLI-Hub 用
skill_mdURL 引用即可([[zotero]] CLI 就是這樣)
與多 AI Coding Agent 平台整合¶
不只 Claude Code——CLI-Anything 對下列七個 agent 平台都有 first-class 支援:
| 平台 | 安裝路徑 |
|---|---|
| Claude Code | /plugin marketplace add HKUDS/CLI-Anything → /plugin install cli-anything |
| Pi Coding Agent | .pi-extension/cli-anything/install.sh(全域裝進 ~/.pi/agent/extensions/) |
| OpenClaw | 內建支援(2026-03-15 merged) |
| OpenCode | opencode-commands/ |
| Codex | codex-skill/(2026-03-12 merged) |
| Qodercli | qoder-plugin/(2026-03-13 merged) |
| GitHub Copilot CLI | 透過 skill 機制 |
→ 一份 CLI harness、七個平台共用——這是 CLI 作為 agent 介面的最大優勢,跨平台零改動。
工作流範例:把 GIMP 變成 agent-native¶
# 1. 裝 plugin
/plugin marketplace add HKUDS/CLI-Anything
/plugin install cli-anything
# 2. 一個指令搞定(跑 7 階段)
/cli-anything ./gimp
# 3. 結果:你現在有完整 GIMP CLI
gimp-cli image open ./photo.jpg
gimp-cli filter gaussian-blur --radius 5
gimp-cli image save ./output.png
# 4. (選用)增量擴充覆蓋
/cli-anything:refine ./gimp "I want more CLIs on batch processing and filters"
:refine 子指令做 gap analysis——比對軟體完整功能跟目前 CLI 覆蓋度,增量補上缺失,可跑很多次、非破壞性。
HARNESS.md 與 SKILL.md 雙層架構¶
CLI-Anything 對每個 CLI 維護兩份 markdown:
| 檔案 | 給誰看 | 內容 |
|---|---|---|
HARNESS.md |
開發者 | 該 CLI 的設計決策、phase 進度、實作細節 |
SKILL.md |
AI agent | 該 CLI 的功能總覽、命令、何時用、JSON schema |
→ 對照 [[mattpocock-skills]] 的 CLAUDE.md(meta-rules)+ CONTEXT.md(domain language) 雙層拆分,CLI-Anything 對應的是 HARNESS.md(工程紀錄)+ SKILL.md(agent 介面)——「給人看的」與「給 agent 看的」嚴格分離,已成為 2026 Skill 生態系的共識結構。
2026-04-18 還做了一次「所有 SKILL.md 統一到頂層 skills/ 目錄」的大整併,每個 CLI 從一個 canonical source 安裝。
目前限制與注意事項¶
- 強相依目標軟體已安裝:CLI 只是 wrapper,底層仍要本機有 GIMP / Blender / FreeCAD 等。不是「替代品」,是「自動化介面」。
- Windows 體驗較差:Claude Code 在 Windows 跑 shell 需要 Git for Windows 或 WSL 才能用
bash/cygpath。 - 品質依賴 generation pipeline:自動產的 CLI 可能漏掉部份功能、抽象不完美,需要
/cli-anything:refine多輪修補。 - 沒在演 agent 行為:CLI-Anything 只提供「工具表面」,agent 要怎麼用、是否會用對、是 agent / Skill 端的責任——這個 repo 不做 agent decision logic。
- 每個 CLI 各自的安全模型不同:GIMP CLI 給檔案系統存取、Browser CLI 給網路、Zoom CLI 給日曆/會議——權限模型分散,production 用要逐一審查(GIMP Script-Fu path injection 就在 2026-03-14 被修過)。
- CLI 還在快速演進:2026-04 一個月就 merge 了 QGIS / UniMol / Safari / Obsidian / Eth2 / Zotero / n8n / Exa / Godot / WireMock / Slay the Spire II / VideoCaptioner 等 12+ CLI,API 仍會頻繁變動。
研究價值與啟示¶
關鍵洞察¶
- 「CLI 是 agent 的最佳介面」是 2026 浮現的共識:對比 MCP server 路線需要 daemon、傳輸層、生命週期管理,CLI 是「shell 呼叫 +
--help描述 + JSON 輸出」三件套,對所有平台都通用、設計成本最低。CLI-Anything 用 36k stars 在 2 個月內證明這個論點被市場接受。 - 「Software Agent-Native」是個被低估的市場機會:絕大多數 GUI 軟體(GIMP、Blender、Audacity、Zoom)沒有 agent 介面、API 文件對 LLM 不友善。把這些軟體變 agent-native 是「最後一哩路」——大廠不會做(投入產出比低),但開源社群可以靠自動化 pipeline 用半人工方式蓋完。
- 「7 階段 pipeline + Skill 化」是現代 codegen 工作流範本:Analyze → Design → Implement → Plan Tests → Write Tests → Document → Publish,每階段獨立、有測試門檻、有產出物。這個結構可以直接抄去做任何 codegen 場景(不只 CLI)。
/cli-anything:refine的 gap analysis 思路值得學:不是一次寫完,而是「初版 → 跑 → 比對 spec → 補缺 → 再跑」的 incremental loop。這跟 [[mattpocock-skills]] 的/improve-codebase-architecture(每幾天跑一次反熵)、[[zeuikli-claude-code-best-practices]] 的「Skill 保留門檻 30 天評估」是同一條哲學光譜——agent 工作流要設計成可被反覆 refine 的,不是一次完成的。- HARNESS.md / SKILL.md 雙層架構是 Skill 生態系的浮現共識:對應 [[mattpocock-skills]] 的 CLAUDE.md + CONTEXT.md。「給人 / 給 agent」的文件嚴格分離正在成為 best practice。
- HKUDS 的「Anything」系列形成完整生態圈:LightRAG → [[rag-anything]] → CLI-Anything,三個 repo 在 2 年內合計 70k+ stars,HKUDS 已成為東亞最有產出的 LLM infra lab 之一。CLI-Anything + RAG-Anything 一起用,等於「agent 能查資料 + agent 能用任何軟體」兩塊基石都有開源解。
- CLI-Hub 是「應用商店化」的 agent skills 嘗試:對標 npm / PyPI,為 agent skill 建立「可被搜尋、可被一鍵安裝、可被自動更新」的市集。這個方向若成功,會深刻改變 agent 開發體驗——你想做某個任務,先到 CLI-Hub 看有沒有人做過。
與其他研究的關聯¶
- 與 [[rag-anything]]:HKUDS 同個 lab 的姊妹專案,rag-anything 解「agent 能查資料」、cli-anything 解「agent 能用工具」。兩者搭起來是完整 agent infra。
- 與 [[mattpocock-skills]]、[[casper-claude-skill-design-gallery]]:Skill 生態系的三條主軸——Matt 走 workflow(grilling / tdd)、Casper 走 design(25 風格圖鑑)、CLI-Anything 走 tool-wrapping(60+ 軟體)。三者構成 Skill 應用的完整光譜。
- 與 [[abdixere-api]]:abdixere-api 主張「Agent 工具層要乾淨小巧、context memory 給 Skill」,CLI-Anything 是這個哲學的具體實踐——每個軟體一個 CLI,每個 CLI 一個 SKILL.md,工具層各自獨立。
- 與 [[zeuikli-claude-code-best-practices]] 第 6 章 MCP 整合:zeuikli 報告把 MCP / Skills / Subagents / Hooks 做職責分離,CLI-Anything 是「用 CLI 取代 MCP server 作為工具層」的另一條路線。對比兩者可以判斷你自己專案該選哪邊。
- 與 [[mcp-for-beginners]]、[[ai-agents-for-beginners]]:Microsoft 教材重 MCP,CLI-Anything 是輕量替代路線。對學習者來說兩個一起讀能看清「工具層該抽象到哪一層」的取捨。
- 與 AWS LangGraph + Strands agent sample(討論中未寫成筆記):那個專案的 MCP server 也是 subprocess,跟 CLI-Anything 哲學相通——「工具是 process,不是 import」。
- 對 retail quant 應用:可以用 CLI-Anything pipeline 把 TWSE / Yahoo Finance / TEJ 等台股資料源包成 agent-native CLI,讓 Claude / Codex 直接用。