Session Sync Cloud
v1.0.0Automatic cloud backup and sync for OpenClaw memory files. Encrypted upload to S3/Backblaze, versioned retention (30 days), cross-device restore. Includes we...
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Session Sync Cloud
Keep your agent's memory safe and synced across devices. Automatic encrypted backups to cloud storage (S3, Backblaze B2, or custom S3-compatible).
Why
You have precious conversation history, WAL entries, working buffer, and PARA notes. Losing them means context amnesia returns.
This skill automates backup:
- Every 15 minutes while agent is running
- After every
/wrap_up - Manual trigger available
Restore is one command away on a new device.
Features
- Encrypted upload — AES-256; server never sees plaintext
- Versioned retention — Keep last 30 days of backups; prune automatically
- Cross-device — Install skill on another machine, run
sync_restoreto pull latest - Dashboard — Open
memory/sync-dashboard.htmlto see backup history and storage usage - Low bandwidth — Only upload changed files (delta compression)
- Resume interrupted — Large files chunked; can resume
Prerequisites
- Cloud storage bucket with S3-compatible API (AWS S3, Backblaze B2, MinIO, Wasabi)
- Access key + secret
- Bucket name
Configuration
Create session-sync-config.json in workspace root:
{
"provider": "s3", // or "backblaze", "custom"
"endpoint": "https://s3.amazonaws.com", // override for B2/MinIO
"bucket": "my-openclaw-backups",
"key_id": "YOUR_ACCESS_KEY",
"secret_key": "YOUR_SECRET_KEY",
"region": "us-east-1", // for S3; B2 uses "us-west-002" etc.
"path_prefix": "openclaw/nero/", // per-agent prefix
"interval_minutes": 15,
"retention_days": 30,
"encryption_key": "YOUR_32_BYTE_KEY_BASE64" // optional: if unset, uses derived key from credentials
}
Encryption key: Generate with openssl rand -base64 32. Store this safely — you need it to restore.
Usage
Check status
tool("session-sync-cloud", "sync_status")
Force backup now
tool("session-sync-cloud", "sync_now")
Restore from backup
tool("session-sync-cloud", "sync_restore", {"timestamp": "latest"})
Or specific timestamp (from status output or dashboard):
tool("session-sync-cloud", "sync_restore", {"timestamp": "2026-04-01T16:30:00Z"})
How It Works
- On trigger (timer or manual), scan
memory/directory - Compute SHA256 of each file; compare with previous manifest
- Upload only changed files to cloud (multipart upload for large files)
- Save manifest JSON to cloud (lists files, hashes, timestamps)
- Prune old manifests beyond retention
- Log to
memory/sync-log.jsonl
Dashboard
Open memory/sync-dashboard.html in browser. It shows:
- Last backup time
- Storage used (cloud)
- Number of versions retained
- Quick restore buttons (click to download latest manifest then restore)
Pricing
$9/month per agent. Includes:
- Unlimited backup storage (up to 1GB; beyond that $0.02/GB-month)
- Unlimited restores
- Dashboard access
- Email support
FAQ
Q: Can I use any S3-compatible storage?
A: Yes. S3, Backblaze B2, MinIO, Wasabi, Cloudflare R2.
Q: Is end-to-end encryption mandatory?
A: Yes. All data encrypted before upload. Server only stores ciphertext.
Q: What if I lose the encryption key?
A: Unfortunately, cannot restore. Keep the key safe.
Q: How do I migrate to a new device?
A: Install the skill, configure with same cloud credentials and encryption key, then run sync_restore.
Q: Can I exclude certain files?
A: Not yet. Currently backs up entire memory/. Future version may add excludes.
Inspired by need for persistent-memory-as-a-service. Simple, reliable, affordable.
Files
2 totalComments
Loading comments…
