Skills ayao-updater
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.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ayao99315/ayao-updater" ~/.claude/skills/openclaw-skills-ayao-updater && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/ayao99315/ayao-updater" ~/.openclaw/skills/openclaw-skills-ayao-updater && rm -rf "$T"
manifest:
skills/ayao99315/ayao-updater/SKILL.mdsource content
OpenClaw Auto Update
Keeps OpenClaw and installed ClawHub skills up to date automatically.
Prerequisites
CLI — required foropenclaw
,openclaw update
, and notificationsopenclaw gateway restart
CLI — required forclawhub
,clawhub list
, andclawhub inspectclawhub update
— required for loadingpython3config.json
4+ — required by the shell scripts for associative arrays and other modern Bash featuresbash
Quick Start
1. Install cron job (runs daily at 2 AM by default)
bash ~/.openclaw/workspace/skills/openclaw-auto-update/scripts/install-cron.sh
2. Run manually now
bash ~/.openclaw/workspace/skills/openclaw-auto-update/scripts/update.sh
3. Preview what would be updated (no changes)
bash ~/.openclaw/workspace/skills/openclaw-auto-update/scripts/update.sh --dry-run
Configuration
Create
~/.openclaw/workspace/skills/openclaw-auto-update/config.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
withconfig.json
and merges defaultspython3 - Updates OpenClaw — runs
; in preview mode it logs the equivalentopenclaw update --yes --no-restart
command without making changesopenclaw update --dry-run --yes --no-restart - Finds installed skills — enumerates skills via
, with workspace directory fallbackclawhub list - Checks release channel — uses
to skip pre-releases whenclawhub inspect <slug>skipPreRelease: true - Updates skills — runs
for each eligible installed skill; in preview mode it only logsclawhub update <slug> --no-input
because the installedclawhub update --all
CLI does not support update dry runsclawhub - 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
whenopenclaw message send --target <target> -m <message>
is set, otherwisenotifyTargetopenclaw system event --text <message> --mode now
Change Schedule
# 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
tail -f /tmp/openclaw-auto-update.log
Skip a Specific Skill Permanently
Add to
config.json:
{ "skipSkills": ["my-custom-skill", "work-internal"] }