OpenClaw Updater
Safely update OpenClaw with automatic pre-flight safety checks and rollback capability.
Pre-Update Checklist
Before running openclaw update, always run the pre-update script:
bash scripts/pre-update.sh
Optional: specify a backup script to run during pre-flight:
BACKUP_SCRIPT=~/repo/scripts/backup-openclaw.sh bash scripts/pre-update.sh
The script will:
- Find all
workspace*directories under~/.openclaw/ - Git commit any uncommitted changes (init git if missing)
- Back up
openclaw.jsonto/tmp/openclaw.json.bak - Run the backup script if provided
- Save the current version to
/tmp/openclaw-prev-version.txt
Telegram Notification Setup
The update script sends success/failure notifications via Telegram Bot API (bypasses OpenClaw gateway, so it works even if the update breaks the gateway).
Create ~/.openclaw/.telegram-notify.env:
TELEGRAM_BOT_TOKEN=<your-bot-token>
TELEGRAM_CHAT_ID=<your-chat-id>
chmod 600 ~/.openclaw/.telegram-notify.env
The bot token is the same one used by your OpenClaw Telegram channel. Chat ID can be found via openclaw directory.
Update (with notification)
Run the full update with automatic pre-flight + notification:
bash scripts/update.sh
This will: pre-flight → update → wait for gateway → notify via Telegram.
Update (manual)
After pre-flight passes:
openclaw update
Post-Update Verification
After updating, verify:
openclaw status
openclaw gateway status
Check that:
- Version shows the new release
- Gateway is running
- All agents are responsive
Rollback
If the update breaks something:
bash scripts/rollback.sh
The script will:
- Read the saved previous version from
/tmp/openclaw-prev-version.txt - Install that version via
npm install -g openclaw@<version> - Optionally restore
openclaw.jsonfrom backup - Restart the gateway
Manual Rollback
If the rollback script isn't available:
# Install specific version
npm install -g openclaw@<version>
# Restore config
cp /tmp/openclaw.json.bak ~/.openclaw/openclaw.json
# Restart
openclaw gateway restart
Restore from Full Backup
If config and workspaces are both corrupted:
# Find latest backup
ls -t ~/repo/backups/openclaw-*.tar.gz | head -1
# Restore (overwrites ~/.openclaw/)
tar xzf ~/repo/backups/openclaw-<timestamp>.tar.gz -C ~/