Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

self-backup

v1.0.0

Backup OpenClaw workspace files like AGENTS.md, SOUL.md, scripts/, and configs to a GitHub repo, with token sanitization and version control.

1· 377· 1 versions· 1 current· 2 all-time· Updated 7h ago· MIT-0
byYue Ma@mayueanyou

Install

openclaw skills install self-backup

Self Backup

Backup critical OpenClaw workspace files to your GitHub repository for safe keeping and version control.

Setup

1. Install GitHub CLI (if not already installed)

# Ubuntu/Debian
sudo apt install gh

# macOS
brew install gh

# Other platforms: https://cli.github.com/

2. Login to GitHub

gh auth login

3. Configure your backup repository

Edit the configuration in the backup script or set environment variables:

# Set your repository URL (replace with your repo)
export BACKUP_REPO_URL="https://github.com/YOUR_USERNAME/YOUR_BACKUP_REPO.git"

# Or edit the script directly
nano scripts/backup.sh

4. Create your backup repository

# Create a private repository for your backups
gh repo create YOUR_USERNAME/openclaw-backup --private --description "OpenClaw workspace backup"

What Gets Backed Up

Core Configuration Files

  • AGENTS.md - Workflow documentation and procedures
  • SOUL.md - Personal assistant personality and behavior
  • USER.md - Personal profile and preferences
  • MEMORY.md - Long-term memory and important context
  • IDENTITY.md - Assistant identity and emoji
  • TOOLS.md - Tool configuration and local notes
  • AUTOMATION.md - Cron and scheduling documentation
  • openclaw.json - OpenClaw system settings (tokens sanitized for security)

Scripts & Automation

  • scripts/ directory - All automation scripts
  • memory/ directory - Daily memory logs (last 30 days)
  • Custom configuration files

Skills Configuration

  • skills/ directory - Local skill installations (metadata only)
  • Skill customizations

Repository Structure

Files are organized in the backup repository as:

/
├── config/           # Core configuration files
├── scripts/          # Automation scripts  
├── memory/          # Daily memory logs
├── skills/          # Skill configurations
└── backup-info.md   # Backup metadata

Usage

First-time setup:

scripts/setup.sh

Regular backups:

scripts/backup.sh

Options:

scripts/backup.sh --force      # Force push even with conflicts
scripts/backup.sh --dry-run    # Show what would be backed up

Security Features

  • Automatic token sanitization: All sensitive tokens (Discord, Telegram, API keys) are automatically redacted
  • Private repository recommended: Keep your configuration private
  • Structure preservation: All settings preserved, only sensitive data redacted
  • Safe restore: Easy to restore and re-enter tokens

Configuration

Edit these variables in scripts/backup.sh:

# Your GitHub repository URL
REPO_URL="https://github.com/YOUR_USERNAME/YOUR_BACKUP_REPO.git"

# Workspace directory (usually auto-detected)
WORKSPACE_DIR="$HOME/.openclaw/workspace"

Manual Backup

To backup specific files manually:

# Clone your backup repository
git clone https://github.com/YOUR_USERNAME/YOUR_BACKUP_REPO.git /tmp/backup
cd /tmp/backup

# Copy important files
cp ~/.openclaw/workspace/AGENTS.md config/
cp ~/.openclaw/workspace/SOUL.md config/
# ... etc

# Commit and push
git add .
git commit -m "Manual backup $(date)"
git push origin main

Restore Process

To restore from backup:

# Clone the backup
git clone https://github.com/YOUR_USERNAME/YOUR_BACKUP_REPO.git

# Copy files back to workspace
cp backup/config/* ~/.openclaw/workspace/
cp -r backup/scripts/* ~/.openclaw/workspace/scripts/
# ... etc

# Re-enter your actual tokens in openclaw.json
nano ~/.openclaw/openclaw.json

Troubleshooting

GitHub Authentication Issues

# Re-login to GitHub
gh auth logout
gh auth login

Permission Denied

# Check repository exists and you have access
gh repo view YOUR_USERNAME/YOUR_BACKUP_REPO

Git Configuration

# Set git identity if needed
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Version tags

latestvk97210a0ddm114ndr8tz0rbcqx82knwq