← Back to Skills
Exec

simple-backup

vacinc By vacinc 👁 13 views ▲ 0 votes

Backup agent brain (workspace) and body (state) to local folder

GitHub
---
name: simple-backup
description: Backup agent brain (workspace) and body (state) to local folder and optionally sync to cloud via rclone.
metadata: {"openclaw":{"emoji":"💾","requires":{"bins":["rclone","gpg","tar","jq"]}}}
---

# Simple Backup

A robust backup script that:
1.  **Auto-detects** workspace and state directories from OpenClaw config
2.  **Allows overrides** for custom/non-standard setups
3.  **Compresses & encrypts** using GPG (AES256)
4.  **Prunes** old backups (Daily/Hourly retention)
5.  **Syncs** to cloud via `rclone` (optional)

## Setup

1.  **Dependencies:**
    ```bash
    brew install rclone gnupg jq
    ```

2.  **Password:** Set encryption password (choose one):
    - File: `~/.openclaw/credentials/backup.key` (recommended)
    - Env: `export BACKUP_PASSWORD="secret"`
    - Config: Add `"password": "secret"` to skill config

3.  **Cloud (Optional):**
    ```bash
    rclone config
    ```

## Usage

```bash
simple-backup
```

## Auto-Detection

By default, paths are auto-detected from `~/.openclaw/openclaw.json`:
- **Workspace:** `agents.defaults.workspace`
- **State:** `~/.openclaw` (where config lives)
- **Backup root:** `<workspace>/BACKUPS`

## Custom Configuration

For non-standard setups, override any path in `~/.openclaw/openclaw.json`:

```json
{
  "skills": {
    "entries": {
      "simple-backup": {
        "config": {
          "workspaceDir": "/custom/path/workspace",
          "stateDir": "/custom/path/state",
          "skillsDir": "/custom/path/skills",
          "backupRoot": "/custom/path/backups",
          "remoteDest": "gdrive:backups"
        }
      }
    }
  }
}
```

## Configuration Reference

| Config Key | Env Var | Auto-Detected | Description |
|------------|---------|---------------|-------------|
| `workspaceDir` | `BRAIN_DIR` | `agents.defaults.workspace` | Agent workspace |
| `stateDir` | `BODY_DIR` | `~/.openclaw` | OpenClaw state dir |
| `skillsDir` | `SKILLS_DIR` | `~/openclaw/skills` | Skills directory |
| `backupRoot` | `BACKUP_ROOT` | `<workspace>/BACKUPS` | Local backup storage |
| `remoteDest` | `REMOTE_DEST` | (none) | Rclone remote path |
| `maxDays` | `MAX_DAYS` | 7 | Days to keep daily backups |
| `hourlyRetentionHours` | `HOURLY_RETENTION_HOURS` | 24 | Hours to keep hourly |
| `password` | `BACKUP_PASSWORD` | (none) | Encryption password |

**Priority:** Config file → Env var → Auto-detect
exec

Comments

Sign in to leave a comment

Loading comments...