From bae4e0ffda724c4d68110332113a385c7a270b4f Mon Sep 17 00:00:00 2001 From: yuhao Date: Tue, 17 Mar 2026 15:39:45 +0000 Subject: [PATCH] launching CLI-Hub --- .github/PULL_REQUEST_TEMPLATE.md | 2 + .gitignore | 6 + CONTRIBUTING.md | 33 ++- README.md | 5 + docs/hub/index.html | 482 +++++++++++++++++++++++++++++++ registry.json | 165 +++++++++++ 6 files changed, 692 insertions(+), 1 deletion(-) create mode 100644 docs/hub/index.html create mode 100644 registry.json diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 2910d82bc..01e65ee1f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -25,6 +25,7 @@ Fixes # - [ ] Unit tests at `cli_anything//tests/test_core.py` are present and pass without backend - [ ] E2E tests at `cli_anything//tests/test_full_e2e.py` are present - [ ] `README.md` includes the new software (with link to harness directory) +- [ ] `registry.json` includes an entry for the new software (for the [CLI-Hub](https://hkuds.github.io/CLI-Anything/hub/)) - [ ] `repl_skin.py` in `utils/` is an unmodified copy from the plugin ### For Existing CLI Modifications @@ -34,6 +35,7 @@ Fixes # - [ ] All unit tests pass: `python3 -m pytest cli_anything//tests/test_core.py -v` - [ ] All E2E tests pass: `python3 -m pytest cli_anything//tests/test_full_e2e.py -v` - [ ] No test regressions — no previously passing tests were removed or weakened +- [ ] `registry.json` entry is updated if version, description, or requirements changed ### General Checklist diff --git a/.gitignore b/.gitignore index 6b44fe45b..cfc7c36d6 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,9 @@ assets/gen_typing_gif.py !opencode-commands/ !/qoder-plugin/ +# Step 10: Allow CLI Hub registry and frontend +!/registry.json +!/docs/ +/docs/* +!/docs/hub/ + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e3eb8cb1f..f143e8633 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,8 @@ Adding a new CLI harness is the most impactful contribution. Before submitting a 2. **`SKILL.md`** — the AI-discoverable skill definition exists inside the Python package at `cli_anything//SKILL.md`. 3. **Tests** — unit tests (`test_core.py`, passable without backend) and E2E tests (`test_full_e2e.py`) are present and passing. 4. **`README.md`** — the project README includes the new software with a link to its harness directory. -5. **`repl_skin.py`** — an unmodified copy from the plugin exists in `utils/`. +5. **`registry.json`** — add an entry for the new software so it appears on the [CLI-Hub](https://hkuds.github.io/CLI-Anything/hub/). +6. **`repl_skin.py`** — an unmodified copy from the plugin exists in `utils/`. ### B) New Features @@ -32,6 +33,36 @@ Bug fixes resolve incorrect behavior in existing harnesses or the plugin. - Include a test that reproduces the bug and verifies the fix. - Ensure all existing tests for the affected harness still pass. +## CLI-Hub & Registry + +All available CLIs are listed in `registry.json` at the repo root and displayed on the [CLI-Hub](https://hkuds.github.io/CLI-Anything/hub/). The hub reads `registry.json` directly from `main`, so it updates immediately when a PR is merged. + +### Adding a new CLI to the Hub + +Include an entry in `registry.json` as part of your PR. Each entry has this shape: + +```json +{ + "name": "my-software", + "display_name": "My Software", + "version": "1.0.0", + "description": "Short description of what the CLI does", + "requires": "backend software or null", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=my-software/agent-harness", + "entry_point": "cli-anything-my-software", + "skill_md": "my-software/agent-harness/cli_anything/my_software/skills/SKILL.md", + "category": "category-name" +} +``` + +### Updating an existing CLI on the Hub + +When you modify an existing harness, update its `registry.json` entry in the same PR: + +- Bump the `version` field to reflect the change. +- Update `description`, `requires`, or `category` if they changed. +- The hub will reflect the update as soon as the PR is merged to `main`. + ## Development Setup Each generated CLI lives in `/agent-harness/` and is an independent Python package: diff --git a/README.md b/README.md index d5add4e3e..70872de20 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ CLI-Anything: Bridging the Gap Between AI Agents and the World's Software Quick Start + CLI Hub Demos Tests License @@ -24,6 +25,8 @@ CLI-Anything: Bridging the Gap Between AI Agents and the World's Software CLI-Anything typing demo

