| name | personality-backup |
| description | 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. |
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.