Sync your OpenClaw workspace across machines via Git. This allows you to:
Recommended branch model for multi-device:
main = shared baselineremote = this serverlocal = your laptop/desktop# Check status (current branch)
claw-roam status
# One-command full sync (recommended)
claw-roam sync
# Or step by step:
# Commit+push current branch
claw-roam push "msg"
# Pull latest for current branch
claw-roam pull
# (Optional) merge another device branch into current branch
claw-roam merge-from local
claw-roam merge-from remote
Commit and push workspace to remote Git repository.
claw-roam push [message]
Pull latest workspace from remote and sync.
claw-roam pull
Check sync status between local and remote.
claw-roam status
claw-roam sync
Performs the complete sync workflow in one command:
Workflow diagram:
┌─────────────┐ commit+push ┌─────────────┐
│ local │ ───────────────────▶│ origin/local│
│ 分支 │ │ │
└──────┬──────┘ └─────────────┘
│
│ merge main
▼
┌─────────────┐ merge+push ┌─────────────┐
│ local │ ───────────────────▶│ main │
│ 分支 │ │ (shared) │
└─────────────┘ └──────┬──────┘
│
┌──────────────────────┘
│ pull
▼
┌─────────────┐
│ remote │
│ 分支 │
└─────────────┘
Recommended daily workflow:
# On each machine, just run:
claw-roam sync
This ensures:
cd ~/.openclaw/workspace
git init
git remote add origin <your-repo-url>
git add -A
git commit -m "initial"
git push -u origin main
cd ~
git clone <your-repo-url> openclaw-workspace
ln -s openclaw-workspace ~/.openclaw/workspace
For multiple machines, use this branch strategy:
local (Mac) ──┐
├──► main (shared) ◄── merge & push
remote (VPS) ─┘
Local Mac:
cd ~/.openclaw/workspace
git checkout -b local
git push -u origin local
Remote VPS:
cd ~/.openclaw/workspace
git checkout -b remote
git push -u origin remote
On each machine:
claw-roam merge-from main
claw-roam push "update memory"
git checkout main
git merge local -m "merge: local -> main"
git push origin main
git checkout local
# Pull from main, then push to main
claw-roam merge-from main && git checkout main && git merge local && git push && git checkout local
If merge-from main has conflicts:
# Keep your version
git checkout --ours <conflicted-file>
git add -A && git commit -m "merge: resolved conflicts"
# Or keep main's version
git checkout --theirs <conflicted-file>
git add -A && git commit -m "merge: resolved conflicts"
For simpler setups without branches:
Just use OpenClaw normally. Before shutdown:
claw-roam push "end of day sync"
Or let it auto-push via cron:
# Add to crontab
*/10 * * * * cd ~/.openclaw/workspace && git add -A && git commit -m "auto: $(date)" && git push
claw-roam pushclaw-roam pullclaw-roam pushclaw-roam pullSynced (preserved across machines):
SOUL.md - Your agent's personalityMEMORY.md - Long-term memorymemory/*.md - Daily conversation logsskills/ - All installed skillsAGENTS.md, USER.md - Context filesTOOLS.md - Device configurationsHEARTBEAT.md - Periodic tasksNot Synced (machine-specific):
Run setup steps above to initialize Git repository.
If you edited on both machines without syncing:
# On the machine with changes you want to keep
git pull --strategy=ours
git push
Ensure your Git remote is configured with proper authentication (SSH key or token).
Use bundled scripts directly:
~/.openclaw/workspace/skills/claw-roam/scripts/claw-roam.sh push
~/.openclaw/workspace/skills/claw-roam/scripts/claw-roam.sh pull
~/.openclaw/workspace/skills/claw-roam/scripts/claw-roam.sh status
共 1 个版本