skills/skills.netease.im/skill-update-checker

skill-update-checker

SKILL.md

Skill Update Checker

Multi-source skill version checker and update notifier with configurable whitelist support and pluggable platform adapters.

Features

  • Multi-source support: ClawHub, GitHub, Git repositories, private skill platforms, ZIP packages
  • Configurable whitelist: Check all skills or only specified ones
  • Auto-discovery: Automatically scan global skills directory and all agent workspaces
  • Pluggable platform adapters: Default implementation for new platforms
  • Multiple notification channels: Console, Feishu, POPO, email
  • Structured output: Clear report with skill count, update details, version changes

Trigger Conditions

Activate this skill when user mentions:

  • "skill update check", "skill version check", "check skill updates"
  • "update skills", "skill更新", "skill版本检查", "skill更新检查"
  • "自动更新skill", "检查skill更新"

Do NOT trigger on:

  • OpenClaw core updates ("更新龙虾", "openclaw update", "升级openclaw")

Workflow

Step 1: Initialize Configuration (First Run)

Check if config exists at ~/.openclaw/skill-update-checker/config.json:

{
  "version": "1.1.0",
  "checkMode": "all",
  "whitelist": [],
  "scanPaths": [],
  "platforms": {
    "clawhub": { "enabled": true },
    "github": { "enabled": true },
    "netease": { 
      "enabled": true,
      "baseUrl": "https://skills.netease.com",
      "token": ""
    },
    "skillhub": {
      "enabled": true,
      "baseUrl": "https://skillhub.cn"
    },
    "skillPlatform": { "enabled": true, "defaultAdapter": true }
  },
  "skills": {
    "feishu-doc": {
      "platform": "netease",
      "source": "feishu-doc"
    },
    "my-skill": {
      "platform": "custom",
      "checkUrl": "https://custom-platform.com/api/skills/my-skill"
    }
  },
  "notification": {
    "channels": ["console"],
    "feishu": { "webhook": "" },
    "popo": { "webhook": "" },
    "email": { "to": "" }
  },
  "schedule": {
    "enabled": false,
    "cron": "0 9 * * *"
  }
}

If not exists, run initialization:

node ./scripts/init-config.mjs

This will:

  1. Read ~/.openclaw/openclaw.json to find all agent workspaces
  2. Scan and record all skills directories
  3. Generate default config

Step 2: Discover Skills

Run skill discovery:

node ./scripts/discover.mjs

This scans:

  • ~/.openclaw/skills/ (global skills)
  • ~/.openclaw/workspace/skills/ (workspace skills)
  • Each agent's <workspace>/skills/ (from openclaw.json)

Output: ~/.openclaw/skill-update-checker/skills-index.json

{
  "scannedAt": "2026-04-17T17:00:00Z",
  "skills": [
    {
      "name": "feishu-doc",
      "path": "/data/openclaw/skills/feishu-doc",
      "sourceType": "clawhub",
      "source": "clawhub/feishu-doc",
      "currentVersion": "1.2.0",
      "lastChecked": null
    },
    {
      "name": "my-custom-skill",
      "path": "~/.openclaw/skills/my-custom-skill",
      "sourceType": "github",
      "source": "owner/repo",
      "currentVersion": "v1.0.0",
      "lastChecked": null
    }
  ]
}

Step 3: Check for Updates

Run version check:

node ./scripts/check.mjs [--skill=<name>] [--output=json|markdown]

This will:

  1. Load skills index
  2. Filter by whitelist (if configured)
  3. For each skill, use appropriate adapter to check latest version
  4. Compare versions and generate update report

Step 4: Output Results

Console Output Format:

============================================================
📊 Skill Update Check Report
============================================================
Scan Time: 2026-04-17 17:00:00
Total Skills Scanned: 15
Skills with Updates: 3

------------------------------------------------------------
🔄 Available Updates
------------------------------------------------------------

1. feishu-doc
   Current:  1.2.0
   Latest:   1.3.0
   Source:   clawhub
   Changes:  Added feishu_bitable support, fixed auth issues
   Action:   clawhub install feishu-doc --force

