Skill Release Pipeline

Workflows

Automate packaging, pushing to GitHub, and publishing OpenClaw skills to ClawHub, managing versions and sync across platforms.

Install

openclaw skills install skill-release-pipeline

Skill Publisher

Automate the full lifecycle of publishing OpenClaw skills: package → GitHub → ClawHub.

Prerequisites

  • gh CLI authenticated (gh auth status)
  • npx clawhub CLI authenticated (npx clawhub whoami)
  • A skill folder with a valid SKILL.md

Quick Start

Full Pipeline (package + GitHub + ClawHub)

# From the skill directory
scripts/publish.sh /path/to/skill-folder --repo owner/repo-name --version 1.0.0

Individual Steps

# 1. Validate & package only
scripts/validate.sh /path/to/skill-folder

# 2. Push to GitHub
scripts/push-github.sh /path/to/skill-folder --repo owner/repo-name

# 3. Publish to ClawHub
npx clawhub publish /path/to/skill-folder --version 1.0.0 --slug skill-name

Workflow

Step 1: Prepare the Skill Folder

Ensure the skill folder contains:

skill-name/
├── SKILL.md          (required — YAML frontmatter + markdown body)
├── LICENSE           (recommended — MIT)
├── examples/         (optional — usage examples)
├── scripts/          (optional — helper scripts)
├── references/       (optional — reference docs)
└── assets/           (optional — templates, images, fonts)

SKILL.md frontmatter must include:

---
name: skill-name
description: Clear description of what the skill does and when to activate it
---

Step 2: Push to GitHub

cd /path/to/skill-folder

# Init if needed
git init
git add -A
git commit -m "feat: initial release of skill-name"

# Create repo and push
gh repo create owner/repo-name --public --source=. --push

If the repo already exists:

git remote add origin https://github.com/owner/repo-name.git 2>/dev/null || true
git push -u origin main

Step 3: Publish to ClawHub

# Login if needed (opens browser)
npx clawhub login

# Publish with version
npx clawhub publish /path/to/skill-folder \
  --version 1.0.0 \
  --slug skill-name \
  --name "Display Name" \
  --tags "tag1,tag2"

# Verify
npx clawhub inspect skill-name

Note: ClawHub runs a security scan after publishing. The skill becomes searchable once the scan passes (usually within a few minutes).

Common Tasks

Update an Existing Skill

# 1. Make changes to the skill folder

# 2. Push to GitHub
cd /path/to/skill-folder
git add -A && git commit -m "fix: description of changes"
git push

# 3. Publish new version to ClawHub
npx clawhub publish /path/to/skill-folder --version 1.1.0

Fork an Existing Skill

npx clawhub publish /path/to/skill-folder \
  --version 1.0.0 \
  --slug my-fork-name \
  --fork-of original-skill@1.0.0

Check Publish Status

npx clawhub inspect skill-name
npx clawhub search skill-name

Troubleshooting

ErrorFix
--version must be valid semverAdd --version x.y.z flag
Skill is hidden while security scan is pendingWait a few minutes, then retry inspect
Not logged inRun npx clawhub login
gh: not authenticatedRun gh auth login
fatal: remote origin already existsSafe to ignore, or use git remote set-url

Naming Conventions

  • Slug: lowercase, hyphens only (e.g., figma-plugin-writer)
  • Repo: match the slug (e.g., openclaw-figma-plugin-writer)
  • Version: semver (e.g., 1.0.0, 1.2.3)