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
+
@@ -24,6 +25,8 @@ CLI-Anything: Bridging the Gap Between AI Agents and the World's Software
@@ -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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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"
+ }
+ ]
+}