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.md
source content

OpenClaw Auto Update

Keeps OpenClaw and installed ClawHub skills up to date automatically.

Prerequisites

  • openclaw
    CLI — required for
    openclaw update
    ,
    openclaw gateway restart
    , and notifications
  • clawhub
    CLI — required for
    clawhub list
    ,
    clawhub inspect
    , and
    clawhub update
  • python3
    — required for loading
    config.json
  • bash
    4+ — 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 ~/.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

  1. Loads JSON config — reads
    config.json
    with
    python3
    and merges defaults
  2. Updates OpenClaw — runs
    openclaw update --yes --no-restart
    ; in preview mode it logs the equivalent
    openclaw update --dry-run --yes --no-restart
    command without making changes
  3. Finds installed skills — enumerates skills via
    clawhub list
    , with workspace directory fallback
  4. Checks release channel — uses
    clawhub inspect <slug>
    to skip pre-releases when
    skipPreRelease: true
  5. Updates skills — runs
    clawhub update <slug> --no-input
    for each eligible installed skill; in preview mode it only logs
    clawhub update --all
    because the installed
    clawhub
    CLI does not support update dry runs
  6. Protects local changes — skips skills with uncommitted git changes
  7. Respects skip list — never touches skills in
    skipSkills
  8. Restarts gateway — only if OpenClaw version actually changed
  9. Notifies — sends
    openclaw message send --target <target> -m <message>
    when
    notifyTarget
    is set, otherwise
    openclaw 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"] }