Universal backup and restore for AI agent platforms. Works with Hermes Agent and OpenClaw.
~/.hermes/) and OpenClaw ( ~/.openclaw/)bash
# Via ClawMart (recommended)
clawmart install hermes-backup
# Or manual
git clone https://github.com/yourname/hermes-backup
chmod +x hermes-backup/scripts/*.sh
bash
# Create your first backup
hermes-backup create
# Or with the agent
"Create a backup of my agent"
CommandDescriptionhermes-backup createCreate backup (full or incremental)hermes-backup restore <file>Restore from backuphermes-backup serveStart web UIhermes-backup configInteractive configurationhermes-backup cloud setupConfigure cloud storagehermes-backup listShow all backupshermes-backup verify <file>Check backup integrityhermes-backup scheduleSet up automatic backups
ComponentPathContentsConfig~/.hermes/config.yamlAll settings, API keysEnvironment~/.hermes/.envAPI keys, secretsIdentity~/.hermes/SOUL.mdAgent personalityMemory~/.hermes/memories/Long-term memoriesSessions~/.hermes/sessions/Conversation historySkills~/.hermes/skills/Installed skillsState~/.hermes/state.dbDatabaseWorkspace~/.openclaw/workspace/Cross-platform workspace
ComponentPathContentsConfig~/.openclaw/openclaw.jsonGateway, models, channelsWorkspace~/.openclaw/workspace/Agent files, skillsCredentials~/.openclaw/credentials/Channel pairing stateSessions~/.openclaw/agents/main/sessions/Chat historySkills~/.openclaw/skills/System skillsCron~/.openclaw/cron/Scheduled jobs
bash
hermes-backup config
This walks you through:
~/.hermes-backup/config.yaml)#yaml
platform: auto # auto, hermes, or openclaw
backup:
location: ~/backups/hermes
type: full # full or incremental
compression: gzip # gzip, bzip2, or none
encryption: false # true/false
retention:
strategy: count # count, days, or size
keep_count: 10 # keep last N backups
keep_days: 30 # or keep for N days
max_size_gb: 5 # or max total size
incremental:
enabled: false
base_backup: null # reference full backup
cloud:
enabled: false
provider: null # s3, gdrive, dropbox
# Provider-specific settings added during setup
integrity:
verify_after_backup: true
checksum_algorithm: sha256
bash
hermes-backup create
# → ~/backups/hermes/hermes-backup_20260326_143022.tar.gz
bash
# First, create a base backup
hermes-backup create --full --tag base-2026-03-26
# Then incremental backups reference the base
hermes-backup create --incremental --base base-2026-03-26
bash
hermes-backup create --encrypt
# Prompts for password (not echoed)
⚠️ Warning: If you lose the encryption password, the backup is unrecoverable. Store it in a password manager.
bash
hermes-backup create --cloud-upload
# Creates backup locally, then uploads to configured cloud storage
bash
# Always dry-run first
hermes-backup restore ~/backups/hermes/hermes-backup_20260326_143022.tar.gz --dry-run
# If it looks good, apply
hermes-backup restore ~/backups/hermes/hermes-backup_20260326_143022.tar.gz
bash
hermes-backup restore ~/backups/hermes/hermes-backup_20260326_143022.tar.gz.enc
# Prompts for password
bash
# Restore only specific components
hermes-backup restore backup.tar.gz --components workspace,skills
bash
hermes-backup cloud setup s3
# Prompts for:
# - AWS Access Key ID
# - AWS Secret Access Key
# - Bucket name
# - Region (optional, defaults to us-east-1)
bash
hermes-backup cloud setup gdrive
# Opens browser for OAuth authentication
# Or provides manual token setup for headless
bash
hermes-backup cloud setup dropbox
# OAuth flow or manual token
bash
hermes-backup cloud test
# Verifies credentials and uploads a test file
bash
hermes-backup schedule
# Interactive setup:
# - How often? (daily, weekly, hourly)
# - What time?
# - Full or incremental?
# - Cloud upload?
bash
# Add to crontab
0 3 * * * /usr/local/bin/hermes-backup create --quiet --cloud-upload
# Daily at 3am, quiet mode, upload to cloud
bash
hermes-backup serve --port 7373 --token YOUR_TOKEN
# Opens browser UI at http://localhost:7373
# Features:
# - Create backups (click button)
# - Download backups
# - Upload and restore
# - View backup history
# - Configure settings
# - Progress bars for operations
bash
# Verify a specific backup
hermes-backup verify ~/backups/hermes/hermes-backup_20260326_143022.tar.gz
# Check all backups
hermes-backup verify --all
# Results:
# ✓ Backup is valid and restorable
# ✗ Backup is corrupted or incomplete
bash
hermes-backup list
# Output:
# BACKUP NAME SIZE DATE TYPE ENCRYPTED CLOUD
# hermes-backup_20260326_143022.tar.gz 45MB 2026-03-26 full no yes
# hermes-backup_20260325_090015.tar.gz 2MB 2026-03-25 incr yes no
bash
# On Hermes machine
hermes-backup create --platform hermes
# Transfer file to OpenClaw machine
scp backup.tar.gz user@newserver:~/
# On OpenClaw machine
hermes-backup restore backup.tar.gz --platform openclaw
Same process, reverse direction.
Backups contain highly sensitive data:
chmod 600 (owner only)chmod 777 a backupbash
# Check directory permissions
ls -la ~/backups/hermes/
# Fix
chmod 700 ~/backups/hermes/
bash
# Try to verify
hermes-backup verify backup.tar.gz
# If corrupted, check disk space
df -h
# Check for disk errors
fsck /dev/sda1 # (unmount first)
bash
# Test connection
hermes-backup cloud test
# Check credentials
hermes-backup cloud status
# Re-configure if needed
hermes-backup cloud setup s3
bash
# Auto-backup is created before restore
# Check /tmp/hermes-pre-restore-*.tar.gz
# Restore from auto-backup
hermes-backup restore /tmp/hermes-pre-restore_TIMESTAMP.tar.gz
scripts/backup.sh#Main backup script. Creates .tar.gz archive with MANIFEST.json.
scripts/restore.sh#Restores from archive. Always dry-runs first. Creates pre-restore backup.
scripts/serve.sh#Starts web UI server. Requires --token for security.
scripts/verify.sh#Verifies backup integrity using checksums.
scripts/cloud-upload.sh#Uploads backup to configured cloud storage.
scripts/config.sh#Interactive configuration wizard.
MIT-0 — Free to use, modify, and redistribute. No attribution required.
Built for the MyClaw.ai ecosystem — the open AI personal assistant platform.