集成

Skill Hub United

试用

Install skills from multiple skill hubs with one tool: clawhub.ai (default), skillhub.cn (SkillHub, China-optimized), skills.sh (npx skills, GitHub-based), t...

它能做什么

Install skills from multiple skill hubs with one tool: clawhub.ai (default), skillhub.cn (SkillHub, China-optimized), skills.sh (npx skills, GitHub-based), the official anthropics/skills repo, and your own self-hosted "custom" hub. Routes to the right source based on how the user phrases the request, handles name collisions (rename/overwrite/abort), Anthropic source-available license gating, multi-skill repos, and path-traversal-safe extraction. Use when the user says "install skill X", "add skill X", "download skill X", "get X from clawhub", "get X from skillhub.cn", "use skills.sh to install X", "install the claude/anthropic X skill", or "install X from my hub". Also triggers in Chinese: "安装skill xxx"、"装一下xxx"、"下载skill xxx"、 "从 clawhub 装 xxx"、"从 skillhub.cn 装 xxx"、"用 skills.sh 装 xxx"、 "装 claude 的 xxx"、"从我的 hub 装 xxx"。

技能文档

Skill Hub United Installer

One installer for multiple skill hubs — picks the right source from how the user phrases the request.

Sources

SourceWhat it isAuth
clawhub (default)clawhub.ai public hub (REST, with npx clawhub fallback)none
skillhub_cnskillhub.cn — SkillHub, a China-optimized public hub (REST)none
skills_shskills.sh / npx skills CLI (GitHub-source based)none
anthropicthe official anthropics/skills GitHub repo (sparse-checkout)none
customyour own self-hosted hub — any GET / endpoint that returns a skill zipup to you

1. Source routing (read first)

User wording--source
no source mentioned / "clawhub" / "openclaw official" / defaultclawhub (default)
"skillhub.cn" / "腾讯 skillhub" / "tencent skillhub" / "国内 hub" / "skillhub 中国"skillhub_cn
"skills.sh" / "npx skills" / "open skills" / "skills cli"skills_sh
"anthropic" / "claude official" / "claude skills" / "anthropics/skills"anthropic
"my hub" / "custom hub" / "self-hosted" / "private hub" / "company hub"custom

Ambiguity: if the user names multiple sources or is unclear, ask first ("Which source — clawhub / skillhub.cn / skills.sh / anthropic / custom?"); do not guess.

2. Workflow

  1. Parse the input:
    • Extract the slug (e.g. "install my-tool" → slug = my-tool)
    • Decide source from the table above
    • For skills.sh, the slug must be org/repo or org/repo#skill or a full git URL — ask if a bare word is given
  2. Call the script:
    python3 /scripts/install_skill.py  --source 
    
  3. Handle the structured exit code:
    • 0 success → relay the script output to the user
    • 1 failure → relay the error and suggest a next step based on the message
    • 2 name conflict → script prints JSON {"status":"conflict", "base_name", "suggested_rename", ...}. Tell the user about the conflict and let them choose:
      • Rename install (use suggested_rename) → re-run with --rename
      • Overwrite existing → re-run with --rename (script overwrites)
      • Abort → stop
    • 3 Anthropic license restriction → script prints JSON {"status":"license_required", "slug", ...}. Ask the user using the script's message verbatim ("This skill's license only permits use inside Claude — still install?"). On confirmation re-run with --force-license
    • 4 skills.sh repo has multiple skills → script prints JSON {"status":"multi_skill", "available":[...], ...}. Show the list and let the user pick, then re-run with #
    • 5 custom source selected but SKILL_HUB_CUSTOM_URL not set → guide the user to configure it (see section 4 below)
  4. Report: on success, briefly state which directory it installed to and which source was used.

3. Naming convention

On normal install, the package's own name is used (no prefix). Only on a name collision does the script offer a source-prefixed suggested_rename:

SourceConflict prefixExample (vs local coding-agent)
customcustom-custom-coding-agent
clawhubclawhub-clawhub-coding-agent
skillhub_cnshcn-shcn-coding-agent
skills.shsh-sh-coding-agent
anthropicclaude-claude-coding-agent

After a rename the script syncs the SKILL.md frontmatter name, so it won't trigger a new conflict.

4. Custom (self-hosted) hub — one-time setup

The custom source lets you install from your own hub — handy for private, enterprise, or air-gapped skill registries. The only contract is:

A GET / request returns the skill packaged as a zip.

Configure the base URL once via the SKILL_HUB_CUSTOM_URL environment variable. To avoid re-exporting it every session, write it to your shell rc file once:

# one-time: append to ~/.bashrc (or ~/.zshrc)
echo 'export SKILL_HUB_CUSTOM_URL="https://my-hub.example.com/api/skill/download"' >> ~/.bashrc
source ~/.bashrc

# verify it's set
echo "$SKILL_HUB_CUSTOM_URL"

# then install from your hub
python3 /scripts/install_skill.py my-tool --source custom
# → GET https://my-hub.example.com/api/skill/download/my-tool → unzip into the skills dir