2. my-custom-skill
   Current:  v1.0.0
   Latest:   v1.1.0
   Source:   github (owner/repo)
   Changes:  New features, bug fixes
   Action:   cd ~/.openclaw/skills/my-custom-skill && git pull

3. internal-tool
   Current:  1.0.0
   Latest:   1.0.1
   Source:   skill-platform (https://skills.example.com)
   Changes:  Security patch
   Action:   Manual update required

------------------------------------------------------------
✅ Up to Date (12 skills)
------------------------------------------------------------
- skill-creator (1.0.0)
- experience-manager (1.3.1)
- ...

============================================================
💡 Next Steps
============================================================
Run updates with: skill-update-checker update --all
Or update individually: skill-update-checker update <skill-name>

JSON Output Format:

{
  "scanTime": "2026-04-17T17:00:00Z",
  "summary": {
    "total": 15,
    "updatable": 3,
    "upToDate": 12
  },
  "updates": [
    {
      "name": "feishu-doc",
      "currentVersion": "1.2.0",
      "latestVersion": "1.3.0",
      "sourceType": "clawhub",
      "source": "clawhub/feishu-doc",
      "changes": "Added feishu_bitable support, fixed auth issues",
      "updateCommand": "clawhub install feishu-doc --force"
    }
  ],
  "upToDate": [
    { "name": "skill-creator", "version": "1.0.0" }
  ]
}

Supported Adapters

Platform Adapter Version Source Example URL
clawhub ClawHubAdapter clawhub info <slug> clawhub/skill-name
github GitHubAdapter GitHub Releases API owner/repo
netease NeteaseAdapter 网易集团 Skill 平台 API https://skills.netease.com/skills/@skill-name
skillhub SkillHubAdapter 腾讯 SkillHub 平台 API https://skillhub.cn/skills/skill-name

Skill-Level Configuration

Each skill can have its own platform, source, and download URL configuration:

{
  "skills": {
    "feishu-doc": {
      "platform": "netease",
      "source": "feishu-doc"
    },
    "my-custom-skill": {
      "platform": "github",
      "source": "myorg/my-custom-skill"
    },
    "internal-tool": {
      "platform": "custom",
      "checkUrl": "https://internal.company.com/api/skills/internal-tool/version",
      "downloadUrl": "https://internal.company.com/api/skills/internal-tool/download"
    },
    "skill-publisher": {
      "platform": "netease",
      "source": "skill-publisher",
      "downloadUrl": "https://skills.netease.com/api/skills/skill_0f9aceab5a57/download"
    }
  }
}

Platform values:

  • clawhub - Use ClawHub registry (auto-detects registry from ~/.config/clawhub/config.json)
  • github - Use GitHub releases
  • netease - Use 网易集团 Skill 平台
  • skillhub - Use 腾讯 SkillHub 平台

Configuration commands:

# Set platform and source
node config.mjs skill set feishu-doc netease feishu-doc

# Set custom version check URL
node config.mjs skill custom internal-tool https://api.company.com/skills/internal-tool/version

# Set custom download URL (highest priority for updates)
node config.mjs skill download-url skill-publisher https://skills.netease.com/api/skills/skill_xxx/download

Auto-discovery: If a skill is not in the skills config, the checker will:

  1. Try to match by name on all enabled platforms
  2. If not found, prompt user to provide platform/source
  3. Save user input to config for future checks

Configuration Management

Modify Whitelist

# Add to whitelist
node ./scripts/config.mjs whitelist add <skill-name>

# Remove from whitelist
node ./scripts/config.mjs whitelist remove <skill-name>

# Set check mode
node ./scripts/config.mjs set mode <whitelist|all>

Cron Setup

Enable automatic checking:

# Add to crontab
0 9 * * * node /path/to/scripts/check.mjs --notify

Or use OpenClaw cron:

openclaw cron add skill-update-check "0 9 * * *" \
  "node /path/to/scripts/check.mjs --notify"

Scripts Reference

Script Purpose
init-config.mjs Initialize configuration
discover.mjs Scan and index all skills
check.mjs Check for updates
update.mjs Execute updates
config.mjs Manage configuration
refresh-paths.mjs Refresh agent workspace paths

See references/ for detailed adapter implementation guides.

Installs
1
First Seen
10 days ago