ayao-updater
by ayao99315
Automatically update OpenClaw and all installed skills on a schedule. Use when: (1) setting up automatic updates for OpenClaw or skills, (2) running a manual update check, (3) configuring update schedule, skip lists, or pre-release filtering, (4) user says "auto update", "schedule updates", "keep openclaw updated", "update skills automatically". Handles locally-modified skill protection, conflict avoidance, pre-release filtering, and completion or failure notifications.
安装
claude skill add --url https://github.com/openclaw/skills文档
OpenClaw Auto Update
Keeps OpenClaw and installed ClawHub skills up to date automatically.
Prerequisites
openclawCLI — required foropenclaw update,openclaw gateway restart, and notificationsclawhubCLI — required forclawhub list,clawhub inspect, andclawhub updatepython3— required for loadingconfig.jsonbash4+ — required by the shell scripts for associative arrays and other modern Bash features
Quick Start
1. Install cron job (runs daily at 2 AM by default)
bash
bash ~/.openclaw/workspace/skills/openclaw-auto-update/scripts/install-cron.sh
2. Run manually now
bash
bash ~/.openclaw/workspace/skills/openclaw-auto-update/scripts/update.sh
3. Preview what would be updated (no changes)
bash
bash ~/.openclaw/workspace/skills/openclaw-auto-update/scripts/update.sh --dry-run
Configuration
Create ~/.openclaw/workspace/skills/openclaw-auto-update/config.json:
json
{
"schedule": "0 2 * * *",
"skipSkills": [],
"skipPreRelease": true,
"restartGateway": true,
"notify": true,
"notifyTarget": null
}
See references/config-schema.md for all options and examples.
What It Does
- Loads JSON config — reads
config.jsonwithpython3and merges defaults - Updates OpenClaw — runs
openclaw update --yes --no-restart; in preview mode it logs the equivalentopenclaw update --dry-run --yes --no-restartcommand without making changes - Finds installed skills — enumerates skills via
clawhub list, with workspace directory fallback - Checks release channel — uses
clawhub inspect <slug>to skip pre-releases whenskipPreRelease: true - Updates skills — runs
clawhub update <slug> --no-inputfor each eligible installed skill; in preview mode it only logsclawhub update --allbecause the installedclawhubCLI does not support update dry runs - Protects local changes — skips skills with uncommitted git changes
- Respects skip list — never touches skills in
skipSkills - Restarts gateway — only if OpenClaw version actually changed
- Notifies — sends
openclaw message send --target <target> -m <message>whennotifyTargetis set, otherwiseopenclaw system event --text <message> --mode now
Change Schedule
bash
# Change to 3 AM weekly on Sunday
bash ~/.openclaw/workspace/skills/openclaw-auto-update/scripts/install-cron.sh --schedule "0 3 * * 0"
# Uninstall cron job
bash ~/.openclaw/workspace/skills/openclaw-auto-update/scripts/install-cron.sh --uninstall
Logs
bash
tail -f /tmp/openclaw-auto-update.log
Skip a Specific Skill Permanently
Add to config.json:
json
{ "skipSkills": ["my-custom-skill", "work-internal"] }