{"id":50543496,"url":"https://github.com/x-rayluan/openclaw-backup-restore","last_synced_at":"2026-06-03T22:01:02.645Z","repository":{"id":344572306,"uuid":"1181535494","full_name":"X-RayLuan/openclaw-backup-restore","owner":"X-RayLuan","description":"Backup, restore, rollback, validate, and GitHub-sync critical OpenClaw state.","archived":false,"fork":false,"pushed_at":"2026-03-15T09:50:05.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-15T22:53:20.723Z","etag":null,"topics":["backup","disaster-recovery","github-backup","openclaw","restore","rollback","workspace"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":false,"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/X-RayLuan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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-03-14T09:18:43.000Z","updated_at":"2026-03-15T09:54:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/X-RayLuan/openclaw-backup-restore","commit_stats":null,"previous_names":["x-rayluan/openclaw-backup-restore"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/X-RayLuan/openclaw-backup-restore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/X-RayLuan%2Fopenclaw-backup-restore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/X-RayLuan%2Fopenclaw-backup-restore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/X-RayLuan%2Fopenclaw-backup-restore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/X-RayLuan%2Fopenclaw-backup-restore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/X-RayLuan","download_url":"https://codeload.github.com/X-RayLuan/openclaw-backup-restore/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/X-RayLuan%2Fopenclaw-backup-restore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33881107,"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-06-03T02:00:06.370Z","response_time":59,"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":["backup","disaster-recovery","github-backup","openclaw","restore","rollback","workspace"],"created_at":"2026-06-03T22:01:01.539Z","updated_at":"2026-06-03T22:01:02.634Z","avatar_url":"https://github.com/X-RayLuan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenClaw Backup Restore\n\n**Backup, restore, rollback, validate, and GitHub-sync critical OpenClaw state.**\n\n`openclaw-backup-restore` protects the files that make an OpenClaw agent feel like itself: personality, operator instructions, memory scaffolding, and optional real config.\n\n**Best for:** backup, restore, rollback, daily GitHub backup, and recovery readiness.\n\n---\n\n# Why teams use it\n\n- Protect `SOUL.md`, `USER.md`, `AGENTS.md`, and related state files\n- Recover quickly after bad edits, deletions, or config mistakes\n- Validate backup integrity with checksums\n- Keep versioned recovery points instead of hoping git history is enough\n- Push daily backups off-machine to GitHub\n\n---\n\n# What it protects\n\nCore workspace state such as:\n\n- `SOUL.md`\n- `USER.md`\n- `AGENTS.md`\n- `IDENTITY.md`\n- `TOOLS.md`\n- `HEARTBEAT.md`\n- `BOOTSTRAP.md`\n- optional `~/.openclaw/openclaw.json`\n\nBy default, config backup is sanitized unless you explicitly choose real-config mode.\n\n---\n\n# Quick start\n\nInstall:\n\n```bash\nnpm install\n```\n\nCreate a backup:\n\n```bash\nnode scripts/backup.mjs\n```\n\nInclude real config:\n\n```bash\nnode scripts/backup.mjs --raw-openclaw-config\n```\n\nList backups:\n\n```bash\nnode scripts/list.mjs\n```\n\nRestore latest backup:\n\n```bash\nnode scripts/restore.mjs\n```\n\nDry-run restore:\n\n```bash\nnode scripts/restore.mjs --dry-run\n```\n\nValidate integrity:\n\n```bash\nnode scripts/validate.mjs\n```\n\n---\n\n# GitHub backup flow\n\nCreate a backup and push it off-machine:\n\n```bash\nnode scripts/backup-and-push.mjs --remote origin\n```\n\nPush sanitized-config-only backup:\n\n```bash\nnode scripts/backup-and-push.mjs --remote origin --sanitized-config-only\n```\n\nThis repo is designed for daily backup workflows, rollback drills, and off-machine recovery.\n\n---\n\n# Core features\n\n- timestamped backups\n- named backups for milestones\n- rollback after bad restore\n- file-level restore\n- checksum validation\n- optional real config backup\n- git add / commit / push workflow for off-machine copies\n\n---\n\n# Typical use cases\n\n- “Back up my OpenClaw workspace”\n- “Restore yesterday’s working state”\n- “Roll back this bad change”\n- “Validate that my backups are not corrupt”\n- “Push daily OpenClaw backups to GitHub”\n\n---\n\n# Files\n\n- `SKILL.md` — agent-facing routing and usage guide\n- `RUNBOOK.md` — operations and recovery scenarios\n- `FEATURE_DEFINITION.md` — positioning and roadmap\n- `scripts/backup.mjs` — create a backup\n- `scripts/restore.mjs` — restore a backup\n- `scripts/list.mjs` — list available backups\n- `scripts/validate.mjs` — verify backup integrity\n- `scripts/backup-and-push.mjs` — create backup and git-push it\n\n---\n\n# Important limits\n\n- Backups are only useful if restore paths are tested\n- Real `openclaw.json` backups should live in private backup repos\n- This repo improves recovery readiness, but it does not replace disaster-recovery drills\n\n---\n\n# Bottom line\n\nIf your OpenClaw agent matters, its workspace state should be recoverable on demand. This repo gives you the backup + restore foundation for that.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fx-rayluan%2Fopenclaw-backup-restore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fx-rayluan%2Fopenclaw-backup-restore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fx-rayluan%2Fopenclaw-backup-restore/lists"}