{"id":51324565,"url":"https://github.com/webdevtodayjason/openclaw-self-backup","last_synced_at":"2026-07-01T17:02:21.661Z","repository":{"id":362620441,"uuid":"1149167299","full_name":"webdevtodayjason/openclaw-self-backup","owner":"webdevtodayjason","description":"Automatic workspace and memory backups for AI agents","archived":false,"fork":false,"pushed_at":"2026-02-03T19:52:48.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-05T07:18:48.279Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webdevtodayjason.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-03T19:52:46.000Z","updated_at":"2026-02-03T19:53:00.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/webdevtodayjason/openclaw-self-backup","commit_stats":null,"previous_names":["webdevtodayjason/openclaw-self-backup"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/webdevtodayjason/openclaw-self-backup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2Fopenclaw-self-backup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2Fopenclaw-self-backup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2Fopenclaw-self-backup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2Fopenclaw-self-backup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webdevtodayjason","download_url":"https://codeload.github.com/webdevtodayjason/openclaw-self-backup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdevtodayjason%2Fopenclaw-self-backup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35015061,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-01T02:00:05.325Z","response_time":130,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-01T17:02:20.416Z","updated_at":"2026-07-01T17:02:21.645Z","avatar_url":"https://github.com/webdevtodayjason.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛡️ OpenClaw Self-Backup\n\n**Automatic workspace and memory backups for AI agents**\n\nNever lose your agent's memory, identity, or work again. Self-Backup creates comprehensive, automated backups of everything that makes your AI agent unique.\n\n[![GitHub](https://img.shields.io/badge/GitHub-webdevtodayjason%2Fopenclaw--self--backup-blue?logo=github)](https://github.com/webdevtodayjason/openclaw-self-backup)\n[![ClawHub](https://img.shields.io/badge/ClawHub-webdevtoday%2Fopenclaw--self--backup-orange)](https://clawhub.com/webdevtoday/openclaw-self-backup)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n\n---\n\n## 🎯 What It Does\n\n- 🧠 **Memory \u0026 Identity** — Backs up MEMORY.md, daily logs, SOUL.md, USER.md, AGENTS.md\n- 💾 **SQLite Databases** — Proper backup of openclaw-mem database (no corruption)\n- 📜 **Scripts \u0026 Automation** — Preserves your custom scripts and tools\n- 🗜️ **Compression** — Reduces backup size (typical: 148KB for full workspace)\n- ☁️ **Multiple Targets** — Local, Git, Amazon S3, Cloudflare R2\n- 🔄 **Retention Policies** — Configurable daily/weekly/monthly retention\n- 🔒 **Optional Encryption** — Secure your backups\n- 📅 **Flexible Scheduling** — On-demand or automated (cron/launchd)\n\n---\n\n## 📦 Installation\n\n### Option 1: Install from ClawHub (Recommended)\n\n```bash\nclawhub install webdevtoday/openclaw-self-backup\n```\n\n### Option 2: Install from GitHub\n\n```bash\n# Clone the repository\ngit clone https://github.com/webdevtodayjason/openclaw-self-backup.git\n\n# Copy to your OpenClaw skills directory\ncp -r openclaw-self-backup ~/.openclaw/skills/self-backup\n\n# Or symlink it (for development)\nln -s \"$(pwd)/openclaw-self-backup\" ~/.openclaw/skills/self-backup\n```\n\n### Option 3: Manual Installation\n\n```bash\n# Create the skill directory\nmkdir -p ~/.openclaw/skills/self-backup\n\n# Download the latest release\ncurl -L https://github.com/webdevtodayjason/openclaw-self-backup/archive/refs/heads/main.tar.gz | tar xz -C ~/.openclaw/skills/self-backup --strip-components=1\n```\n\n---\n\n## 🚀 Quick Start\n\n### 1. Configure Your Backup\n\n```bash\ncd ~/.openclaw/skills/self-backup\ncp config/backup.example.json config/backup.json\nnano config/backup.json  # or your preferred editor\n```\n\n**Basic configuration:**\n```json\n{\n  \"workspaceRoot\": \"~/clawd\",\n  \"backupRoot\": \"~/clawd-backups\",\n  \"compression\": true,\n  \"targets\": {\n    \"local\": {\n      \"enabled\": true,\n      \"path\": \"~/clawd-backups\"\n    }\n  },\n  \"retention\": {\n    \"daily\": 7,\n    \"weekly\": 4,\n    \"monthly\": 6\n  }\n}\n```\n\n### 2. Run Your First Backup\n\n```bash\n./scripts/backup.sh\n```\n\n**Expected output:**\n```\n🛡️  Self-Backup for OpenClaw Agents\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n⏱  Timestamp: 2026-02-03_18-30-45\n✅ Created backup directory\n✅ Backed up memory files\n✅ Backed up identity files\n✅ Backed up daily logs\n✅ Backed up databases (836 observations)\n✅ Backed up scripts\n✅ Compressed backup (148KB)\n✅ Retention policy applied (7 daily, 4 weekly, 6 monthly)\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n🎉 Backup complete!\n```\n\n### 3. Test Restore\n\n```bash\n# List available backups\n./scripts/restore.sh --list\n\n# Restore everything from latest backup\n./scripts/restore.sh --latest\n\n# Restore only memory files\n./scripts/restore.sh --latest --memory-only\n```\n\n---\n\n## ⚙️ Configuration Options\n\n### Backup Targets\n\n#### Local Backups\n```json\n{\n  \"targets\": {\n    \"local\": {\n      \"enabled\": true,\n      \"path\": \"~/clawd-backups\"\n    }\n  }\n}\n```\n\n#### Git Backups\n```json\n{\n  \"targets\": {\n    \"git\": {\n      \"enabled\": true,\n      \"repoPath\": \"~/clawd-backup-repo\",\n      \"autoCommit\": true,\n      \"autoPush\": false\n    }\n  }\n}\n```\n\n#### Amazon S3\n```json\n{\n  \"targets\": {\n    \"s3\": {\n      \"enabled\": true,\n      \"bucket\": \"my-agent-backups\",\n      \"prefix\": \"argent/\",\n      \"storageClass\": \"STANDARD_IA\"\n    }\n  }\n}\n```\n\n**Setup S3:**\n```bash\n# Install AWS CLI\nbrew install awscli\n\n# Configure credentials\naws configure\n```\n\n#### Cloudflare R2\n```json\n{\n  \"targets\": {\n    \"r2\": {\n      \"enabled\": true,\n      \"accountId\": \"YOUR_CLOUDFLARE_ACCOUNT_ID\",\n      \"bucket\": \"agent-backups\",\n      \"prefix\": \"argent/\",\n      \"accessKeyId\": \"YOUR_R2_ACCESS_KEY\",\n      \"secretAccessKey\": \"YOUR_R2_SECRET_KEY\"\n    }\n  }\n}\n```\n\n**Why R2?**\n- ✅ Zero egress fees (S3 charges for downloads)\n- ✅ S3-compatible API (same tools work)\n- ✅ Often cheaper storage costs\n- ✅ Great for frequent backups\n\n**Get R2 credentials:**\n1. Go to https://dash.cloudflare.com/\n2. Navigate to R2 → Manage R2 API Tokens\n3. Create a new API token\n4. Copy Account ID, Access Key, and Secret Key\n\n---\n\n## 🔄 Scheduled Backups\n\n### Option 1: Using OpenClaw Cron\n\n```bash\n# Add to your OpenClaw cron\nopenclaw cron add \\\n  --schedule \"0 */6 * * *\" \\\n  --command \"~/.openclaw/skills/self-backup/scripts/backup.sh\" \\\n  --name \"Agent Self-Backup\"\n```\n\n### Option 2: System Cron (macOS/Linux)\n\n```bash\n# Edit crontab\ncrontab -e\n\n# Add this line (backs up every 6 hours)\n0 */6 * * * ~/.openclaw/skills/self-backup/scripts/backup.sh\n```\n\n### Option 3: LaunchAgent (macOS)\n\nCreate `~/Library/LaunchAgents/com.openclaw.self-backup.plist`:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n\u003cplist version=\"1.0\"\u003e\n\u003cdict\u003e\n    \u003ckey\u003eLabel\u003c/key\u003e\n    \u003cstring\u003ecom.openclaw.self-backup\u003c/string\u003e\n    \u003ckey\u003eProgramArguments\u003c/key\u003e\n    \u003carray\u003e\n        \u003cstring\u003e/bin/bash\u003c/string\u003e\n        \u003cstring\u003e/Users/YOUR_USERNAME/.openclaw/skills/self-backup/scripts/backup.sh\u003c/string\u003e\n    \u003c/array\u003e\n    \u003ckey\u003eStartInterval\u003c/key\u003e\n    \u003cinteger\u003e21600\u003c/integer\u003e\n    \u003ckey\u003eRunAtLoad\u003c/key\u003e\n    \u003ctrue/\u003e\n\u003c/dict\u003e\n\u003c/plist\u003e\n```\n\n```bash\n# Load the LaunchAgent\nlaunchctl load ~/Library/LaunchAgents/com.openclaw.self-backup.plist\n```\n\n---\n\n## 🔧 Advanced Usage\n\n### Dry Run (Preview Without Executing)\n\n```bash\n./scripts/backup.sh --dry-run\n```\n\n### Backup Only Memory Files\n\n```bash\n./scripts/backup.sh --memory-only\n```\n\n### Restore Specific Components\n\n```bash\n# Restore only memory files\n./scripts/restore.sh --backup 2026-02-03_18-30-45 --memory-only\n\n# Restore only databases\n./scripts/restore.sh --backup 2026-02-03_18-30-45 --databases-only\n\n# Restore only identity files\n./scripts/restore.sh --backup 2026-02-03_18-30-45 --identity-only\n```\n\n### List All Backups\n\n```bash\n./scripts/restore.sh --list\n```\n\n### Verify Backup Integrity\n\n```bash\n./scripts/backup.sh --verify\n```\n\n---\n\n## 📂 What Gets Backed Up\n\n**Memory \u0026 Identity:**\n- `MEMORY.md` — Long-term curated memory\n- `memory/YYYY-MM-DD.md` — Daily logs\n- `SOUL.md`, `USER.md`, `AGENTS.md`, `IDENTITY.md` — Core identity files\n\n**Databases:**\n- `~/.openclaw-mem/memory.db` — OpenClaw persistent memory (SQLite)\n\n**Scripts \u0026 Automation:**\n- All files in `scripts/` directory\n- Custom automation scripts\n- Cron jobs and LaunchAgents\n\n**Configuration:**\n- OpenClaw config files\n- Skill configurations\n- API credentials (optional, can exclude)\n\n---\n\n## 🩺 Troubleshooting\n\n### Backup Fails with \"Permission Denied\"\n\n```bash\n# Make scripts executable\nchmod +x ~/.openclaw/skills/self-backup/scripts/*.sh\n```\n\n### S3/R2 Upload Fails\n\n```bash\n# Verify AWS CLI is installed\nwhich aws\n\n# Test credentials\naws s3 ls  # For S3\naws s3 ls --endpoint-url https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com  # For R2\n```\n\n### Database Backup Corruption\n\nThis skill uses SQLite's `.backup` command, which is safe even while the database is being written to. If you still encounter issues:\n\n```bash\n# Stop OpenClaw gateway\nopenclaw gateway stop\n\n# Run backup\n~/.openclaw/skills/self-backup/scripts/backup.sh\n\n# Restart gateway\nopenclaw gateway start\n```\n\n### Large Backup Size\n\n```bash\n# Enable compression (if not already)\n# Edit config/backup.json:\n{\n  \"compression\": true\n}\n\n# Exclude large files\n{\n  \"exclude\": [\n    \"node_modules\",\n    \"*.mp4\",\n    \"*.mov\",\n    \"cache\"\n  ]\n}\n```\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n**Ideas for contributions:**\n- Azure Blob Storage support\n- Google Cloud Storage support\n- Encryption improvements\n- Web UI for backup management\n- Backup verification and health checks\n- Incremental backups\n\n---\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n---\n\n## 🙏 Credits\n\nBuilt by [Argent](mailto:argent@moltyverse.email) for the OpenClaw community.\n\n**Links:**\n- 🌐 [OpenClaw Documentation](https://docs.openclaw.ai)\n- 💬 [OpenClaw Discord](https://discord.com/invite/clawd)\n- 🔧 [ClawHub](https://clawhub.com)\n\n---\n\n## 🐛 Issues \u0026 Support\n\nFound a bug? Have a question?\n\n- **GitHub Issues:** https://github.com/webdevtodayjason/openclaw-self-backup/issues\n- **Discord:** https://discord.com/invite/clawd\n- **Email:** argent@moltyverse.email\n\n---\n\n**Remember:** Agents wake up fresh. Without backups = lose everything. With backups = restore from any point in time. 🛡️\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdevtodayjason%2Fopenclaw-self-backup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdevtodayjason%2Fopenclaw-self-backup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdevtodayjason%2Fopenclaw-self-backup/lists"}