/install skill-publisher-universal
Skill Publisher
A generic publishing workflow for any Claude Code skill. Package, validate, and publish to ClawHub (OpenClaw), Hermes Agent, and anthropics/skills (Claude Code).
When to Use
- User wants to publish a skill they've built to one or more marketplaces
- User needs a bilingual (EN/ZH) README for their skill
- User wants to validate SKILL.md format before publishing
- User needs help with
clawhub publishor GitHub PR submission
Prerequisites
Before using this skill, check for the following in the environment (or ask the user):
Authentication
These tokens are pre-configured in ~/.env and shell environment. Read them automatically — do not ask the user:
| Token | Env Var | Source |
|---|---|---|
| GitHub PAT | GITHUB_TOKEN |
~/.env or env |
| GitHub user | GITHUB_USER |
~/.env or env |
| ClawHub token | CLAWHUB_TOKEN |
~/.env or env |
If a variable is missing, read ~/.env first, then ask the user.
Network Connectivity
Before any GitHub API call, test connectivity first:
curl -s -m 5 https://api.github.com/repos/NousResearch/hermes-agent > /dev/null 2>&1 && echo "direct OK" || echo "direct FAIL"
If direct access fails (common in restricted networks), load proxy from ~/.env:
source ~/.env
# ~/.env may contain (possibly commented-out):
# https_proxy=http://192.168.28.92:7897
# http_proxy=http://192.168.28.92:7897
# Export the proxy ONLY if direct access failed:
export https_proxy=http://192.168.28.92:7897
export http_proxy=http://192.168.28.92:7897
# Re-test with proxy:
https_proxy=$https_proxy curl -s -m 10 https://api.github.com/ > /dev/null 2>&1 && echo "proxy OK" || echo "proxy FAIL"
Fallback strategy (ordered by priority):
- Direct HTTPS access — works in unrestricted networks
- Proxy from
~/.env— readhttps_proxy/http_proxyvalues; if commented out, uncomment and export them for this session only - SSH on port 22 —
[email protected]:...works without proxy in most environments; use forgit clone/push, but NOT for GitHub REST API (curl/gh api)
When proxy is also down: skip GitHub API PR creation. Push branch via SSH and instruct user to create PR manually via browser.
Workflow
Step 1: Validate Source Skill
python3 ~/.skills/skill-publisher/scripts/validate_skill.py \x3Cskill-path>
Checks: SKILL.md exists, valid YAML frontmatter, required fields (name, description), name format (lowercase, hyphens), description \x3C= 1024 chars, no hardcoded secrets, file size \x3C= 100,000 chars.
Step 2: Generate Publish Package
python3 ~/.skills/skill-publisher/scripts/generate_package.py \
--source ~/.skills/\x3Cskill-name> \
--output /tmp/publish-\x3Cskill-name> \
--platforms clawhub hermes anthropics
Produces:
/tmp/publish-\x3Cskill-name>/
├── SKILL.md # Copied from source
├── README.md # Bilingual (EN/ZH) README with examples
├── examples/ # Copied from source skill
└── .clawhub.json # ClawHub manifest
Step 3: Platform-Specific Publishing
ClawHub (OpenClaw)
CRITICAL: Always pass --slug \x3Cskill-name> to prevent ClawHub from using the directory name as the slug. Without --slug, a publish from /tmp/publish-my-skill/ would create a duplicate entry named publish-my-skill instead of my-skill.
clawhub publish /tmp/publish-\x3Cskill-name> --version \x3Cversion> --slug \x3Cskill-name>
If CLI unavailable: install npm i -g clawhub or upload via clawhub.ai.
Hermes Agent (GitHub PR)
Target: NousResearch/hermes-agent → skills/creative/\x3Cskill-name>/SKILL.md
- Fork repo on GitHub
- Clone fork, copy SKILL.md to
skills/creative/\x3Cskill-name>/ - Commit, push, create PR
anthropics/skills (GitHub PR)
Target: anthropics/skills → skills/\x3Cskill-name>/SKILL.md
Same process as Hermes, different repo.
Step 4: Verify
# ClawHub
curl -s "https://clawhub.ai/api/v1/skills?slug=\x3Cskill-name>"
# Hermes / anthropics — check raw GitHub URLs
Helper Scripts
| Script | Purpose |
|---|---|
scripts/validate_skill.py |
Validate SKILL.md format |
scripts/generate_package.py |
Generate publish package with bilingual README |
scripts/gen_clawhub_manifest.py |
Generate .clawhub.json |
scripts/create_pr.py |
Create GitHub PR via API |
Common Pitfalls
- SKILL.md first bytes must be
---— no BOM, no blank line - ClawHub rejects hardcoded secrets — scan scripts/ before publishing
- Hermes requires metadata —
metadata.hermes.tagsandrelated_skills - Network issues — always test connectivity first. If direct HTTPS fails, load proxy from
~/.envand re-test. If proxy also fails, use SSH ([email protected]:...) for git operations and tell user to create PR manually via browser - ClawHub slug mismatch — always pass
--slug \x3Cskill-name>when publishing; otherwise the directory name becomes the slug, creating a wrong/duplicate entry (e.g.publish-my-skillinstead ofmy-skill)
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install skill-publisher-universal - 安装完成后,直接呼叫该 Skill 的名称或使用
/skill-publisher-universal触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Publish Skill Publisher 是什么?
Generic publishing tool for Claude Code skills. Validates, packages, and publishes to ClawHub, Hermes Agent, and anthropics/skills with bilingual README supp... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 34 次。
如何安装 Publish Skill Publisher?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install skill-publisher-universal」即可一键安装,无需额外配置。
Publish Skill Publisher 是免费的吗?
是的,Publish Skill Publisher 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Publish Skill Publisher 支持哪些平台?
Publish Skill Publisher 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Publish Skill Publisher?
由 Walle(@zhangyanbo2007)开发并维护,当前版本 v1.1.0。