skills$openclaw/clawdbot-update-plus
hopyky4.3kā˜…

by hopyky

clawdbot-update-plus – OpenClaw Skill

clawdbot-update-plus is an OpenClaw Skills integration for coding workflows. Full backup, update, and restore for Clawdbot - config, workspace, and skills with auto-rollback

4.3k stars275 forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

nameclawdbot-update-plus
descriptionFull backup, update, and restore for Clawdbot - config, workspace, and skills with auto-rollback OpenClaw Skills integration.
ownerhopyky
repositoryhopyky/clawdbot-update-plus
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @hopyky/clawdbot-update-plus
last updatedFeb 7, 2026

Maintainer

hopyky

hopyky

Maintains clawdbot-update-plus in the OpenClaw Skills directory.

View GitHub profile
File Explorer
13 files
.
bin
lib
backup.sh
6.0 KB
config.sh
4.3 KB
cron.sh
1.8 KB
notify.sh
2.5 KB
restore.sh
7.0 KB
update.sh
10.2 KB
utils.sh
3.3 KB
_meta.json
470 B
clawdbot-update.example.json
825 B
README.md
7.6 KB
SKILL.md
8.0 KB
SKILL.md

name: clawdbot-update-plus description: Full backup, update, and restore for Clawdbot - config, workspace, and skills with auto-rollback version: 2.1.1 metadata: {"clawdbot":{"emoji":"šŸ”„","requires":{"bins":["git","jq","rsync"],"commands":["clawdbot"]}}}

šŸ”„ Clawdbot Update Plus

A comprehensive backup, update, and restore tool for your entire Clawdbot environment. Protect your config, workspace, and skills with automatic rollback, encrypted backups, and cloud sync.

Quick Start

# Check for available updates
clawdbot-update-plus check

# Create a full backup
clawdbot-update-plus backup

# Update everything (creates backup first)
clawdbot-update-plus update

# Preview changes (no modifications)
clawdbot-update-plus update --dry-run

# Restore from backup
clawdbot-update-plus restore clawdbot-update-2026-01-25-12:00:00.tar.gz

Features

FeatureDescription
Full BackupBackup entire environment (config, workspace, skills)
Auto BackupCreates backup before every update
Auto RollbackReverts to previous commit if update fails
Smart RestoreRestore everything or specific parts (config, workspace)
Multi-DirectorySeparate prod/dev skills with independent update settings
Encrypted BackupsOptional GPG encryption
Cloud SyncUpload backups to Google Drive, S3, Dropbox via rclone
NotificationsGet notified via WhatsApp, Telegram, or Discord
Modular ArchitectureClean, maintainable codebase

Installation

# Via ClawdHub
clawdhub install clawdbot-update-plus --dir ~/.clawdbot/skills

# Or clone manually
git clone https://github.com/hopyky/clawdbot-update-plus.git ~/.clawdbot/skills/clawdbot-update-plus

Add to PATH

Create a symlink to use the command globally:

mkdir -p ~/bin
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc  # or ~/.bashrc
source ~/.zshrc
ln -sf ~/.clawdbot/skills/clawdbot-update-plus/bin/clawdbot-update-plus ~/bin/clawdbot-update-plus

Dependencies

DependencyRequiredPurpose
gitYesUpdate skills from repositories
jqYesParse JSON configuration
rsyncYesEfficient file copying
rcloneNoCloud storage sync
gpgNoBackup encryption

Configuration

Create ~/.clawdbot/clawdbot-update.json:

{
  "backup_dir": "~/.clawdbot/backups",
  "backup_before_update": true,
  "backup_count": 5,
  "backup_paths": [
    {"path": "~/.clawdbot", "label": "config", "exclude": ["backups", "logs", "media", "*.lock"]},
    {"path": "~/clawd", "label": "workspace", "exclude": ["node_modules", ".venv"]}
  ],
  "skills_dirs": [
    {"path": "~/.clawdbot/skills", "label": "prod", "update": true},
    {"path": "~/clawd/skills", "label": "dev", "update": false}
  ],
  "remote_storage": {
    "enabled": false,
    "rclone_remote": "gdrive:",
    "path": "clawdbot-backups"
  },
  "encryption": {
    "enabled": false,
    "gpg_recipient": "your-email@example.com"
  },
  "notifications": {
    "enabled": false,
    "target": "+1234567890",
    "on_success": true,
    "on_error": true
  }
}

Configure what to backup with backup_paths:

OptionDescription
pathDirectory to backup (supports ~)
labelName in logs and restore
excludeFiles/folders to exclude

