Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Backup OpenClaw state directory and workspace. Includes excluding sensitive files, packaging for backup. Triggered when user asks to backup, export, or save...
Backup OpenClaw state directory and workspace. Includes excluding sensitive files, packaging for backup. Triggered when user asks to backup, export, or save...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Backup OpenClaw state directory and workspace with security best practices.
Backup may contain sensitive data - review before sharing If uploading to GitHub - use a private repository and consider encryption auth-profiles.json is EXCLUDED - after restore, you must re-authenticate This script does NOT automatically push to any remote
~/.openclaw/skills/safe-backup/scripts/backup.sh
Backup file: /tmp/safe-backup-20260223.tar.gz (Linux) Backup file: /var/folders/xx/.../safe-backup-20260223.tar.gz (macOS) Backup file: C:\Users\xxx\AppData\Local\Temp\safe-backup-20260223.tar.gz (Windows)
See "Storage Options" below.
PlatformStatusRequirementsLinuxβ Fully supportedNative bashmacOSβ Fully supportedNative bashWindows (Git Bash)β SupportedGit for WindowsWindows (WSL)β SupportedWSL Ubuntu/DebianWindows (Native CMD)β Not supportedRequires bash
1. Temporary Directory Auto-Detection The script automatically detects the appropriate temp directory for each platform: PlatformTemp DirectoryEnvironment VariableLinux/tmp-macOS/var/folders/xx/...$TMPDIRWindows (Git Bash)C:\Users\xxx\AppData\Local\Temp$TEMP / $TMP 2. rsync Dependency The script uses rsync for efficient file copying: Linux/macOS: β Built-in Windows: β οΈ Git Bash includes rsync If rsync is not available, the script will fail. For Windows without Git Bash, you need to install rsync separately (e.g., via MSYS2 or Cygwin). 3. Path Separators The script uses Unix-style forward slashes (/). This works in: Linux β macOS β Git Bash β WSL β Native Windows CMD uses backslashes (\) and won't work without modifications. 4. Home Directory Detection The script uses $HOME environment variable: Linux: /home/username macOS: /Users/username Windows (Git Bash): C:\Users\username This works correctly in all supported platforms.
When migrating from one platform to another: Run backup on source machine Transfer backup file securely (USB, encrypted cloud, etc.) Install Git Bash (Windows) or ensure bash is available Install OpenClaw on target machine Run restore script Re-authenticate all services (credentials are not backed up)
Windows (Git Bash) # Run from Git Bash, NOT CMD or PowerShell ~/.openclaw/skills/safe-backup/scripts/backup.sh If you get "rsync not found", install Git for Windows with all optional Unix tools. macOS # Native bash is available ~/.openclaw/skills/safe-backup/scripts/backup.sh Temp directory will be in $TMPDIR (e.g., /var/folders/xx/...). Linux # Native bash is available ~/.openclaw/skills/safe-backup/scripts/backup.sh Temp directory will be /tmp.
DirectoryContents~/.openclaw/OpenClaw configuration~/.openclaw/workspace/Agent workspace filesagents/Agent definitionsskills/Installed skillsmemory/Memory fileshooks/Custom hooks
PatternReason*.logLog files*.log.*Log rotation filessessions.jsonSession datalogs/Log directoryauth-profiles.jsonAPI tokens & credentials.envEnvironment variables*.pem, *.keyTLS/SSH keyscredentials.jsonStored credentialsapi-keys.jsonAPI keyssessions/Runtime sessionsbrowser/Browser cachecanvas/Canvas cachemedia/Temporary media filesbackups/Backup directory itselfdelivery-queue/Runtime queuedevices/Device cachesubagents/Runtime subagentscompletions/Auto-completion cache*.bakBackup files*.saveSave filesupdate-check.jsonUpdate check cache
ScenarioRecommended SolutionDescriptionRegular BackupLocal encrypted storageWeekly backup, store in encrypted local directoryMigrate to New MachineLocal tarball + USBTransfer between machines, avoid network transmissionCloud Disaster RecoveryPrivate GitHub repoPrivate repo + encryption, for offsite backupServer Environmentrsync to backup serverAutomated periodic sync, suitable for production
# Step 1: Run backup ~/.openclaw/skills/safe-backup/scripts/backup.sh # Step 2: Find output path (check the last line of output) # The script will display: "Backup file: /path/to/safe-backup-YYYYMMDD.tar.gz" # Step 3: Verify backup contents tar -tzf "$(ls -t /tmp/safe-backup-*.tar.gz | head -1)" | head -20 # Or use the exact path shown in output: # tar -tzf /tmp/safe-backup-20260223.tar.gz | head -20
Choose one: Option A: Local Encrypted Storage (Recommended) # Find the latest backup file BACKUP_FILE=$(ls -t /tmp/safe-backup-*.tar.gz | head -1) # Create encrypted archive openssl enc -aes-256-cbc -salt -in "$BACKUP_FILE" -out ~/backups/safe-backup-$(date +%Y%m%d).tar.gz.enc # Enter a strong password when prompted # Delete unencrypted backup rm "$BACKUP_FILE" Option B: Private GitHub Repository # One-time setup: Create private repo on GitHub # Find the latest backup file BACKUP_FILE=$(ls -t /tmp/safe-backup-*.tar.gz | head -1) # Clone your private repo git clone https://github.com/YOUR_USERNAME/safe-backup.git ~/safe-backup # Extract backup mkdir -p ~/safe-backup/$(date +%Y-%m-%d) tar -xzf "$BACKUP_FILE" -C ~/safe-backup/$(date +%Y-%m-%d)/ # Commit and push cd ~/safe-backup git add . git commit -m "Backup $(date +%Y-%m-%d)" git push origin main # Delete local copy rm -rf ~/safe-backup rm "$BACKUP_FILE" Option C: rsync to Remote Server # Example: sync to remote server rsync -avz --delete \ --exclude='*.log' \ --exclude='sessions.json' \ ~/.openclaw/ user@backup-server:/path/to/backups/
Step 1: Locate Backup # If encrypted openssl enc -aes-256-cbc -d -in ~/backups/safe-backup-20260223.tar.gz.enc -out /tmp/safe-backup.tar.gz # If plain tarball, find the file # Check your backup location (USB, cloud download, etc.) cp /path/to/your/backup/safe-backup-20260223.tar.gz /tmp/ Step 2: Stop Gateway systemctl --user stop openclaw-gateway Step 3: Restore Files # Determine temp directory based on platform if [[ -n "$TMPDIR" ]]; then TEMP_DIR="$TMPDIR" elif [[ -n "$TEMP" ]]; then TEMP_DIR="$TEMP" elif [[ -n "$TMP" ]]; then TEMP_DIR="$TMP" else TEMP_DIR="/tmp" fi # Extract to temporary location mkdir -p "$TEMP_DIR/restore" tar -xzf "$TEMP_DIR/safe-backup.tar.gz" -C "$TEMP_DIR/restore" # Restore state directory cp -r "$TEMP_DIR/restore/state/"* ~/.openclaw/ # Restore workspace (if needed) cp -r "$TEMP_DIR/restore/workspace/"* ~/.openclaw/workspace/ Step 4: Re-authenticate Because auth-profiles.json was excluded, you must re-configure: # Edit config to add authentication openclaw config edit # Or manually create auth-profiles.json nano ~/.openclaw/agents/main/agent/auth-profiles.json Required re-configuration: Telegram bot token Discord bot token Feishu credentials Any other API keys Step 5: Restart Gateway systemctl --user start openclaw-gateway # Verify openclaw status
VariableDefaultDescriptionOPENCLAW_STATE_DIR$HOME/.openclawOpenClaw state directoryOPENCLAW_WORKSPACE_DIR$HOME/.openclaw/workspaceWorkspace directory Example: OPENCLAW_STATE_DIR=/data/openclaw ~/.openclaw/skills/safe-backup/scripts/backup.sh
# Check if OpenClaw is installed ls -la ~/.openclaw
# Run with appropriate permissions chmod +x ~/.openclaw/skills/safe-backup/scripts/backup.sh
# Install Git for Windows with Unix tools, or use WSL # Alternatively, install rsync via MSYS2: # pacman -S rsync
# Check backup integrity tar -tzf /path/to/your/backup.tar.gz # If encrypted, verify password openssl enc -aes-256-cbc -d -in backup.enc -o /dev/null
Backup regularly - at least weekly Test restore - periodically verify backups work Store offsite - keep backup in different location Encrypt - never store unencrypted backups in cloud Document - keep notes on what was re-configured after restore
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.