--- name: cli-skill-collector description: "Detect installed CLI coding tools (Claude Code, Codex, Cursor, Copilot, Cline and more), search GitHub for matching agent skills, and install them to the detected tools via OmniRoute's built-in APIs." --- ## Overview Detect installed CLI coding tools (Claude Code, Codex, Cursor, Copilot, Cline and more), search GitHub for matching agent skills, and install them to the detected tools via OmniRoute's built-in APIs. ## Quick install ```bash npm install -g omniroute # or: npx omniroute omniroute --version ``` ## Subcommands ### `autostart` **Example:** ```bash omniroute autostart ``` ### `autostart enable` **Example:** ```bash omniroute autostart enable ``` ### `autostart disable` **Example:** ```bash omniroute autostart disable ``` ### `autostart toggle` **Example:** ```bash omniroute autostart toggle ``` ### `autostart status` **Example:** ```bash omniroute autostart status ``` ### `config` Show or update CLI tool configuration **Example:** ```bash omniroute config ``` ### `config list` List all CLI tools and config status **Flags:** - `--json` **Example:** ```bash omniroute config list ``` ### `config get ` Show current config for a tool **Flags:** - `--json` **Example:** ```bash omniroute config get ``` ### `config set ` Write config for a tool **Flags:** - `--model ` - `--non-interactive` - `--yes` - `--allow-container-write` **Example:** ```bash omniroute config set ``` ### `config validate ` Validate config format without writing **Flags:** - `--model ` - `--json` **Example:** ```bash omniroute config validate ``` ### `config opencode` Generate OpenCode config (alias for **Flags:** - `--model ` - `--non-interactive` - `--yes` - `--allow-container-write` **Example:** ```bash omniroute config opencode ``` ### `config lang` **Example:** ```bash omniroute config lang ``` ### `config get` **Flags:** - `--json` **Example:** ```bash omniroute config get ``` ### `config set ` **Flags:** - `--force` **Example:** ```bash omniroute config set ``` ### `config list` **Flags:** - `--json` **Example:** ```bash omniroute config list ``` ### `env` Show and manage environment variables **Example:** ```bash omniroute env ``` ### `env show` Show current environment variables **Flags:** - `--json` **Example:** ```bash omniroute env show ``` ### `env get ` Get a single environment variable **Example:** ```bash omniroute env get ``` ### `env set ` Set an environment variable (current session only) **Example:** ```bash omniroute env set ``` ### `setup` **Flags:** - `--password ` - `--add-provider` - `--provider ` - `--provider-name ` - `--api-key ` - `--default-model ` - `--provider-base-url ` - `--test-provider` - `--non-interactive` - `--list` **Example:** ```bash omniroute setup ``` ### `update` **Flags:** - `--check` - `--apply` - `--changelog` - `--dry-run` - `--no-backup` - `--yes` **Example:** ```bash omniroute update ``` # /cli-skill-collector — Agent Skill Collector Discover and install agent skills for your coding CLI tools — all through OmniRoute's built-in APIs. This skill teaches you how to: 1. **Detect** which coding CLIs are installed on this machine 2. **Search** GitHub for relevant agent skills (SKILL.md repos) 3. **Install** discovered skills to the detected coding tools No separate Skill Collector app needed — OmniRoute's own CLI detection + GitHub search handles everything. --- ## Step 1 — Detect installed coding tools Query OmniRoute's CLI tool detection to find which coding agents are installed: ```bash curl -H "Authorization: Bearer $OMNIROUTE_API_KEY" http://localhost:20128/api/skills/collect/detect ``` This returns: - Every CLI tool in OmniRoute's catalog (`CLI_TOOL_IDS`: claude, codex, cursor, copilot, opencode, cline, kilocode, hermes, hermes-agent, openclaw, droid, continue, qwen, windsurf, devin, antigravity, etc.) - Whether each is **installed** and **runnable** - GitHub skills **matched** to your installed tools (scored by relevance) Example response: ```json { "tools": { "codex": { "installed": true, "runnable": true, "command": "codex" }, "claude": { "installed": true, "runnable": true, "command": "claude" }, "cursor": { "installed": false, "runnable": false } }, "installedToolIds": ["codex", "claude"], "matchedSkills": [ { "toolId": "codex", "repo": "user/skill-codex-xxx", "score": 0.85, "stars": 120 }, { "toolId": "claude", "repo": "user/claude-agent-rules", "score": 0.92, "stars": 340 } ], "totalSkills": 85 } ``` --- ## Step 2 — Review matched skills For each installed tool, the API returns relevant GitHub repos that contain SKILL.md or agent configuration files. Use the `score` field to prioritize: | Score | Recommendation | | ----- | ----------------------------------------------- | | 0.80+ | Excellent — well-maintained, high stars, active | | 0.60+ | Good — relevant with decent quality | | 0.40+ | Fair — may need review | | <0.40 | Low quality — skip | You can also browse manually: ```bash curl -H "Authorization: Bearer $OMNIROUTE_API_KEY" \ "http://localhost:20128/api/github-skills?minStars=3&maxResults=50" ``` --- ## Step 3 — Install skills to detected tools Install a chosen skill to one or more detected tools: ```bash curl -X POST http://localhost:20128/api/skills/collect/install \ -H "Authorization: Bearer $OMNIROUTE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "repoName": "user/skill-codex-xxx", "targets": ["codex", "claude"], "description": "Agent skill for coding workflows" }' ``` This plans the installation path for each target tool: - **claude** → `~/.claude/skills/{category}/` - **codex** → `~/.codex/skills/{category}/` - **hermes** → `~/AppData/Local/hermes/skills/{category}/` - **opencode** → `~/.opencode/skills/{category}/` - **gemini** → `~/.gemini/skills/{category}/` The actual file sync (cloning from GitHub and copying SKILL.md) is done by the agent using standard `curl` + `cp` commands. --- ## Step 4 — Verify installation After installing, verify the skill is in place: ```bash # For Codex ls -la ~/.codex/skills/imported-github/*/SKILL.md # For Claude Code ls -la ~/.claude/skills/imported-github/*/SKILL.md # For Hermes (Windows) ls -la ~/AppData/Local/hermes/skills/imported-github/*/SKILL.md ``` Also re-check detection: ```bash curl -H "Authorization: Bearer $OMNIROUTE_API_KEY" http://localhost:20128/api/skills/collect/detect ``` --- ## Quick start (full workflow) ```bash AUTH_HEADER="Authorization: Bearer $OMNIROUTE_API_KEY" # 1. Detect DETECT=$(curl -s -H "$AUTH_HEADER" http://localhost:20128/api/skills/collect/detect) # 2. Pick top matched skill for first installed tool TOOL=$(echo "$DETECT" | python3 -c "import sys,json;d=json.load(sys.stdin);print(d['installedToolIds'][0] if d['installedToolIds'] else '')") SKILL=$(echo "$DETECT" | python3 -c "import sys,json;d=json.load(sys.stdin);ms=d.get('matchedSkills',[]);print(ms[0]['repo'] if ms else '')") if [ -n "$TOOL" ] && [ -n "$SKILL" ]; then # 3. Install curl -s -X POST http://localhost:20128/api/skills/collect/install \ -H "$AUTH_HEADER" \ -H "Content-Type: application/json" \ -d "{\"repoName\": \"$SKILL\", \"targets\": [\"$TOOL\"]}" echo "Installed $SKILL to $TOOL" fi ``` --- ## Notes - OmniRoute must be running locally on port 20128 (default) — see `docs/frameworks/SKILLS.md` for custom-port setups. - The `/api/skills/collect/*` and `/api/github-skills` endpoints require **management-scoped authentication** the same way every other `/api/skills/*` route does: a dashboard session, the loopback CLI token, or an API key with the `manage` scope (`requireManagementAuth()`). Auth is only bypassed when the server has no login/API-key requirement configured at all. - This replaces the standalone Skill Collector Python app — all logic is now inside OmniRoute.