Taprun source ↗
Entry · clawhub

clawhub/publish

Publish a skill to OpenClaw ClawHub

modifies data (write)

Run it

$ tap clawhub/publish

What it returns

ColumnType
statustext
urltext

Arguments

NameTypeDefaultDescription
slugstringSkill slug (e.g. 'tap')
displayNamestringDisplay name (e.g. 'Tap')
versionstringSemver version (e.g. '0.1.0')
skillFilestringAbsolute path to SKILL.md file
changelogstringChangelog text

What it does

Publish a skill to OpenClaw ClawHub

Install Taprun once

Taprun ships as a single MCP server exposing a catalog of compiled taps. One-time setup on macOS / Linux:

brew install LeonTing1010/tap/taprun
tap mcp connect

Or drop this into your claude_desktop_config.json (works identically in Claude Code, Cursor, Cline, Windsurf — any MCP host):

{
  "mcpServers": {
    "tap": {
      "command": "tap",
      "args": ["mcp", "start"]
    }
  }
}

Call clawhub/publish

Terminal, once installed:

tap run clawhub/publish

From the MCP host — exact same compiled plan, deterministic replay, zero LLM tokens:

tap.run({ site: "clawhub", name: "publish" })

Why compile it once

This plan was forged once — the AI read clawhub, picked stable structural addresses (JSON-LD, ARIA, RSS, or declared API endpoints, in that priority order), and saved them to a .plan.json. Every replay since then has used zero LLM tokens. When clawhub ships a site change that breaks the extraction, tap verify surfaces it before your data goes stale — not after your pipeline silently writes garbage for a week.

Provenance

Source
LeonTing1010/tap-skills/blob/main/community/clawhub/publish.plan.json
Machine format
publish.jsonld — W3C Annotation
Last verify run
never
License
MIT