If SKILL_HUB_CUSTOM_URL is unset and --source custom is used, the script exits 5 with an actionable message — it never makes a network call.

Where skills get installed

The installer resolves the target skills directory in this order:

  1. SKILL_HUB_SKILLS_DIR (explicit override)
  2. OPENCLAW_SKILLS_DIR (OpenClaw-specific override)
  3. ~/.claude/skills/~/.openclaw/workspace/skills/~/.config/skills/ (first existing wins)

Set SKILL_HUB_SKILLS_DIR the same one-time way if your agent uses a non-standard path.

5. Source details

clawhub (default)

  • REST first: https://clawhub.ai/api/v1/download?slug=
  • Falls back to npx clawhub@latest install if REST fails
  • Final directory name follows the package's SKILL.md name (clawhub slugs often carry an owner prefix)

skillhub_cn (skillhub.cn)

  • REST: https://api.skillhub.cn/api/v1/download?slug= → 302 → skill zip
  • No public CLI, so there is no fallback path (unlike clawhub's npx)
  • 404 (slug not found) / 401 / 403 (private) / network errors reported clearly; a 200 with a JSON error body is detected and reported
  • Final directory name follows the package's SKILL.md name
  • China-optimized public hub; good when clawhub.ai is slow/unreachable from the user's network

skills.sh

  • Calls npx skills@latest add -y --copy [-s ]
  • Source format:
    • org/repo → installs all skills in the repo; if multiple, exits 4 to ask the user
    • org/repo# → installs a single skill (recommended)
    • full URL / git remote — same rules
  • A bare word (no /) is rejected

anthropic

  • git clone --depth 1 --filter=blob:none --sparse anthropics/skills + sparse-checkout set skills/
  • License gating: docx/xlsx/pdf/pptx/doc-coauthoring/internal-comms are source-available (Claude-only). The script blocks these and requires --force-license.
  • Other subdirs (algorithmic-art / canvas-design / frontend-design / mcp-builder / skill-creator / webapp-testing / ...) are Apache 2.0 and install freely.
  • Defaults to a claude- prefix to avoid local name collisions.

custom (self-hosted)

  • GET / → expects a skill zip
  • 404 / 403 / network errors reported clearly; a 200 with a JSON error body (a hub returning an error masquerading as a zip) is detected and reported
  • Requires SKILL_HUB_CUSTOM_URL (exit 5 if unset)

6. Edge cases

  • Wrong slug / 404: report and suggest checking the hub
  • Illegal slug chars (.., absolute path, special chars): rejected at entry (exit 1) to prevent path traversal
  • Network / timeout: report and suggest retry
  • npx unavailable: clawhub/skills.sh paths need Node.js — say so
  • Name collision (exit 2): see Workflow step 3 — must ask the user
  • Anthropic source-available limit (exit 3): see Workflow step 3 — use the script's message verbatim
  • skills.sh multi-skill repo (exit 4): see Workflow step 3 — show available and let the user pick
  • Custom hub not configured (exit 5): guide the user through section 4
  • Malicious archive (path traversal): the script verifies zip/tar member paths don't escape the target dir and rejects malicious packages

7. Out of scope

  • ❌ No cross-source auto-fallback (if not found, report clearly and let the user decide)
  • ❌ No cross-source aggregated search (that's a different concern)
  • ❌ Anthropic source-available skills are never installed by default — --force-license required
  • ❌ Never overwrites a local same-named skill without the user asking

Part of build-better-skills

This skill belongs to the build-better-skills suite. For the full lifecycle map (Install → Audit → Release → Testing → Sediment), all sibling skills, and their current status, see the Stages table on the suite repo home — kept as the single source of truth (this file does not duplicate it).

相关技能

Install or upgrade a ClawHub skill, then make the global copy under the machine's OpenClaw home `skills/` directory the final source of truth. Use when the u...

14 次安装

根据用户当前需求,从 SkillHub、ClawHub、本地已安装、官方内置四层搜索中智能匹配,输出适配度最高的 3 个技能,包含功能亮点、优缺点对比和综合评价。只推荐不安装,用户决策后再动手。支持 /skill 指令和 slash command 启动。

将 ClawHub 的 skill 链接转换为 SkillHub (skillhub.cn) 链接,并在 SkillHub 上按相关度搜索、推荐 skill。当用户搜索某功能/名称的 skill、给出 clawhub.ai 的 skill 链接、或希望寻找 ClawHub 之外的 skill 来源(规避其过于严格的安全审查)时使用本技能。

Monitor download counts for your ClawHub-published skills. Track changes over time, generate daily/weekly/monthly reports, and push notifications via Feishu.

5 次安装

将本地开发的 Skills 批量同步到 ClawHub 与腾讯 SkillHub 两个平台。支持智能 .gitignore 过滤、白名单控制、增量同步、单个 skill 同步、双平台分流发布。本技能应在用户需要将本地 skills 发布到 ClawHub/SkillHub、批量同步技能、检查发布状态时使用。

13 次安装

用自然语言描述需求或关键词,从六个来源中匹配最合适的技能。

作者 桂皮12 次安装1 星标