A comprehensive backup, update, and restore tool for your OpenClaw environment. Protect your config, workspace, and skills with automatic rollback, encrypted backups, and cloud sync.
# Check for available updates
update-plus check
# Create a full backup
update-plus backup
# Update everything (creates backup first)
update-plus update
# Preview changes (no modifications)
update-plus update --dry-run
# Restore from backup
update-plus restore openclaw-backup-2026-01-25-12:00:00.tar.gz| Feature | Description |
|---|---|
| Full Backup | Backup entire environment (config, workspace, skills) |
| Auto Backup | Creates backup before every update |
| Auto Rollback | Reverts to previous commit if update fails |
| Smart Restore | Restore everything or specific parts (config, workspace) |
| Multi-Directory | Separate prod/dev skills with independent update settings |
| Encrypted Backups | Optional GPG encryption |
| Cloud Sync | Upload backups to Google Drive, S3, Dropbox via rclone |
| Notifications | Get notified via WhatsApp, Telegram, or Discord |
| Connection Retry | Auto-retry on network failure (configurable) |
git clone https://github.com/hopyky/update-plus.git ~/.openclaw/skills/update-plusmkdir -p ~/bin
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc # or ~/.bashrc
source ~/.zshrc
ln -sf ~/.openclaw/skills/update-plus/bin/update-plus ~/bin/update-plus| Dependency | Required | Purpose |
|---|---|---|
git |
Yes | Update skills from repositories |
jq |
Yes | Parse JSON configuration |
rsync |
Yes | Efficient file copying |
rclone |
No | Cloud storage sync |
gpg |
No | Backup encryption |
Create ~/.openclaw/update-plus.json:
{
"backup_dir": "~/.openclaw/backups",
"backup_before_update": true,
"backup_count": 5,
"backup_paths": [
{"path": "~/.openclaw", "label": "config", "exclude": ["backups", "logs", "media"]},
{"path": "~/.openclaw/workspace", "label": "workspace", "exclude": ["node_modules", ".venv"]}
],
"skills_dirs": [
{"path": "~/.openclaw/skills", "label": "prod", "update": true}
],
"remote_storage": {
"enabled": false,
"rclone_remote": "gdrive:",
"path": "openclaw-backups"
},
"encryption": {
"enabled": false,
"gpg_recipient": "your-email@example.com"
},
"notifications": {
"enabled": false,
"target": "+1234567890",
"on_success": true,
"on_error": true
},
"connection_retries": 3,
"connection_retry_delay": 60
}For cron jobs running at night when the network might be unstable:
| Option | Default | Description |
|---|---|---|
connection_retries |
3 | Number of retry attempts |
connection_retry_delay |
60 | Seconds between retries |
update-plus backupupdate-plus list-backups# Standard update (with automatic backup)
update-plus update
# Preview changes only
update-plus update --dry-run
# Skip backup
update-plus update --no-backup
# Force continue even if backup fails
update-plus update --force# Restore everything
update-plus restore backup.tar.gz
# Restore only config
update-plus restore backup.tar.gz config
# Restore only workspace
update-plus restore backup.tar.gz workspaceupdate-plus check# Install daily at 2 AM
update-plus install-cron
# Custom schedule
update-plus install-cron "0 3 * * 0" # Sundays at 3 AM
# Remove
update-plus uninstall-cronGet notified when updates complete or fail:
"notifications": {
"enabled": true,
"target": "+1234567890",
"on_success": true,
"on_error": true
}Target format determines channel:
+1234567890→ WhatsApp@username→ Telegramchannel:123→ Discord
bin/
├── update-plus # Main entry point
└── lib/
├── utils.sh # Logging, helpers, connection retry
├── config.sh # Configuration
├── backup.sh # Backup functions
├── restore.sh # Restore functions
├── update.sh # Update functions
├── notify.sh # Notifications
└── cron.sh # Cron management
- Added Homebrew path detection (
/opt/homebrew/bin) for cron jobs - Added
~/binto cron PATH for local symlinks - Updated example config with clearer workspace structure
- OpenClaw only (removed moltbot/clawdbot legacy support)
- Simplified configuration and paths
- Config: ~/.openclaw/update-plus.json
- Backups named: openclaw-backup-YYYY-MM-DD-HH:MM:SS.tar.gz
- Multi-bot support (openclaw, moltbot, clawdbot)
- Connection retry for cron jobs
- Modular architecture
- Smart package manager detection
Created by hopyky
MIT