Recommended Setup

"backup_paths": [
  {"path": "~/.clawdbot", "label": "config", "exclude": ["backups", "logs", "media"]},
  {"path": "~/clawd", "label": "workspace", "exclude": ["node_modules", ".venv"]}
]

Configure which skills to update with skills_dirs:

OptionDescription
pathSkills directory
labelName in logs
updateRun git pull (true/false)

Recommended Setup

"skills_dirs": [
  {"path": "~/.clawdbot/skills", "label": "prod", "update": true},
  {"path": "~/clawd/skills", "label": "dev", "update": false}
]
  • Prod: Auto-update from ClawdHub/GitHub
  • Dev: Manual only (protects your work)

Commands

backup — Create Full Backup

clawdbot-update-plus backup

list-backups — List Available Backups

clawdbot-update-plus list-backups

update — Update Everything

# Standard update (with automatic backup)
clawdbot-update-plus update

# Preview changes only
clawdbot-update-plus update --dry-run

# Skip backup
clawdbot-update-plus update --no-backup

# Force continue even if backup fails
clawdbot-update-plus update --force

restore — Restore from Backup

# Restore everything
clawdbot-update-plus restore backup.tar.gz

# Restore only config
clawdbot-update-plus restore backup.tar.gz config

# Restore only workspace
clawdbot-update-plus restore backup.tar.gz workspace

# Force (no confirmation)
clawdbot-update-plus restore backup.tar.gz --force

check — Check for Updates

clawdbot-update-plus check

install-cron — Automatic Updates

# Install daily at 2 AM
clawdbot-update-plus install-cron

# Custom schedule
clawdbot-update-plus install-cron "0 3 * * 0"  # Sundays at 3 AM

# Remove
clawdbot-update-plus uninstall-cron

Notifications

Get notified when updates complete or fail:

"notifications": {
  "enabled": true,
  "target": "+1234567890",
  "on_success": true,
  "on_error": true
}

Target format determines channel:

  • +1234567890 → WhatsApp
  • @username → Telegram
  • channel:123 → Discord

Cloud Storage

Setup rclone

# Install
brew install rclone  # macOS
curl https://rclone.org/install.sh | sudo bash  # Linux

# Configure
rclone config

Enable in Config

"remote_storage": {
  "enabled": true,
  "rclone_remote": "gdrive:",
  "path": "clawdbot-backups"
}

Encrypted Backups

"encryption": {
  "enabled": true,
  "gpg_recipient": "your-email@example.com"
}

Logs

All operations are logged to ~/.clawdbot/backups/update.log:

[2026-01-25 20:22:48] === Update started 2026-01-25 20:22:48 ===
[2026-01-25 20:23:39] Creating backup...
[2026-01-25 20:23:39] Backup created: clawdbot-update-2026-01-25-20:22:48.tar.gz (625M)
[2026-01-25 20:23:39] Clawdbot current version: 2026.1.22
[2026-01-25 20:23:41] Starting skills update
[2026-01-25 20:23:41] === Update completed 2026-01-25 20:23:41 ===
[2026-01-25 20:23:43] Notification sent to +1234567890 via whatsapp

Log retention: Logs older than 30 days are automatically deleted.

Retention Policy

TypeRetentionConfig
Backups (local)Last N backupsbackup_count: 5
Backups (remote)Last N backupsSame as local
Logs30 daysAutomatic

Architecture (v2.0)

bin/
ā”œā”€ā”€ clawdbot-update-plus     # Main entry point
└── lib/
    ā”œā”€ā”€ utils.sh             # Logging, helpers
    ā”œā”€ā”€ config.sh            # Configuration
    ā”œā”€ā”€ backup.sh            # Backup functions
    ā”œā”€ā”€ restore.sh           # Restore functions
    ā”œā”€ā”€ update.sh            # Update functions
    ā”œā”€ā”€ notify.sh            # Notifications
    └── cron.sh              # Cron management

Changelog

v2.0.0

  • Complete architecture rewrite
  • Modular design (7 separate modules)
  • Cleaner codebase (~150 lines per module vs 1000+ monolith)
  • Better error handling
  • Improved restore with label support
  • Auto-detect notification channel from target format
  • Fixed --no-backup flag being ignored
  • Detailed logging to file with auto-purge
  • Backup retention policy (local + remote)

v1.7.0

  • Smart restore with label support
  • Auto-detect backup format

v1.6.0

  • Added backup_paths for full environment backup
  • Separated backup logic from update logic