@@ -38,6 +41,8 @@ CLI-Anything: Bridging the Gap Between AI Agents and the World's Software Thanks to all invaluable efforts from the community! More updates continuously on the way everyday.. +- **2026-03-17** 🌐 Launched the **[CLI-Hub](https://hkuds.github.io/CLI-Anything/hub/)** — a central registry where you can browse, search, and install any CLI with a single `pip` command. Contributors can add new CLIs or update existing ones by simply opening a PR with a `registry.json` entry. The hub updates automatically on merge. + - **2026-03-16** 🤖 Added **SKILL.md generation** (Phase 6.5) — every generated CLI now ships with an AI-discoverable skill definition inside the Python package. ReplSkin auto-detects the skill file after `pip install`, and the REPL banner displays the absolute path for agents. Includes `skill_generator.py`, Jinja2 template, `package_data` in all setup.py files, and 51 new tests. - **2026-03-15** 🐾 Support for **OpenClaw** from the community! Merged Windows `cygpath` guard to ensure CLI-Anything works reliably in Windows bash environments. Community contributions continue to strengthen cross-platform support. diff --git a/docs/hub/index.html b/docs/hub/index.html new file mode 100644 index 000000000..53ef62873 --- /dev/null +++ b/docs/hub/index.html @@ -0,0 +1,482 @@ + + + + + + CLI-Hub + + + +
+

CLI-Anything Hub

+

Any software. Any codebase. Any Web API. Generate an agent-native CLI and let AI agents operate it — install with a single pip command.

+ +

We welcome contributions for any application — desktop apps, dev tools, cloud services, SaaS APIs, creative suites, and beyond. If it has a GUI or an API, it deserves an agent-native CLI. Open a PR and bring it to the hub!

