cli-skill-collector
GitHubOmniRoute CLI工具,用于检测已安装的AI编码助手(如Claude Code、Cursor等),搜索并自动安装匹配的Agent技能。提供配置管理、环境设置、自动启动控制及更新功能,支持容器化环境的安全配置写入限制。
Trigger Scenarios
Install
npx skills add diegosouzapw/OmniRoute --skill cli-skill-collector -g -y
SKILL.md
Frontmatter
{
"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
npm install -g omniroute # or: npx omniroute
omniroute --version
Subcommands
autostart
Example:
omniroute autostart
autostart enable
Example:
omniroute autostart enable
autostart disable
Example:
omniroute autostart disable
autostart toggle
Example:
omniroute autostart toggle
autostart status
Example:
omniroute autostart status
config
Show or update CLI tool configuration
Example:
omniroute config
config list
List all CLI tools and config status
Flags:
--json
Example:
omniroute config list
config get <tool>
Show current config for a tool
Flags:
--json
Example:
omniroute config get <tool>
config set <tool>
Write config for a tool
Flags:
--model <model>--non-interactive--yes--allow-container-write
Example:
omniroute config set <tool>
config validate <tool>
Validate config format without writing
Flags:
--model <model>--json
Example:
omniroute config validate <tool>
config opencode
Generate OpenCode config (alias for
Flags:
--model <model>--non-interactive--yes--allow-container-write
Example:
omniroute config opencode
config lang
Example:
omniroute config lang
config get
Flags:
--json
Example:
omniroute config get
config set <code>
Flags:
--force
Example:
omniroute config set <code>
config list
Flags:
--json
Example:
omniroute config list
env
Show and manage environment variables
Example:
omniroute env
env show
Show current environment variables
Flags:
--json
Example:
omniroute env show
env get <key>
Get a single environment variable
Example:
omniroute env get <key>
env set <key> <value>
Set an environment variable (current session only)
Example:
omniroute env set <key> <value>
setup
Flags:
--password <value>--add-provider--provider <id>--provider-name <name>--api-key <value>--default-model <model>--provider-base-url <url>--test-provider--non-interactive--list
Example:
omniroute setup
update
Flags:
--check--apply--changelog--dry-run--no-backup--yes
Example:
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:
- Detect which coding CLIs are installed on this machine
- Search GitHub for relevant agent skills (SKILL.md repos)
- 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:
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:
{
"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:
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:
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:
# 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:
curl -H "Authorization: Bearer $OMNIROUTE_API_KEY" http://localhost:20128/api/skills/collect/detect
Quick start (full workflow)
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.mdfor custom-port setups. - The
/api/skills/collect/*and/api/github-skillsendpoints 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 themanagescope (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.
Version History
-
3d7ed7a
Current 2026-08-20 06:19
新增拒绝在临时容器中自动写入配置的逻辑,增强容器化环境下的安全性;增加config set的--allow-container-write标志以显式允许特定操作。
- 1cafd32 2026-07-25 11:47


