Personality Backup

Create encrypted backups of agent personality files, memory, config, secrets, and projects. Use when the agent needs to set up, run, or manage automated backups of its workspace and identity files. Supports configurable backup targets, AES-256 encryption via 7-zip, and delivery via email (SMTP) or local storage.

Audits

Pending

Install

openclaw skills install personality-backup

Personality Backup

Encrypted backup of agent identity, memory, and workspace data.

Prerequisites

  • p7zip-full (7-zip CLI)
  • Python 3 with smtplib (for email delivery)
  • A backup password stored in a file

Configuration

Create ~/.openclaw/secrets/backup-config.json:

{
  "password_file": "/home/jan/.openclaw/secrets/backup-password.txt",
  "password_field": "Password",
  "delivery": "email",
  "email": {
    "to": "user@example.com",
    "from": "agent@example.com",
    "smtp_host": "mail.example.com",
    "smtp_port": 465,
    "smtp_user": "agent@example.com",
    "smtp_pass_env": "BACKUP_SMTP_PASS"
  },
  "local": {
    "dir": "/home/jan/backups"
  },
  "workspace": "/home/jan/.openclaw/workspace",
  "secrets_dir": "/home/jan/.openclaw/secrets",
  "config_file": "/home/jan/.openclaw/openclaw.json",
  "agent_name": "Agent",
  "agent_emoji": "",
  "personality_files": ["SOUL.md", "IDENTITY.md", "USER.md", "AGENTS.md", "MEMORY.md", "TOOLS.md"],
  "backup_memory": true,
  "backup_secrets": true,
  "backup_config": true,
  "backup_projects": true,
  "backup_scripts": true,
  "project_excludes": ["node_modules", ".git", "__pycache__", "*.mp4", "*.mp3", "*.wav"],
  "generate_restore_guide": true
}

All fields have sensible defaults. Only password_file and delivery settings are required.

Password File Format

The password file should contain a line: Password: YOUR_SECRET_KEY

Or set password_field to null and the entire file content is used as the password.

Usage

Run a backup

bash scripts/backup.sh /path/to/backup-config.json

Set up daily cron

echo "0 3 * * * bash $(pwd)/scripts/backup.sh /path/to/backup-config.json" | crontab -

Delivery Methods

  • email — Sends encrypted archive as email attachment via SMTP
  • local — Saves archive to a local directory

SMTP password: set via the environment variable named in smtp_pass_env, or put it directly in smtp_pass (less secure).

Restore

The backup includes a generated RESTORE.md with step-by-step instructions for restoring onto a fresh OpenClaw installation. The restore guide is customized with the agent's name and configuration.