+
+
+
-
+
CLIs Available
+
+
+
-
+
Categories
+
+
+
+ +
+ +
+
+ +
+ + + + + + diff --git a/registry.json b/registry.json new file mode 100644 index 000000000..86011a3a6 --- /dev/null +++ b/registry.json @@ -0,0 +1,165 @@ +{ + "meta": { + "repo": "https://github.com/HKUDS/CLI-Anything", + "description": "CLI-Hub — Agent-native stateful CLI interfaces for softwares, codebases, and Web Services", + "updated": "2026-03-17" + }, + "clis": [ + { + "name": "anygen", + "display_name": "AnyGen", + "version": "1.0.0", + "description": "Generate docs, slides, websites and more via AnyGen cloud API", + "requires": "ANYGEN_API_KEY", + "homepage": "https://anygen.com", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=anygen/agent-harness", + "entry_point": "cli-anything-anygen", + "skill_md": "anygen/agent-harness/cli_anything/anygen/skills/SKILL.md", + "category": "generation" + }, + { + "name": "audacity", + "display_name": "Audacity", + "version": "1.0.0", + "description": "Audio editing and processing via sox", + "requires": "sox (apt install sox)", + "homepage": "https://www.audacityteam.org", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=audacity/agent-harness", + "entry_point": "cli-anything-audacity", + "skill_md": "audacity/agent-harness/cli_anything/audacity/skills/SKILL.md", + "category": "audio" + }, + { + "name": "blender", + "display_name": "Blender", + "version": "1.0.0", + "description": "3D modeling, animation, and rendering via blender --background --python", + "requires": "blender", + "homepage": "https://www.blender.org", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=blender/agent-harness", + "entry_point": "cli-anything-blender", + "skill_md": "blender/agent-harness/cli_anything/blender/skills/SKILL.md", + "category": "3d" + }, + { + "name": "comfyui", + "display_name": "ComfyUI", + "version": "1.0.0", + "description": "AI image generation workflow management via ComfyUI REST API", + "requires": "ComfyUI running at http://localhost:8188", + "homepage": "https://github.com/comfyanonymous/ComfyUI", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=comfyui/agent-harness", + "entry_point": "cli-anything-comfyui", + "skill_md": null, + "category": "ai" + }, + { + "name": "drawio", + "display_name": "Draw.io", + "version": "1.0.0", + "description": "Diagram creation and export via draw.io CLI", + "requires": "draw.io desktop app", + "homepage": "https://www.drawio.com", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=drawio/agent-harness", + "entry_point": "cli-anything-drawio", + "skill_md": "drawio/agent-harness/cli_anything/drawio/skills/SKILL.md", + "category": "diagrams" + }, + { + "name": "gimp", + "display_name": "GIMP", + "version": "1.0.0", + "description": "Raster image processing via gimp -i -b (batch mode)", + "requires": "gimp (apt install gimp)", + "homepage": "https://www.gimp.org", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=gimp/agent-harness", + "entry_point": "cli-anything-gimp", + "skill_md": "gimp/agent-harness/cli_anything/gimp/skills/SKILL.md", + "category": "image" + }, + { + "name": "inkscape", + "display_name": "Inkscape", + "version": "1.0.0", + "description": "SVG vector graphics with export via inkscape --export-filename", + "requires": "inkscape (apt install inkscape)", + "homepage": "https://inkscape.org", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=inkscape/agent-harness", + "entry_point": "cli-anything-inkscape", + "skill_md": "inkscape/agent-harness/cli_anything/inkscape/skills/SKILL.md", + "category": "image" + }, + { + "name": "kdenlive", + "display_name": "Kdenlive", + "version": "1.0.0", + "description": "Video editing and rendering via melt", + "requires": "melt (apt install melt)", + "homepage": "https://kdenlive.org", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=kdenlive/agent-harness", + "entry_point": "cli-anything-kdenlive", + "skill_md": "kdenlive/agent-harness/cli_anything/kdenlive/skills/SKILL.md", + "category": "video" + }, + { + "name": "libreoffice", + "display_name": "LibreOffice", + "version": "1.0.0", + "description": "Create and manipulate ODF documents, export to PDF/DOCX/XLSX/PPTX via headless mode", + "requires": "libreoffice", + "homepage": "https://www.libreoffice.org", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=libreoffice/agent-harness", + "entry_point": "cli-anything-libreoffice", + "skill_md": "libreoffice/agent-harness/cli_anything/libreoffice/skills/SKILL.md", + "category": "office" + }, + { + "name": "mermaid", + "display_name": "Mermaid", + "version": "1.0.0", + "description": "Mermaid Live Editor state files and renderer URLs", + "requires": null, + "homepage": "https://mermaid.js.org", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=mermaid/agent-harness", + "entry_point": "cli-anything-mermaid", + "skill_md": null, + "category": "diagrams" + }, + { + "name": "obs-studio", + "display_name": "OBS Studio", + "version": "1.0.0", + "description": "Create and manage streaming/recording scenes via command line", + "requires": "obs-studio", + "homepage": "https://obsproject.com", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=obs-studio/agent-harness", + "entry_point": "cli-anything-obs-studio", + "skill_md": "obs-studio/agent-harness/cli_anything/obs_studio/skills/SKILL.md", + "category": "streaming" + }, + { + "name": "shotcut", + "display_name": "Shotcut", + "version": "1.0.0", + "description": "Video editing and rendering via melt/ffmpeg", + "requires": "melt (apt install melt), ffmpeg (apt install ffmpeg)", + "homepage": "https://shotcut.org", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=shotcut/agent-harness", + "entry_point": "cli-anything-shotcut", + "skill_md": "shotcut/agent-harness/cli_anything/shotcut/skills/SKILL.md", + "category": "video" + }, + { + "name": "zoom", + "display_name": "Zoom", + "version": "1.0.0", + "description": "Meeting management via Zoom REST API (OAuth2)", + "requires": "Zoom account + OAuth app credentials", + "homepage": "https://zoom.us", + "install_cmd": "pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=zoom/agent-harness", + "entry_point": "cli-anything-zoom", + "skill_md": "zoom/agent-harness/cli_anything/zoom/skills/SKILL.md", + "category": "communication" + } + ] +}