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 代理 之間架起缺失的橋樑,所有一切皆由自動化生成管道與共享註冊表支援。
相關
- 專案
- 專案
- 專案
- 專案
- 專案