v1.5.0

  • Multi-directory support (skills_dirs)

v1.4.0

  • Notifications via Clawdbot messaging

v1.3.0

  • Added check, diff-backups, install-cron commands

Author

Created by hopyky

License

MIT

README.md

Clawdbot Update Plus

A comprehensive backup, update, and restore tool for your entire Clawdbot environment. Protect your config, workspace, and skills with automatic rollback, encrypted backups, and cloud sync.

Quick Start

# Check for available updates
clawdbot-update-plus check

# Create a full backup
clawdbot-update-plus backup

# Update everything (creates backup first)
clawdbot-update-plus update

# Preview changes (no modifications)
clawdbot-update-plus update --dry-run

# Restore from backup
clawdbot-update-plus restore clawdbot-update-2026-01-25-12:00:00.tar.gz

Features

FeatureDescription
Full BackupBackup entire environment (config, workspace, skills)
Auto BackupCreates backup before every update
Auto RollbackReverts to previous commit if update fails
Smart RestoreRestore everything or specific parts (config, workspace)
Multi-DirectorySeparate prod/dev skills with independent update settings
Encrypted BackupsOptional GPG encryption
Cloud SyncUpload backups to Google Drive, S3, Dropbox via rclone
NotificationsGet notified via WhatsApp, Telegram, or Discord
Modular ArchitectureClean, maintainable codebase

Installation

# Via ClawdHub
clawdhub install clawdbot-update-plus --dir ~/.clawdbot/skills

# Or clone manually
git clone https://github.com/hopyky/clawdbot-update-plus.git ~/.clawdbot/skills/clawdbot-update-plus

Add to PATH

Create a symlink to use the command globally:

mkdir -p ~/bin
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc  # or ~/.bashrc
source ~/.zshrc
ln -sf ~/.clawdbot/skills/clawdbot-update-plus/bin/clawdbot-update-plus ~/bin/clawdbot-update-plus

Dependencies

DependencyRequiredPurpose
gitYesUpdate skills from repositories
jqYesParse JSON configuration
rsyncYesEfficient file copying
rcloneNoCloud storage sync
gpgNoBackup encryption

Configuration

Create ~/.clawdbot/clawdbot-update.json:

{
  "backup_dir": "~/.clawdbot/backups",
  "backup_before_update": true,
  "backup_count": 5,
  "backup_paths": [
    {"path": "~/.clawdbot", "label": "config", "exclude": ["backups", "logs", "media", "*.lock"]},
    {"path": "~/clawd", "label": "workspace", "exclude": ["node_modules", ".venv"]}
  ],
  "skills_dirs": [
    {"path": "~/.clawdbot/skills", "label": "prod", "update": true},
    {"path": "~/clawd/skills", "label": "dev", "update": false}
  ],
  "remote_storage": {
    "enabled": false,
    "rclone_remote": "gdrive:",
    "path": "clawdbot-backups"
  },
  "encryption": {
    "enabled": false,
    "gpg_recipient": "your-email@example.com"
  },
  "notifications": {
    "enabled": false,
    "target": "+1234567890",
    "on_success": true,
    "on_error": true
  }
}

Backup Paths

Configure what to backup with backup_paths:

OptionDescription
pathDirectory to backup (supports ~)
labelName in logs and restore
excludeFiles/folders to exclude
"backup_paths": [
  {"path": "~/.clawdbot", "label": "config", "exclude": ["backups", "logs", "media"]},
  {"path": "~/clawd", "label": "workspace", "exclude": ["node_modules", ".venv"]}
]

Skills Update

Configure which skills to update with skills_dirs:

OptionDescription
pathSkills directory
labelName in logs
updateRun git pull (true/false)
"skills_dirs": [
  {"path": "~/.clawdbot/skills", "label": "prod", "update": true},
  {"path": "~/clawd/skills", "label": "dev", "update": false}
]
  • Prod: Auto-update from ClawdHub/GitHub
  • Dev: Manual only (protects your work)

Commands

backup — Create Full Backup

clawdbot-update-plus backup

list-backups — List Available Backups

clawdbot-update-plus list-backups

update — Update Everything

# Standard update (with automatic backup)
clawdbot-update-plus update

# Preview changes only
clawdbot-update-plus update --dry-run

# Skip backup
clawdbot-update-plus update --no-backup

# Force continue even if backup fails
clawdbot-update-plus update --force

restore — Restore from Backup

# Restore everything
clawdbot-update-plus restore backup.tar.gz

