{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-checkpoint",
    "name": "OpenClaw Checkpoint - Personal AI Assistant Backup & Recovery (Github)",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/AnthonyFrancis/openclaw-checkpoint",
    "canonicalUrl": "https://clawhub.ai/AnthonyFrancis/openclaw-checkpoint",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-checkpoint",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-checkpoint",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "INSTALL.md",
      "README.md",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/openclaw-checkpoint"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/openclaw-checkpoint",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-checkpoint/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-checkpoint/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-checkpoint/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "OpenClaw Checkpoint Skill",
        "body": "Backup and restore your OpenClaw identity, memory, agents, and configuration across machines.\n\nPlatform: macOS and Linux only. Windows is not supported."
      },
      {
        "title": "Overview",
        "body": "This skill provides disaster recovery for OpenClaw by syncing your workspace and agents to a git repository. It preserves:\n\nIdentity: SOUL.md, IDENTITY.md, USER.md (who you and the assistant are)\nMemory: MEMORY.md and memory/*.md files (conversation history and context)\nCron Jobs: Scheduled tasks exported to memory/cron-jobs-backup.json (morning briefs, daily syncs, automations)\nConfiguration: TOOLS.md, AGENTS.md, HEARTBEAT.md (tool setups and conventions)\nScripts: Custom tools and automation you've built\nAgents: All agent folders from ~/.openclaw/agents/ (alex, blake, etc.)\n\nNot synced (security): API keys (.env.*), credentials, OAuth tokens"
      },
      {
        "title": "Option 1: Git Clone (Recommended)",
        "body": "# Clone the skill repo\ngit clone https://github.com/AnthonyFrancis/openclaw-checkpoint.git ~/.openclaw/skills/openclaw-checkpoint\n\n# Copy scripts to tools directory\nmkdir -p ~/.openclaw/workspace/tools\ncp ~/.openclaw/skills/openclaw-checkpoint/scripts/checkpoint* ~/.openclaw/workspace/tools/\nchmod +x ~/.openclaw/workspace/tools/checkpoint*\n\n# Add to PATH (also add to ~/.zshrc or ~/.bashrc for persistence)\nexport PATH=\"${HOME}/.openclaw/workspace/tools:${PATH}\"\n\n# Run setup wizard\ncheckpoint-setup"
      },
      {
        "title": "Option 2: Quick Install",
        "body": "curl -fsSL https://raw.githubusercontent.com/AnthonyFrancis/openclaw-checkpoint/main/scripts/install-openclaw-checkpoint.sh | bash\n\nThis runs the install script -- review it first if you prefer to inspect before executing."
      },
      {
        "title": "checkpoint",
        "body": "Show all available commands and usage examples.\n\ncheckpoint\n\nWhat it does:\n\nDisplays a quick reference of all checkpoint commands with descriptions and examples\n\nWhen to use:\n\nWhen you can't remember the exact command name\nQuick reference for available options"
      },
      {
        "title": "checkpoint-setup",
        "body": "Interactive onboarding flow for first-time setup.\n\ncheckpoint-setup\n\nWhat it does:\n\nGuides you through creating a PRIVATE GitHub repository\nSets up SSH authentication (recommended) or Personal Access Token\nAutomatically detects if SSH key is already authorized on GitHub\nDetects agents in ~/.openclaw/agents/ and reports they will be included in backups\nGenerates a README.md with recovery instructions and commands\nCommits workspace files within ~/.openclaw/workspace (secrets excluded via .gitignore)\nConfigures automatic backups\nTests the backup system\nShows final status\n\nWhen to use:\n\nFirst time setting up checkpoint system\nAfter installing the skill\nAfter running checkpoint-reset\nRecommended starting point for new users"
      },
      {
        "title": "checkpoint-auth",
        "body": "Authenticate with GitHub (browser-based).\n\ncheckpoint-auth\n\nWhat it does:\n\nOption 1: GitHub CLI (opens browser automatically)\nOption 2: Personal Access Token (expires, needs renewal)\nOption 3: SSH Key (recommended - no token expiry)\nAutomatically adds GitHub to known_hosts\nTests authentication after setup\n\nWhen to use:\n\nAuthentication expired or failed\nSwitching authentication methods\nSetting up on a new machine\n\nSSH is recommended because:\n\nNo token expiration to worry about\nWorks reliably without password prompts\nGitHub no longer accepts password authentication for HTTPS"
      },
      {
        "title": "checkpoint-backup",
        "body": "Save current state to remote repository.\n\ncheckpoint-backup                     # Backup workspace + all agents\ncheckpoint-backup --workspace-only    # Backup workspace only (skip agents)\ncheckpoint-backup --agents-only       # Backup agents only (skip workspace/cron)\ncheckpoint-backup --agent alex        # Backup only the 'alex' agent (+ workspace)\n\nWhat it does:\n\nBacks up OpenClaw cron jobs to memory/cron-jobs-backup.json (requires openclaw CLI and running gateway)\nCopies agent folders from ~/.openclaw/agents/ into agents/ in the workspace repo (strips nested .git dirs)\nNormalizes home-directory paths ($HOME -> {{HOME}}) for cross-machine portability\nCommits all changes in ~/.openclaw/workspace\nPushes to origin/main\nShows commit hash and timestamp\n\nAgent backup details:\n\nAuto-detects agents in ~/.openclaw/agents/ (e.g., alex, blake)\nEach agent folder is copied to agents/<name>/ in the backup repo\nNested .git directories are removed to avoid submodule issues\nIf no agents exist, skips gracefully with an info message\nUses rsync --exclude='.git' when available, falls back to cp -r + manual .git removal\n\nCron job backup details:\n\nRuns openclaw cron list --json to export all scheduled tasks\nStrips runtime state, keeps only configuration (name, schedule, target, payload)\nNon-blocking: if the CLI or gateway is unavailable, checkpoint-backup continues without cron backup\n\nFlags:\n\n--workspace-only — skip agent backup\n--agents-only — skip workspace and cron backup, only back up agents\n--agent <name> — back up a single named agent only\n\nWhen to use:\n\nBefore switching computers\nAfter significant changes (new memory, updated SOUL.md)\nAny time you want to ensure changes are saved"
      },
      {
        "title": "checkpoint-schedule",
        "body": "Set up automatic backups with configurable frequency.\n\ncheckpoint-schedule 15min      # Every 15 minutes\ncheckpoint-schedule 30min      # Every 30 minutes\ncheckpoint-schedule hourly     # Every hour (default)\ncheckpoint-schedule 2hours     # Every 2 hours\ncheckpoint-schedule 4hours     # Every 4 hours\ncheckpoint-schedule daily      # Once per day at 9am\ncheckpoint-schedule disable    # Turn off auto-backup\n\nWhat it does:\n\nmacOS: Creates launchd plist for reliable background backups\nLinux: Adds cron job for scheduled backups\nLogs all activity to ~/.openclaw/logs/checkpoint.log\n\nWhen to use:\n\nFirst time setup: checkpoint-schedule hourly\nChange frequency: checkpoint-schedule 15min\nStop backups: checkpoint-schedule disable"
      },
      {
        "title": "checkpoint-status",
        "body": "Check backup health and status.\n\ncheckpoint-status\n\nWhat it shows:\n\nLast backup time and commit\nWhether local is behind remote\nUncommitted changes\nAgent backup status (which agents are backed up, which are missing)\nAuto-backup schedule status\nRecent backup activity log\n\nWhen to use:\n\nBefore switching machines (verify synced)\nTroubleshooting backup issues\nRegular health checks"
      },
      {
        "title": "checkpoint-restore",
        "body": "Restore state from remote repository, with checkpoint selection and first-time onboarding.\n\ncheckpoint-restore                    # Select from recent checkpoints (interactive)\ncheckpoint-restore --latest           # Restore most recent checkpoint (skip selection)\ncheckpoint-restore --force            # Discard local changes before restoring\ncheckpoint-restore --workspace-only   # Restore workspace only (skip agents)\ncheckpoint-restore --agents-only      # Restore agents only (skip workspace/cron)\ncheckpoint-restore --agent alex       # Restore only the 'alex' agent\n\nWhat it does:\n\nFirst-time users: Launches interactive restore onboarding flow\n\nGuides you through GitHub authentication (SSH, GitHub CLI, or PAT)\nLets you specify your existing backup repository\nVerifies access and restores your checkpoint\nHandles merge/replace options if local files exist\nShows available checkpoints to pick from (if the repo has more than one commit)\nOffers to restore cron jobs from backup\nOffers to restore agents from backup\n\n\nReturning users: Shows a list of the 10 most recent checkpoints to choose from\n\nPick the latest or any older checkpoint to restore\nCurrent checkpoint is marked in the list\nRestoring an older checkpoint warns that the next backup will overwrite newer remote checkpoints\nUse --latest flag to skip the interactive selection and restore the most recent checkpoint automatically\n\n\nUncommitted changes: If you have local uncommitted changes, you're prompted to:\n\nSave changes first (runs checkpoint-backup)\nDiscard local changes and continue restoring\nCancel\n\n\nPath portability: Automatically expands {{HOME}} placeholders and rewrites old home-directory paths for the current machine\nCron jobs: Automatically offers to restore cron jobs from memory/cron-jobs-backup.json after restoring (requires OpenClaw gateway to be running)\nAgents: Offers to restore agents from agents/ directory in the backup to ~/.openclaw/agents/\n\nFlags:\n\n--latest — skip selection, restore most recent checkpoint\n--force — discard local changes without prompting\n--workspace-only — skip agent restore\n--agents-only — skip workspace and cron restore, only restore agents\n--agent <name> — restore a single named agent only\n\nWhen to use:\n\nStarting OpenClaw on a new machine\nAfter hardware failure/disaster\nWhen resuming work on different computer\nFirst-time restore from an existing backup\nRolling back to a previous checkpoint after unwanted changes\n\nOnboarding flow triggers when:\n\nNo workspace exists\nWorkspace exists but not a git repository\nGit repository exists but no remote configured"
      },
      {
        "title": "checkpoint-init",
        "body": "Initialize workspace for checkpoint system.\n\ncheckpoint-init\n\nWhat it does:\n\nCreates git repository in ~/.openclaw/workspace\nGenerates .gitignore (excludes secrets and ephemeral files)\nCreates initial commit\n\nWhen to use:\n\nFirst time setting up checkpoint system\nAfter restoring from backup to new machine"
      },
      {
        "title": "checkpoint-reset",
        "body": "Reset checkpoint system for fresh setup.\n\ncheckpoint-reset\n\nWhat it does:\n\nOption 1: Removes local git repository only (keeps SSH keys)\nOption 2: Removes everything (git repo + SSH keys + GitHub from known_hosts)\nOffers to remove backed-up agent copies from workspace agents/ folder\nReminds you to delete the GitHub repo manually\n\nNote: Reset never touches your actual agent folders in ~/.openclaw/agents/ -- only the backup copies.\n\nWhen to use:\n\nStarting over with a fresh setup\nSwitching to a different GitHub repository\nTroubleshooting persistent authentication issues"
      },
      {
        "title": "checkpoint-stop",
        "body": "Stop automatic backups.\n\ncheckpoint-stop\n\nWhat it does:\n\nDisables scheduled automatic backups\nRemoves cron job (Linux) or launchd agent (macOS)\n\nWhen to use:\n\nTemporarily pausing backups\nBefore making major workspace changes\nIf backups are causing issues\n\nTo restart: checkpoint-schedule hourly (or any frequency)"
      },
      {
        "title": "Easy Setup (Recommended)",
        "body": "Just run the interactive wizard:\n\ncheckpoint-setup\n\nThis handles everything: git init, SSH keys, GitHub setup, and first backup."
      },
      {
        "title": "First Time Setup (Manual)",
        "body": "# 1. Initialize checkpoint system\ncheckpoint-init\n\n# 2. Create PRIVATE GitHub repository\n# Go to https://github.com/new\n# Name: openclaw-state\n# ⚠️  Visibility: PRIVATE (important - contains your personal data!)\n\n# 3. Add remote (use SSH, not HTTPS)\ncd ~/.openclaw/workspace\ngit remote add origin git@github.com:YOURUSER/openclaw-state.git\ncheckpoint-backup"
      },
      {
        "title": "Setup on Second Machine",
        "body": "Option 1: Interactive Restore (Recommended)\n\n# Install the checkpoint skill first\ncurl -fsSL https://raw.githubusercontent.com/AnthonyFrancis/openclaw-checkpoint/main/scripts/install-openclaw-checkpoint.sh | bash\n\n# Run checkpoint-restore - it will guide you through the entire process\ncheckpoint-restore\n\nThis will:\n\nHelp you authenticate with GitHub (if not already)\nAsk for your backup repository details\nClone/restore your checkpoint automatically\n\nOption 2: Manual Clone\n\n# 1. Clone repository (use SSH)\ngit clone git@github.com:YOURUSER/openclaw-state.git ~/.openclaw/workspace\n\n# 2. Restore secrets from 1Password/password manager\n# Create ~/.openclaw/workspace/.env.thisweek\n# Create ~/.openclaw/workspace/.env.stripe\n# (Copy from secure storage)\n\n# 3. Start OpenClaw\nopenclaw gateway start"
      },
      {
        "title": "Easy Setup (Recommended)",
        "body": "# Enable hourly backups\ncheckpoint-schedule hourly\n\n# Or choose your frequency:\ncheckpoint-schedule 15min   # Every 15 minutes - high activity\ncheckpoint-schedule 30min   # Every 30 minutes - medium activity  \ncheckpoint-schedule 2hours  # Every 2 hours - low activity\ncheckpoint-schedule daily   # Once per day - minimal activity"
      },
      {
        "title": "Check Status",
        "body": "checkpoint-status\n\nShows:\n\nLast backup time\nWhether synced with remote\nAuto-backup schedule\nRecent activity log"
      },
      {
        "title": "Multi-Agent Backup",
        "body": "The checkpoint system automatically detects and backs up all agents from ~/.openclaw/agents/."
      },
      {
        "title": "How It Works",
        "body": "On backup: Agent folders are copied from ~/.openclaw/agents/ into agents/ inside the backup repo, with nested .git directories stripped\nOn restore: Agent folders are copied from agents/ in the backup repo back to ~/.openclaw/agents/\nIf no agents exist, all commands skip agent handling gracefully"
      },
      {
        "title": "File Structure in Backup Repo",
        "body": "~/.openclaw/workspace/          (backup repo root)\n  SOUL.md\n  MEMORY.md\n  memory/\n  agents/                       (auto-created when agents exist)\n    alex/                       (copied from ~/.openclaw/agents/alex/)\n    blake/                      (copied from ~/.openclaw/agents/blake/)"
      },
      {
        "title": "Agent Flags",
        "body": "These flags work on checkpoint-backup and checkpoint-restore:\n\nFlagDescription--workspace-onlySkip agent backup/restore entirely--agents-onlySkip workspace and cron, only operate on agents--agent <name>Operate on a single named agent only"
      },
      {
        "title": "Examples",
        "body": "# Backup everything (default)\ncheckpoint-backup\n\n# Backup only agents\ncheckpoint-backup --agents-only\n\n# Backup only the 'alex' agent\ncheckpoint-backup --agent alex\n\n# Restore workspace but skip agents\ncheckpoint-restore --latest --workspace-only\n\n# Restore only agents from backup\ncheckpoint-restore --agents-only\n\n# Check which agents are backed up\ncheckpoint-status"
      },
      {
        "title": "Backwards Compatibility",
        "body": "If ~/.openclaw/agents/ does not exist or is empty, all commands skip agent handling with an info message\nOld backup repos without an agents/ directory work fine -- restore simply skips agents\nNo existing behavior changes when no agents are present"
      },
      {
        "title": "Cross-Machine Portability",
        "body": "When you back up on one machine (e.g. /Users/jerry) and restore on another (e.g. /Users/tom), hardcoded absolute home-directory paths in workspace files would break. The checkpoint system handles this automatically."
      },
      {
        "title": "How It Works",
        "body": "On backup: All occurrences of your $HOME path (e.g. /Users/jerry) are replaced with the placeholder {{HOME}} in text files. A .checkpoint-meta.json file is written with the source machine's details.\nOn restore: The {{HOME}} placeholder is expanded to the current machine's $HOME (e.g. /Users/tom). For backwards compatibility with older backups that were created before normalization, any remaining literal old home paths are also rewritten."
      },
      {
        "title": "What Gets Processed",
        "body": "Only text files likely to contain paths are scanned:\n\n*.md, *.json, *.sh, *.txt, *.yaml, *.yml, *.toml, *.cfg, *.conf\n\nBinary files, .git/, and node_modules/ are never touched."
      },
      {
        "title": ".checkpoint-meta.json",
        "body": "This file is auto-generated on each backup and records the source machine:\n\n{\n  \"source_home\": \"/Users/jerry\",\n  \"source_user\": \"jerry\",\n  \"hostname\": \"Jerrys-MacBook-Pro\"\n}\n\nOn restore, this metadata tells the script which old paths to rewrite. The file is updated after restore to reflect the current machine."
      },
      {
        "title": "Manual Cron Setup (Advanced)",
        "body": "If you prefer manual cron:\n\n# Edit crontab\ncrontab -e\n\n# Add line for hourly backups:\n0 * * * * /Users/$(whoami)/.openclaw/workspace/skills/openclaw-checkpoint/scripts/checkpoint-backup >> ~/.openclaw/logs/checkpoint.log 2>&1"
      },
      {
        "title": "Disaster Recovery Workflow",
        "body": "Scenario: Home server dies\n\n# On new machine:\n\n# 1. Install OpenClaw\nbrew install openclaw  # or your install method\n\n# 2. Install checkpoint skill and run interactive restore\ncurl -fsSL https://raw.githubusercontent.com/AnthonyFrancis/openclaw-checkpoint/main/scripts/install-openclaw-checkpoint.sh | bash\ncheckpoint-restore\n# Follow the interactive prompts to:\n# - Authenticate with GitHub\n# - Enter your backup repository (e.g., YOURUSER/openclaw-state)\n# - Restore your checkpoint\n\n# 3. Restore secrets from 1Password (API keys are not backed up for security)\ncat > ~/.openclaw/workspace/.env.thisweek << 'EOF'\nTHISWEEK_API_KEY=your_key_here\nEOF\n\n# 4. Start OpenClaw\nopenclaw gateway start\n\n# 5. Cron jobs are restored automatically during checkpoint-restore\n# (if the gateway is running and cron backup exists)\n\n# 6. Enable automatic backups on this machine\ncheckpoint-schedule hourly\n\n# 7. Verify\n# Ask assistant: \"What were we working on?\"\n# Should recall everything up to last checkpoint, with all scheduled tasks restored"
      },
      {
        "title": "⚠️ CRITICAL: Repository MUST be PRIVATE",
        "body": "Your backup contains sensitive personal data:\n\nSOUL.md, MEMORY.md (your identity & memories)\nPersonal notes and conversation history\nCustom scripts and configurations\n\nIf you make the repo public, anyone can see your data!\n\nWhat gets backed up:\n\n✅ Memory files (conversation history)\n✅ Identity files (SOUL.md, etc.)\n✅ Cron jobs (memory/cron-jobs-backup.json)\n✅ Scripts and tools\n✅ Configuration\n✅ Agents (~/.openclaw/agents/ -> agents/ in backup repo)\n\nWhat does NOT get backed up:\n\n❌ API keys (.env.*) — keep in 1Password\n❌ OAuth tokens — re-authenticate on new machine\n❌ Downloaded media — ephemeral\n❌ Temporary files — ephemeral\n\nBest practices:\n\nAlways use a PRIVATE repository\nUse SSH authentication (no token expiry)\nStore API keys in password manager, not in backed-up files\nEnable 2FA on GitHub account\nConsider encrypting sensitive notes before adding to memory"
      },
      {
        "title": "Permissions and Scheduling",
        "body": "This skill uses standard system scheduling to automate backups:\n\nmacOS: Creates a launchd plist at ~/Library/LaunchAgents/com.openclaw.checkpoint.plist\nLinux: Adds a user-level cron job (visible via crontab -l)\n\nAuto-backup is opt-in only -- it is never enabled unless you explicitly run checkpoint-schedule. You can disable it at any time with checkpoint-stop or checkpoint-schedule disable.\n\nThe skill does not install any background daemons, system services, or root-level processes. All scheduling runs under your user account.\n\nFile access scope: The skill reads from ~/.openclaw/workspace and ~/.openclaw/agents/ (for multi-agent backup). It writes backup copies of agents into ~/.openclaw/workspace/agents/. On restore, it copies agents back to ~/.openclaw/agents/. Sensitive files (.env.*, credentials, OAuth tokens) are excluded from backups via .gitignore."
      },
      {
        "title": "\"Not a git repository\" or \"'origin' does not appear to be a git repository\"",
        "body": "Running checkpoint-restore will now automatically start the interactive restore onboarding flow to help you connect to your backup repository. Alternatively, run checkpoint-setup to create a new backup from scratch."
      },
      {
        "title": "\"Failed to push checkpoint\"",
        "body": "Another machine pushed changes. Run checkpoint-restore first, then checkpoint-backup."
      },
      {
        "title": "\"You have uncommitted changes\"",
        "body": "checkpoint-restore will prompt you to choose:\n\nSave changes first (runs checkpoint-backup)\nDiscard local changes and continue\nCancel\n\nYou can also skip the prompt with checkpoint-restore --force to discard changes directly."
      },
      {
        "title": "Behind remote after restore",
        "body": "This is expected if another machine checkpointed since you last synced."
      },
      {
        "title": "GitHub prompting for username/password",
        "body": "GitHub no longer accepts password authentication for HTTPS. Switch to SSH:\n\ncd ~/.openclaw/workspace\ngit remote set-url origin git@github.com:YOURUSER/REPO.git"
      },
      {
        "title": "\"Host key verification failed\"",
        "body": "GitHub's SSH host key isn't in your known_hosts. Fix with:\n\nssh-keyscan -t ed25519 github.com >> ~/.ssh/known_hosts"
      },
      {
        "title": "\"Permission denied (publickey)\"",
        "body": "Your SSH key isn't added to GitHub. Run checkpoint-auth and choose SSH option."
      },
      {
        "title": "GitHub repo is empty after setup",
        "body": "The old checkpoint-init only committed .gitignore. This is fixed now. Run:\n\ncd ~/.openclaw/workspace && git add -A && git commit -m \"Full backup\" && git push"
      },
      {
        "title": "Starting fresh",
        "body": "Run checkpoint-reset to remove local git repo and optionally SSH keys, then checkpoint-setup."
      },
      {
        "title": "Agents not being backed up",
        "body": "Check that your agents are in ~/.openclaw/agents/ (not somewhere else). Run checkpoint-status to see which agents are detected and which are backed up. Make sure you're not passing --workspace-only."
      },
      {
        "title": "Agent has nested .git errors",
        "body": "The backup process automatically strips .git directories from agent copies. If you see submodule warnings, run a fresh backup:\n\nrm -rf ~/.openclaw/workspace/agents\ncheckpoint-backup"
      },
      {
        "title": "Restored agents missing files",
        "body": "Agent restore copies the backup as-is. If the backup was taken before certain files were added to the agent, those files won't be present. Run checkpoint-backup on the source machine first to capture the latest state."
      },
      {
        "title": "\"Permission denied, mkdir '/Users/olduser'\" after restoring on a new machine",
        "body": "This means files contain hardcoded paths from the original machine. If the backup was created before path normalization was added, run:\n\ncd ~/.openclaw/workspace\ngrep -rl \"/Users/olduser\" --include=\"*.md\" --include=\"*.json\" --include=\"*.sh\" | \\\n  xargs sed -i '' \"s|/Users/olduser|$HOME|g\"\n\nFuture backups will normalize paths automatically."
      },
      {
        "title": "Files show {{HOME}} instead of real paths",
        "body": "This is expected in the backup repo on GitHub. The {{HOME}} placeholder is replaced with the real $HOME path on each restore. If you see {{HOME}} in your local workspace after a restore, run checkpoint-restore --latest again."
      },
      {
        "title": "Limitations",
        "body": "Single machine at a time: Don't run OpenClaw on multiple machines simultaneously\nMax data loss: 1 hour if using hourly backups (cron)\nSecrets not synced: Must restore API keys manually on new machine\nLarge files: GitHub has 100MB file limit (your text files are fine)"
      },
      {
        "title": "File Reference",
        "body": "See references/setup.md for detailed setup instructions."
      }
    ],
    "body": "OpenClaw Checkpoint Skill\n\nBackup and restore your OpenClaw identity, memory, agents, and configuration across machines.\n\nPlatform: macOS and Linux only. Windows is not supported.\n\nOverview\n\nThis skill provides disaster recovery for OpenClaw by syncing your workspace and agents to a git repository. It preserves:\n\nIdentity: SOUL.md, IDENTITY.md, USER.md (who you and the assistant are)\nMemory: MEMORY.md and memory/*.md files (conversation history and context)\nCron Jobs: Scheduled tasks exported to memory/cron-jobs-backup.json (morning briefs, daily syncs, automations)\nConfiguration: TOOLS.md, AGENTS.md, HEARTBEAT.md (tool setups and conventions)\nScripts: Custom tools and automation you've built\nAgents: All agent folders from ~/.openclaw/agents/ (alex, blake, etc.)\n\nNot synced (security): API keys (.env.*), credentials, OAuth tokens\n\nInstallation\nOption 1: Git Clone (Recommended)\n# Clone the skill repo\ngit clone https://github.com/AnthonyFrancis/openclaw-checkpoint.git ~/.openclaw/skills/openclaw-checkpoint\n\n# Copy scripts to tools directory\nmkdir -p ~/.openclaw/workspace/tools\ncp ~/.openclaw/skills/openclaw-checkpoint/scripts/checkpoint* ~/.openclaw/workspace/tools/\nchmod +x ~/.openclaw/workspace/tools/checkpoint*\n\n# Add to PATH (also add to ~/.zshrc or ~/.bashrc for persistence)\nexport PATH=\"${HOME}/.openclaw/workspace/tools:${PATH}\"\n\n# Run setup wizard\ncheckpoint-setup\n\nOption 2: Quick Install\ncurl -fsSL https://raw.githubusercontent.com/AnthonyFrancis/openclaw-checkpoint/main/scripts/install-openclaw-checkpoint.sh | bash\n\n\nThis runs the install script -- review it first if you prefer to inspect before executing.\n\nCommands\ncheckpoint\n\nShow all available commands and usage examples.\n\ncheckpoint\n\n\nWhat it does:\n\nDisplays a quick reference of all checkpoint commands with descriptions and examples\n\nWhen to use:\n\nWhen you can't remember the exact command name\nQuick reference for available options\ncheckpoint-setup\n\nInteractive onboarding flow for first-time setup.\n\ncheckpoint-setup\n\n\nWhat it does:\n\nGuides you through creating a PRIVATE GitHub repository\nSets up SSH authentication (recommended) or Personal Access Token\nAutomatically detects if SSH key is already authorized on GitHub\nDetects agents in ~/.openclaw/agents/ and reports they will be included in backups\nGenerates a README.md with recovery instructions and commands\nCommits workspace files within ~/.openclaw/workspace (secrets excluded via .gitignore)\nConfigures automatic backups\nTests the backup system\nShows final status\n\nWhen to use:\n\nFirst time setting up checkpoint system\nAfter installing the skill\nAfter running checkpoint-reset\nRecommended starting point for new users\ncheckpoint-auth\n\nAuthenticate with GitHub (browser-based).\n\ncheckpoint-auth\n\n\nWhat it does:\n\nOption 1: GitHub CLI (opens browser automatically)\nOption 2: Personal Access Token (expires, needs renewal)\nOption 3: SSH Key (recommended - no token expiry)\nAutomatically adds GitHub to known_hosts\nTests authentication after setup\n\nWhen to use:\n\nAuthentication expired or failed\nSwitching authentication methods\nSetting up on a new machine\n\nSSH is recommended because:\n\nNo token expiration to worry about\nWorks reliably without password prompts\nGitHub no longer accepts password authentication for HTTPS\ncheckpoint-backup\n\nSave current state to remote repository.\n\ncheckpoint-backup                     # Backup workspace + all agents\ncheckpoint-backup --workspace-only    # Backup workspace only (skip agents)\ncheckpoint-backup --agents-only       # Backup agents only (skip workspace/cron)\ncheckpoint-backup --agent alex        # Backup only the 'alex' agent (+ workspace)\n\n\nWhat it does:\n\nBacks up OpenClaw cron jobs to memory/cron-jobs-backup.json (requires openclaw CLI and running gateway)\nCopies agent folders from ~/.openclaw/agents/ into agents/ in the workspace repo (strips nested .git dirs)\nNormalizes home-directory paths ($HOME -> {{HOME}}) for cross-machine portability\nCommits all changes in ~/.openclaw/workspace\nPushes to origin/main\nShows commit hash and timestamp\n\nAgent backup details:\n\nAuto-detects agents in ~/.openclaw/agents/ (e.g., alex, blake)\nEach agent folder is copied to agents/<name>/ in the backup repo\nNested .git directories are removed to avoid submodule issues\nIf no agents exist, skips gracefully with an info message\nUses rsync --exclude='.git' when available, falls back to cp -r + manual .git removal\n\nCron job backup details:\n\nRuns openclaw cron list --json to export all scheduled tasks\nStrips runtime state, keeps only configuration (name, schedule, target, payload)\nNon-blocking: if the CLI or gateway is unavailable, checkpoint-backup continues without cron backup\n\nFlags:\n\n--workspace-only — skip agent backup\n--agents-only — skip workspace and cron backup, only back up agents\n--agent <name> — back up a single named agent only\n\nWhen to use:\n\nBefore switching computers\nAfter significant changes (new memory, updated SOUL.md)\nAny time you want to ensure changes are saved\ncheckpoint-schedule\n\nSet up automatic backups with configurable frequency.\n\ncheckpoint-schedule 15min      # Every 15 minutes\ncheckpoint-schedule 30min      # Every 30 minutes\ncheckpoint-schedule hourly     # Every hour (default)\ncheckpoint-schedule 2hours     # Every 2 hours\ncheckpoint-schedule 4hours     # Every 4 hours\ncheckpoint-schedule daily      # Once per day at 9am\ncheckpoint-schedule disable    # Turn off auto-backup\n\n\nWhat it does:\n\nmacOS: Creates launchd plist for reliable background backups\nLinux: Adds cron job for scheduled backups\nLogs all activity to ~/.openclaw/logs/checkpoint.log\n\nWhen to use:\n\nFirst time setup: checkpoint-schedule hourly\nChange frequency: checkpoint-schedule 15min\nStop backups: checkpoint-schedule disable\ncheckpoint-status\n\nCheck backup health and status.\n\ncheckpoint-status\n\n\nWhat it shows:\n\nLast backup time and commit\nWhether local is behind remote\nUncommitted changes\nAgent backup status (which agents are backed up, which are missing)\nAuto-backup schedule status\nRecent backup activity log\n\nWhen to use:\n\nBefore switching machines (verify synced)\nTroubleshooting backup issues\nRegular health checks\ncheckpoint-restore\n\nRestore state from remote repository, with checkpoint selection and first-time onboarding.\n\ncheckpoint-restore                    # Select from recent checkpoints (interactive)\ncheckpoint-restore --latest           # Restore most recent checkpoint (skip selection)\ncheckpoint-restore --force            # Discard local changes before restoring\ncheckpoint-restore --workspace-only   # Restore workspace only (skip agents)\ncheckpoint-restore --agents-only      # Restore agents only (skip workspace/cron)\ncheckpoint-restore --agent alex       # Restore only the 'alex' agent\n\n\nWhat it does:\n\nFirst-time users: Launches interactive restore onboarding flow\nGuides you through GitHub authentication (SSH, GitHub CLI, or PAT)\nLets you specify your existing backup repository\nVerifies access and restores your checkpoint\nHandles merge/replace options if local files exist\nShows available checkpoints to pick from (if the repo has more than one commit)\nOffers to restore cron jobs from backup\nOffers to restore agents from backup\nReturning users: Shows a list of the 10 most recent checkpoints to choose from\nPick the latest or any older checkpoint to restore\nCurrent checkpoint is marked in the list\nRestoring an older checkpoint warns that the next backup will overwrite newer remote checkpoints\nUse --latest flag to skip the interactive selection and restore the most recent checkpoint automatically\nUncommitted changes: If you have local uncommitted changes, you're prompted to:\nSave changes first (runs checkpoint-backup)\nDiscard local changes and continue restoring\nCancel\nPath portability: Automatically expands {{HOME}} placeholders and rewrites old home-directory paths for the current machine\nCron jobs: Automatically offers to restore cron jobs from memory/cron-jobs-backup.json after restoring (requires OpenClaw gateway to be running)\nAgents: Offers to restore agents from agents/ directory in the backup to ~/.openclaw/agents/\n\nFlags:\n\n--latest — skip selection, restore most recent checkpoint\n--force — discard local changes without prompting\n--workspace-only — skip agent restore\n--agents-only — skip workspace and cron restore, only restore agents\n--agent <name> — restore a single named agent only\n\nWhen to use:\n\nStarting OpenClaw on a new machine\nAfter hardware failure/disaster\nWhen resuming work on different computer\nFirst-time restore from an existing backup\nRolling back to a previous checkpoint after unwanted changes\n\nOnboarding flow triggers when:\n\nNo workspace exists\nWorkspace exists but not a git repository\nGit repository exists but no remote configured\ncheckpoint-init\n\nInitialize workspace for checkpoint system.\n\ncheckpoint-init\n\n\nWhat it does:\n\nCreates git repository in ~/.openclaw/workspace\nGenerates .gitignore (excludes secrets and ephemeral files)\nCreates initial commit\n\nWhen to use:\n\nFirst time setting up checkpoint system\nAfter restoring from backup to new machine\ncheckpoint-reset\n\nReset checkpoint system for fresh setup.\n\ncheckpoint-reset\n\n\nWhat it does:\n\nOption 1: Removes local git repository only (keeps SSH keys)\nOption 2: Removes everything (git repo + SSH keys + GitHub from known_hosts)\nOffers to remove backed-up agent copies from workspace agents/ folder\nReminds you to delete the GitHub repo manually\n\nNote: Reset never touches your actual agent folders in ~/.openclaw/agents/ -- only the backup copies.\n\nWhen to use:\n\nStarting over with a fresh setup\nSwitching to a different GitHub repository\nTroubleshooting persistent authentication issues\ncheckpoint-stop\n\nStop automatic backups.\n\ncheckpoint-stop\n\n\nWhat it does:\n\nDisables scheduled automatic backups\nRemoves cron job (Linux) or launchd agent (macOS)\n\nWhen to use:\n\nTemporarily pausing backups\nBefore making major workspace changes\nIf backups are causing issues\n\nTo restart: checkpoint-schedule hourly (or any frequency)\n\nSetup\nEasy Setup (Recommended)\n\nJust run the interactive wizard:\n\ncheckpoint-setup\n\n\nThis handles everything: git init, SSH keys, GitHub setup, and first backup.\n\nFirst Time Setup (Manual)\n# 1. Initialize checkpoint system\ncheckpoint-init\n\n# 2. Create PRIVATE GitHub repository\n# Go to https://github.com/new\n# Name: openclaw-state\n# ⚠️  Visibility: PRIVATE (important - contains your personal data!)\n\n# 3. Add remote (use SSH, not HTTPS)\ncd ~/.openclaw/workspace\ngit remote add origin git@github.com:YOURUSER/openclaw-state.git\ncheckpoint-backup\n\nSetup on Second Machine\n\nOption 1: Interactive Restore (Recommended)\n\n# Install the checkpoint skill first\ncurl -fsSL https://raw.githubusercontent.com/AnthonyFrancis/openclaw-checkpoint/main/scripts/install-openclaw-checkpoint.sh | bash\n\n# Run checkpoint-restore - it will guide you through the entire process\ncheckpoint-restore\n\n\nThis will:\n\nHelp you authenticate with GitHub (if not already)\nAsk for your backup repository details\nClone/restore your checkpoint automatically\n\nOption 2: Manual Clone\n\n# 1. Clone repository (use SSH)\ngit clone git@github.com:YOURUSER/openclaw-state.git ~/.openclaw/workspace\n\n# 2. Restore secrets from 1Password/password manager\n# Create ~/.openclaw/workspace/.env.thisweek\n# Create ~/.openclaw/workspace/.env.stripe\n# (Copy from secure storage)\n\n# 3. Start OpenClaw\nopenclaw gateway start\n\nAutomated Backups\nEasy Setup (Recommended)\n# Enable hourly backups\ncheckpoint-schedule hourly\n\n# Or choose your frequency:\ncheckpoint-schedule 15min   # Every 15 minutes - high activity\ncheckpoint-schedule 30min   # Every 30 minutes - medium activity  \ncheckpoint-schedule 2hours  # Every 2 hours - low activity\ncheckpoint-schedule daily   # Once per day - minimal activity\n\nCheck Status\ncheckpoint-status\n\n\nShows:\n\nLast backup time\nWhether synced with remote\nAuto-backup schedule\nRecent activity log\nMulti-Agent Backup\n\nThe checkpoint system automatically detects and backs up all agents from ~/.openclaw/agents/.\n\nHow It Works\nOn backup: Agent folders are copied from ~/.openclaw/agents/ into agents/ inside the backup repo, with nested .git directories stripped\nOn restore: Agent folders are copied from agents/ in the backup repo back to ~/.openclaw/agents/\nIf no agents exist, all commands skip agent handling gracefully\nFile Structure in Backup Repo\n~/.openclaw/workspace/          (backup repo root)\n  SOUL.md\n  MEMORY.md\n  memory/\n  agents/                       (auto-created when agents exist)\n    alex/                       (copied from ~/.openclaw/agents/alex/)\n    blake/                      (copied from ~/.openclaw/agents/blake/)\n\nAgent Flags\n\nThese flags work on checkpoint-backup and checkpoint-restore:\n\nFlag\tDescription\n--workspace-only\tSkip agent backup/restore entirely\n--agents-only\tSkip workspace and cron, only operate on agents\n--agent <name>\tOperate on a single named agent only\nExamples\n# Backup everything (default)\ncheckpoint-backup\n\n# Backup only agents\ncheckpoint-backup --agents-only\n\n# Backup only the 'alex' agent\ncheckpoint-backup --agent alex\n\n# Restore workspace but skip agents\ncheckpoint-restore --latest --workspace-only\n\n# Restore only agents from backup\ncheckpoint-restore --agents-only\n\n# Check which agents are backed up\ncheckpoint-status\n\nBackwards Compatibility\nIf ~/.openclaw/agents/ does not exist or is empty, all commands skip agent handling with an info message\nOld backup repos without an agents/ directory work fine -- restore simply skips agents\nNo existing behavior changes when no agents are present\nCross-Machine Portability\n\nWhen you back up on one machine (e.g. /Users/jerry) and restore on another (e.g. /Users/tom), hardcoded absolute home-directory paths in workspace files would break. The checkpoint system handles this automatically.\n\nHow It Works\nOn backup: All occurrences of your $HOME path (e.g. /Users/jerry) are replaced with the placeholder {{HOME}} in text files. A .checkpoint-meta.json file is written with the source machine's details.\nOn restore: The {{HOME}} placeholder is expanded to the current machine's $HOME (e.g. /Users/tom). For backwards compatibility with older backups that were created before normalization, any remaining literal old home paths are also rewritten.\nWhat Gets Processed\n\nOnly text files likely to contain paths are scanned:\n\n*.md, *.json, *.sh, *.txt, *.yaml, *.yml, *.toml, *.cfg, *.conf\n\nBinary files, .git/, and node_modules/ are never touched.\n\n.checkpoint-meta.json\n\nThis file is auto-generated on each backup and records the source machine:\n\n{\n  \"source_home\": \"/Users/jerry\",\n  \"source_user\": \"jerry\",\n  \"hostname\": \"Jerrys-MacBook-Pro\"\n}\n\n\nOn restore, this metadata tells the script which old paths to rewrite. The file is updated after restore to reflect the current machine.\n\nManual Cron Setup (Advanced)\n\nIf you prefer manual cron:\n\n# Edit crontab\ncrontab -e\n\n# Add line for hourly backups:\n0 * * * * /Users/$(whoami)/.openclaw/workspace/skills/openclaw-checkpoint/scripts/checkpoint-backup >> ~/.openclaw/logs/checkpoint.log 2>&1\n\nDisaster Recovery Workflow\n\nScenario: Home server dies\n\n# On new machine:\n\n# 1. Install OpenClaw\nbrew install openclaw  # or your install method\n\n# 2. Install checkpoint skill and run interactive restore\ncurl -fsSL https://raw.githubusercontent.com/AnthonyFrancis/openclaw-checkpoint/main/scripts/install-openclaw-checkpoint.sh | bash\ncheckpoint-restore\n# Follow the interactive prompts to:\n# - Authenticate with GitHub\n# - Enter your backup repository (e.g., YOURUSER/openclaw-state)\n# - Restore your checkpoint\n\n# 3. Restore secrets from 1Password (API keys are not backed up for security)\ncat > ~/.openclaw/workspace/.env.thisweek << 'EOF'\nTHISWEEK_API_KEY=your_key_here\nEOF\n\n# 4. Start OpenClaw\nopenclaw gateway start\n\n# 5. Cron jobs are restored automatically during checkpoint-restore\n# (if the gateway is running and cron backup exists)\n\n# 6. Enable automatic backups on this machine\ncheckpoint-schedule hourly\n\n# 7. Verify\n# Ask assistant: \"What were we working on?\"\n# Should recall everything up to last checkpoint, with all scheduled tasks restored\n\nSecurity Considerations\n⚠️ CRITICAL: Repository MUST be PRIVATE\n\nYour backup contains sensitive personal data:\n\nSOUL.md, MEMORY.md (your identity & memories)\nPersonal notes and conversation history\nCustom scripts and configurations\n\nIf you make the repo public, anyone can see your data!\n\nWhat gets backed up:\n\n✅ Memory files (conversation history)\n✅ Identity files (SOUL.md, etc.)\n✅ Cron jobs (memory/cron-jobs-backup.json)\n✅ Scripts and tools\n✅ Configuration\n✅ Agents (~/.openclaw/agents/ -> agents/ in backup repo)\n\nWhat does NOT get backed up:\n\n❌ API keys (.env.*) — keep in 1Password\n❌ OAuth tokens — re-authenticate on new machine\n❌ Downloaded media — ephemeral\n❌ Temporary files — ephemeral\n\nBest practices:\n\nAlways use a PRIVATE repository\nUse SSH authentication (no token expiry)\nStore API keys in password manager, not in backed-up files\nEnable 2FA on GitHub account\nConsider encrypting sensitive notes before adding to memory\nPermissions and Scheduling\n\nThis skill uses standard system scheduling to automate backups:\n\nmacOS: Creates a launchd plist at ~/Library/LaunchAgents/com.openclaw.checkpoint.plist\nLinux: Adds a user-level cron job (visible via crontab -l)\n\nAuto-backup is opt-in only -- it is never enabled unless you explicitly run checkpoint-schedule. You can disable it at any time with checkpoint-stop or checkpoint-schedule disable.\n\nThe skill does not install any background daemons, system services, or root-level processes. All scheduling runs under your user account.\n\nFile access scope: The skill reads from ~/.openclaw/workspace and ~/.openclaw/agents/ (for multi-agent backup). It writes backup copies of agents into ~/.openclaw/workspace/agents/. On restore, it copies agents back to ~/.openclaw/agents/. Sensitive files (.env.*, credentials, OAuth tokens) are excluded from backups via .gitignore.\n\nTroubleshooting\n\"Not a git repository\" or \"'origin' does not appear to be a git repository\"\n\nRunning checkpoint-restore will now automatically start the interactive restore onboarding flow to help you connect to your backup repository. Alternatively, run checkpoint-setup to create a new backup from scratch.\n\n\"Failed to push checkpoint\"\n\nAnother machine pushed changes. Run checkpoint-restore first, then checkpoint-backup.\n\n\"You have uncommitted changes\"\n\ncheckpoint-restore will prompt you to choose:\n\nSave changes first (runs checkpoint-backup)\nDiscard local changes and continue\nCancel\n\nYou can also skip the prompt with checkpoint-restore --force to discard changes directly.\n\nBehind remote after restore\n\nThis is expected if another machine checkpointed since you last synced.\n\nGitHub prompting for username/password\n\nGitHub no longer accepts password authentication for HTTPS. Switch to SSH:\n\ncd ~/.openclaw/workspace\ngit remote set-url origin git@github.com:YOURUSER/REPO.git\n\n\"Host key verification failed\"\n\nGitHub's SSH host key isn't in your known_hosts. Fix with:\n\nssh-keyscan -t ed25519 github.com >> ~/.ssh/known_hosts\n\n\"Permission denied (publickey)\"\n\nYour SSH key isn't added to GitHub. Run checkpoint-auth and choose SSH option.\n\nGitHub repo is empty after setup\n\nThe old checkpoint-init only committed .gitignore. This is fixed now. Run:\n\ncd ~/.openclaw/workspace && git add -A && git commit -m \"Full backup\" && git push\n\nStarting fresh\n\nRun checkpoint-reset to remove local git repo and optionally SSH keys, then checkpoint-setup.\n\nAgents not being backed up\n\nCheck that your agents are in ~/.openclaw/agents/ (not somewhere else). Run checkpoint-status to see which agents are detected and which are backed up. Make sure you're not passing --workspace-only.\n\nAgent has nested .git errors\n\nThe backup process automatically strips .git directories from agent copies. If you see submodule warnings, run a fresh backup:\n\nrm -rf ~/.openclaw/workspace/agents\ncheckpoint-backup\n\nRestored agents missing files\n\nAgent restore copies the backup as-is. If the backup was taken before certain files were added to the agent, those files won't be present. Run checkpoint-backup on the source machine first to capture the latest state.\n\n\"Permission denied, mkdir '/Users/olduser'\" after restoring on a new machine\n\nThis means files contain hardcoded paths from the original machine. If the backup was created before path normalization was added, run:\n\ncd ~/.openclaw/workspace\ngrep -rl \"/Users/olduser\" --include=\"*.md\" --include=\"*.json\" --include=\"*.sh\" | \\\n  xargs sed -i '' \"s|/Users/olduser|$HOME|g\"\n\n\nFuture backups will normalize paths automatically.\n\nFiles show {{HOME}} instead of real paths\n\nThis is expected in the backup repo on GitHub. The {{HOME}} placeholder is replaced with the real $HOME path on each restore. If you see {{HOME}} in your local workspace after a restore, run checkpoint-restore --latest again.\n\nLimitations\nSingle machine at a time: Don't run OpenClaw on multiple machines simultaneously\nMax data loss: 1 hour if using hourly backups (cron)\nSecrets not synced: Must restore API keys manually on new machine\nLarge files: GitHub has 100MB file limit (your text files are fine)\nFile Reference\n\nSee references/setup.md for detailed setup instructions."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/AnthonyFrancis/openclaw-checkpoint",
    "publisherUrl": "https://clawhub.ai/AnthonyFrancis/openclaw-checkpoint",
    "owner": "AnthonyFrancis",
    "version": "1.0.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-checkpoint",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-checkpoint",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-checkpoint/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-checkpoint/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-checkpoint/agent.md"
  }
}