diff --git a/.github/scripts/generate_meta_skill.py b/.github/scripts/generate_meta_skill.py new file mode 100644 index 000000000..c3bba90d5 --- /dev/null +++ b/.github/scripts/generate_meta_skill.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +"""Generate cli-hub-skill/SKILL.md from registry.json.""" +import json +from pathlib import Path +from collections import defaultdict + +def main(): + repo_root = Path(__file__).parent.parent.parent + registry_path = repo_root / 'registry.json' + output_path = repo_root / 'cli-hub-skill' / 'SKILL.md' + + with open(registry_path) as f: + data = json.load(f) + + # Group by category + by_category = defaultdict(list) + for cli in data['clis']: + by_category[cli['category']].append(cli) + + lines = [ + "---", + "name: cli-anything-hub", + "description: >-", + f" Browse and install {len(data['clis'])}+ agent-native CLI tools for GUI software.", + " Covers image editing, 3D, video, audio, office, diagrams, AI, and more.", + "---", + "", + "# CLI-Anything Hub", + "", + f"Agent-native stateful CLI interfaces for {len(data['clis'])} applications. All CLIs support `--json` output, REPL mode, and undo/redo.", + "", + "## Quick Install", + "", + "```bash", + "# Install any CLI", + f"pip install git+{data['meta']['repo']}.git#subdirectory=/agent-harness", + "", + "# Example: Install GIMP CLI", + f"pip install git+{data['meta']['repo']}.git#subdirectory=gimp/agent-harness", + "```", + "", + "## Available CLIs", + "" + ] + + for category in sorted(by_category.keys()): + clis = by_category[category] + lines.append(f"### {category.title()}") + lines.append("") + lines.append("| Name | Description | Install |") + lines.append("|------|-------------|---------|") + + for cli in sorted(clis, key=lambda x: x['name']): + name = cli['display_name'] + desc = cli['description'] + install = f"`{cli['install_cmd']}`" + lines.append(f"| **{name}** | {desc} | {install} |") + + lines.append("") + + lines.extend([ + "## Usage Pattern", + "", + "All CLIs follow the same pattern:", + "", + "```bash", + "# Interactive REPL", + "cli-anything-", + "", + "# One-shot command", + "cli-anything- [options]", + "", + "# JSON output for agents", + "cli-anything- --json ", + "```", + "", + "## For AI Agents", + "", + "1. Install the CLI you need from the table above", + "2. Read its full SKILL.md at the repo path shown in registry.json", + "3. Always use `--json` flag for machine-readable output", + "4. Check exit codes (0=success, non-zero=error)", + "", + "## More Info", + "", + f"- Repository: {data['meta']['repo']}", + "- Web Hub: https://hkuds.github.io/CLI-Anything/", + f"- Last Updated: {data['meta']['updated']}", + ]) + + output_path.parent.mkdir(parents=True, exist_ok=True) + output_path.write_text('\n'.join(lines) + '\n') + print(f"Generated meta-skill with {len(data['clis'])} CLIs at {output_path}") + +if __name__ == '__main__': + main() diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index bebd3e151..f9197cf0c 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -6,8 +6,10 @@ on: - main paths: - '*/agent-harness/**' + - 'registry.json' - '.github/workflows/deploy-pages.yml' - '.github/scripts/update_registry_dates.py' + - '.github/scripts/generate_meta_skill.py' workflow_dispatch: permissions: diff --git a/.github/workflows/update-cli-hub-skill.yml b/.github/workflows/update-cli-hub-skill.yml new file mode 100644 index 000000000..d99cc6fbf --- /dev/null +++ b/.github/workflows/update-cli-hub-skill.yml @@ -0,0 +1,40 @@ +name: Update CLI-Hub Skill + +on: + push: + branches: + - main + paths: + - 'registry.json' + - '.github/scripts/generate_meta_skill.py' + workflow_dispatch: + +permissions: + contents: write + +jobs: + update-skill: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: '3.10' + + - name: Generate meta-skill + run: python3 .github/scripts/generate_meta_skill.py + + - name: Commit if changed + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add cli-hub-skill/SKILL.md + if git diff --cached --quiet; then + echo "No changes to commit" + else + git commit -m "chore: auto-update cli-hub-skill/SKILL.md from registry.json" + git push + fi diff --git a/.gitignore b/.gitignore index 4f222dbd7..a44aa68d4 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ !/codex-skill/ !/skill_generation/ !/openclaw-skill/ +!/cli-hub-skill/ # Step 4: Allow each software dir (top level only) !/gimp/ diff --git a/README.md b/README.md index 4a6206299..a310b9731 100644 --- a/README.md +++ b/README.md @@ -41,17 +41,29 @@ 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-23** ๐Ÿค– Launched **CLI-Hub meta-skill** โ€” agents can now discover and install CLIs autonomously via [`cli-hub-skill/SKILL.md`](cli-hub-skill/SKILL.md). The catalog auto-updates from `registry.json` via GitHub Actions, making the entire marketplace agent-native. + +- **2026-03-22** ๐ŸŽต **MuseScore CLI** merged with transpose, export, and instrument management. Community contributions continue expanding domain coverage. + +- **2026-03-21** ๐Ÿ”ง Infrastructure improvements โ€” refined test harnesses and documentation across multiple CLIs. Enhanced Windows compatibility for several backends. + +- **2026-03-20** ๐ŸŒ **Novita AI** CLI added for OpenAI-compatible API access. Registry metadata improvements for better hub discovery. + +- **2026-03-19** ๐Ÿ“ฆ Package structure refinements across harnesses. Improved SKILL.md generation with better command documentation. + +- **2026-03-18** ๐Ÿงช Test coverage expansion โ€” additional E2E scenarios and edge case validation across multiple CLIs. + - **2026-03-17** ๐ŸŒ Launched the **[CLI-Hub](https://hkuds.github.io/CLI-Anything/)** โ€” 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. +
+Earlier news + - **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. - **2026-03-14** ๐Ÿ”’ Fixed a GIMP Script-Fu path injection vulnerability and added **Japanese README** translation. OpenCode version requirements documented alongside several Windows compatibility improvements. -
-Earlier news - - **2026-03-13** ๐Ÿ”Œ **Qodercli** plugin officially merged as a community contribution with dedicated setup scripts. Codex skill gained a Windows install script, and placeholder URLs were cleaned up across the project. - **2026-03-12** ๐Ÿ“ฆ **Codex skill** integration landed, bringing CLI-Anything to yet another AI coding platform. Qodercli support was also introduced, and documentation was updated with limitations and experimental labels. @@ -384,6 +396,32 @@ Each installed CLI ships with a [`SKILL.md`](#-skillmd-generation) inside the Py --- +## ๐Ÿค– Empower Your Agents with CLI-Hub + +CLI-Hub lets agents autonomously discover and install the CLIs they need โ€” zero human intervention required. + +CLI-Anything ships a **meta-skill** at [`cli-hub-skill/SKILL.md`](cli-hub-skill/SKILL.md) that lets any AI agent browse, pick, and install from the full catalog of community CLIs โ€” no human in the loop. + +**How it works:** + +1. Point your agent at the [CLI-Hub SKILL.md](https://raw.githubusercontent.com/HKUDS/CLI-Anything/main/cli-hub-skill/SKILL.md) +2. The agent reads the catalog โ€” 20+ CLIs organized by category with one-line `pip install` commands +3. The agent installs whichever CLI fits the task, then reads that CLI's own SKILL.md for detailed usage + +```bash +# Example: agent needs to edit images +# 1. Agent reads the hub skill, finds GIMP CLI under "Image" +# 2. Agent runs: +pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=gimp/agent-harness +# 3. Agent uses cli-anything-gimp --json for all operations +``` + +The meta-skill auto-updates whenever `registry.json` changes โ€” new community CLIs show up automatically. + +> **For Claude Code users:** You can also copy [`cli-hub-skill/SKILL.md`](cli-hub-skill/SKILL.md) into your project or skills directory so Claude can discover available CLIs on its own. + +--- + ## ๐Ÿ’ก CLI-Anything's Vision: Building Agent-Native Software โ€ข ๐ŸŒ **Universal Access** - Every software becomes instantly agent-controllable through structured CLI. diff --git a/cli-hub-skill/SKILL.md b/cli-hub-skill/SKILL.md new file mode 100644 index 000000000..87f3e209c --- /dev/null +++ b/cli-hub-skill/SKILL.md @@ -0,0 +1,135 @@ +--- +name: cli-anything-hub +description: >- + Browse and install 20+ agent-native CLI tools for GUI software. + Covers image editing, 3D, video, audio, office, diagrams, AI, and more. +--- + +# CLI-Anything Hub + +Agent-native stateful CLI interfaces for 20 applications. All CLIs support `--json` output, REPL mode, and undo/redo. + +## Quick Install + +```bash +# Install any CLI +pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=/agent-harness + +# Example: Install GIMP CLI +pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=gimp/agent-harness +``` + +## Available CLIs + +### 3D + +| Name | Description | Install | +|------|-------------|---------| +| **Blender** | 3D modeling, animation, and rendering via blender --background --python | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=blender/agent-harness` | + +### Ai + +| Name | Description | Install | +|------|-------------|---------| +| **ComfyUI** | AI image generation workflow management via ComfyUI REST API | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=comfyui/agent-harness` | +| **NotebookLM** | Experimental NotebookLM harness scaffold wrapping the installed notebooklm CLI for notebook, source, chat, artifact, download, and sharing workflows | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=notebooklm/agent-harness` | +| **Novita** | Access AI models via Novita's OpenAI-compatible API (DeepSeek, GLM, MiniMax) | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=novita/agent-harness` | +| **Ollama** | Local LLM inference and model management via Ollama REST API | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=ollama/agent-harness` | + +### Audio + +| Name | Description | Install | +|------|-------------|---------| +| **Audacity** | Audio editing and processing via sox | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=audacity/agent-harness` | + +### Communication + +| Name | Description | Install | +|------|-------------|---------| +| **Zoom** | Meeting management via Zoom REST API (OAuth2) | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=zoom/agent-harness` | + +### Diagrams + +| Name | Description | Install | +|------|-------------|---------| +| **Draw.io** | Diagram creation and export via draw.io CLI | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=drawio/agent-harness` | +| **Mermaid** | Mermaid Live Editor state files and renderer URLs | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=mermaid/agent-harness` | + +### Generation + +| Name | Description | Install | +|------|-------------|---------| +| **AnyGen** | Generate docs, slides, websites and more via AnyGen cloud API | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=anygen/agent-harness` | + +### Image + +| Name | Description | Install | +|------|-------------|---------| +| **GIMP** | Raster image processing via gimp -i -b (batch mode) | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=gimp/agent-harness` | +| **Inkscape** | SVG vector graphics with export via inkscape --export-filename | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=inkscape/agent-harness` | + +### Music + +| Name | Description | Install | +|------|-------------|---------| +| **MuseScore** | CLI for music notation โ€” transpose, export PDF/audio/MIDI, extract parts, manage instruments | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=musescore/agent-harness` | + +### Network + +| Name | Description | Install | +|------|-------------|---------| +| **AdGuardHome** | DNS ad-blocking and network infrastructure management via AdGuardHome REST API | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=adguardhome/agent-harness` | + +### Office + +| Name | Description | Install | +|------|-------------|---------| +| **LibreOffice** | Create and manipulate ODF documents, export to PDF/DOCX/XLSX/PPTX via headless mode | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=libreoffice/agent-harness` | +| **Mubu** | Knowledge management and outlining via local Mubu desktop data | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=mubu/agent-harness` | + +### Streaming + +| Name | Description | Install | +|------|-------------|---------| +| **OBS Studio** | Create and manage streaming/recording scenes via command line | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=obs-studio/agent-harness` | + +### Video + +| Name | Description | Install | +|------|-------------|---------| +| **Kdenlive** | Video editing and rendering via melt | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=kdenlive/agent-harness` | +| **Shotcut** | Video editing and rendering via melt/ffmpeg | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=shotcut/agent-harness` | + +### Web + +| Name | Description | Install | +|------|-------------|---------| +| **Browser** | Browser automation via DOMShell MCP server. Maps Chrome's Accessibility Tree to a virtual filesystem for agent-native navigation. | `pip install git+https://github.com/HKUDS/CLI-Anything.git#subdirectory=browser/agent-harness` | + +## Usage Pattern + +All CLIs follow the same pattern: + +```bash +# Interactive REPL +cli-anything- + +# One-shot command +cli-anything- [options] + +# JSON output for agents +cli-anything- --json +``` + +## For AI Agents + +1. Install the CLI you need from the table above +2. Read its full SKILL.md at the repo path shown in registry.json +3. Always use `--json` flag for machine-readable output +4. Check exit codes (0=success, non-zero=error) + +## More Info + +- Repository: https://github.com/HKUDS/CLI-Anything +- Web Hub: https://hkuds.github.io/CLI-Anything/ +- Last Updated: 2026-03-18