# Restore only config
clawdbot-update-plus restore backup.tar.gz config

# Restore only workspace
clawdbot-update-plus restore backup.tar.gz workspace

# Force (no confirmation)
clawdbot-update-plus restore backup.tar.gz --force

check — Check for Updates

clawdbot-update-plus check

install-cron — Automatic Updates

# Install daily at 2 AM
clawdbot-update-plus install-cron

# Custom schedule
clawdbot-update-plus install-cron "0 3 * * 0"  # Sundays at 3 AM

# Remove
clawdbot-update-plus uninstall-cron

Notifications

Get notified when updates complete or fail:

"notifications": {
  "enabled": true,
  "target": "+1234567890",
  "on_success": true,
  "on_error": true
}

Target format determines channel:

  • +1234567890 → WhatsApp
  • @username → Telegram
  • channel:123 → Discord

Cloud Storage

Setup rclone

# Install
brew install rclone  # macOS
curl https://rclone.org/install.sh | sudo bash  # Linux

# Configure
rclone config

Enable in Config

"remote_storage": {
  "enabled": true,
  "rclone_remote": "gdrive:",
  "path": "clawdbot-backups"
}

Encrypted Backups

"encryption": {
  "enabled": true,
  "gpg_recipient": "your-email@example.com"
}

Logs

All operations are logged to ~/.clawdbot/backups/update.log:

[2026-01-25 20:22:48] === Update started 2026-01-25 20:22:48 ===
[2026-01-25 20:23:39] Creating backup...
[2026-01-25 20:23:39] Backup created: clawdbot-update-2026-01-25-20:22:48.tar.gz (625M)
[2026-01-25 20:23:41] === Update completed 2026-01-25 20:23:41 ===
[2026-01-25 20:23:43] Notification sent to +1234567890 via whatsapp

Log retention: Logs older than 30 days are automatically deleted.

Retention Policy

TypeRetentionConfig
Backups (local)Last N backupsbackup_count: 5
Backups (remote)Last N backupsSame as local
Logs30 daysAutomatic

Architecture (v2.0)

bin/
ā”œā”€ā”€ clawdbot-update-plus     # Main entry point
└── lib/
    ā”œā”€ā”€ utils.sh             # Logging, helpers
    ā”œā”€ā”€ config.sh            # Configuration
    ā”œā”€ā”€ backup.sh            # Backup functions
    ā”œā”€ā”€ restore.sh           # Restore functions
    ā”œā”€ā”€ update.sh            # Update functions
    ā”œā”€ā”€ notify.sh            # Notifications
    └── cron.sh              # Cron management

Changelog

v2.0.0

  • Complete architecture rewrite
  • Modular design (7 separate modules)
  • Cleaner codebase (~150 lines per module vs 1000+ monolith)
  • Better error handling
  • Improved restore with label support
  • Auto-detect notification channel from target format
  • Fixed --no-backup flag being ignored
  • Detailed logging to file with auto-purge
  • Backup retention policy (local + remote)

v1.7.0

  • Smart restore with label support
  • Auto-detect backup format

v1.6.0

  • Added backup_paths for full environment backup
  • Separated backup logic from update logic

v1.5.0

  • Multi-directory support (skills_dirs)

v1.4.0

  • Notifications via Clawdbot messaging

v1.3.0

  • Added check, diff-backups, install-cron commands

Author

Created by hopyky

License

MIT

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

| 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 |

Configuration

Create `~/.clawdbot/clawdbot-update.json`: ```json { "backup_dir": "~/.clawdbot/backups", "backup_before_update": true, "backup_count": 5, "backup_paths": [ {"path": "~/.clawdbot", "label": "config", "exclude": ["backups", "logs", "media", "*.lock"]}, {"path": "~/clawd", "label": "workspace", "exclude": ["node_modules", ".venv"]} ], "skills_dirs": [ {"path": "~/.clawdbot/skills", "label": "prod", "update": true}, {"path": "~/clawd/skills", "label": "dev", "update": false} ], "remote_storage": { "enabled": false, "rclone_remote": "gdrive:", "path": "clawdbot-backups" }, "encryption": { "enabled": false, "gpg_recipient": "your-email@example.com" }, "notifications": { "enabled": false, "target": "+1234567890", "on_success": true, "on_error": true } } ```

FAQ

How do I install clawdbot-update-plus?

Run openclaw add @hopyky/clawdbot-update-plus in your terminal. This installs clawdbot-update-plus into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/hopyky/clawdbot-update-plus. Review commits and README documentation before installing.