{"id":"8be00b2c-a04e-432f-958a-83d8a3b11ddf","entityType":"agent","slug":"clawhub-lyy4916-workbuddy-multi-device-sync","name":"workbuddy-multi-device-sync","canonicalUrl":"https://www.xpersona.co/agent/clawhub-lyy4916-workbuddy-multi-device-sync","canonicalPath":"/agent/clawhub-lyy4916-workbuddy-multi-device-sync","generatedAt":"2026-10-09T18:08:16.680Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T12:48:26.468Z","emptyReason":null},"description":"Set up automatic configuration sync across multiple Macs using WorkBuddy. Use when the user wants to use WorkBuddy on two or more computers and keep identity, memory, skills, and settings synchronized. Triggers: 多台电脑同步, 双机同步, 两台 Mac 同步 WorkBuddy, sync WorkBuddy across devices, multi-device sync, 换电脑配置同步. Covers Git-based sync via GitHub, auto-sync daemon, and one-click setup for additional machines.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s177t5gz1g9bqr9wzdn3k301nh8bn7wz:workbuddy-multi-device-sync","sourceUrl":"https://clawhub.ai/lyy4916/workbuddy-multi-device-sync","homepage":"https://clawhub.ai/lyy4916/skills/workbuddy-multi-device-sync","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/lyy4916/workbuddy-multi-device-sync","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/lyy4916/skills/workbuddy-multi-device-sync","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":68,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"workbuddy-multi-device-sync technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T12:48:26.468Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T12:48:26.468Z","emptyReason":null},"stars":null,"forks":null,"downloads":2620,"packageName":null,"latestVersion":"0.1.0","tractionLabel":"2.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T12:48:26.468Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T12:48:26.468Z","lastCrawledAt":"2026-10-09T12:48:26.468Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T12:48:26.468Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.0","createdAt":"2026-08-01T06:38:43.024Z","changelog":"workbuddy-multi-device-sync v0.1.0 – Initial Release - Introduces automatic configuration sync for WorkBuddy across multiple Macs using a private GitHub repository. - Syncs core data: identity, memory (MEMORY.md), skills, scripts, and settings; excludes machine-specific files like binaries, logs, credentials, and local databases. - Provides two setup flows for Mac A: GitHub Device Flow (no SSH) and manual, with secure token storage. - Includes background daemon for 5-minute interval auto-sync, plus step-by-step setup for additional Macs with a one-click install script. - Adds terminal hooks for manual or on-login sync and health check commands. - Comprehensive documentation on setup, exclusions, security considerations, and troubleshooting is provided in SKILL.md.","fileCount":10,"zipByteSize":11830}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s177t5gz1g9bqr9wzdn3k301nh8bn7wz:workbuddy-multi-device-sync","setupComplexity":"medium","setupSteps":["Install using `clawhub skill install s177t5gz1g9bqr9wzdn3k301nh8bn7wz:workbuddy-multi-device-sync` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/lyy4916/workbuddy-multi-device-sync before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T18:08:16.679Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-lyy4916-workbuddy-multi-device-sync/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T12:48:26.468Z","emptyReason":null},"readme":"Skill: workbuddy-multi-device-sync\n\nOwner: lyy4916\n\nSummary: Set up automatic configuration sync across multiple Macs using WorkBuddy. Use when the user wants to use WorkBuddy on two or more computers and keep identity, memory, skills, and settings synchronized. Triggers: 多台电脑同步, 双机同步, 两台 Mac 同步 WorkBuddy, sync WorkBuddy across devices, multi-device sync, 换电脑配置同步. Covers Git-based sync via GitHub, auto-sync daemon, and one-click setup for additional machines.\n\nTags: latest:0.1.0\n\nVersion history:\n\nv0.1.0 | 2026-08-01T06:38:43.024Z | auto\n\nworkbuddy-multi-device-sync v0.1.0 – Initial Release\n\n- Introduces automatic configuration sync for WorkBuddy across multiple Macs using a private GitHub repository.\n- Syncs core data: identity, memory (MEMORY.md), skills, scripts, and settings; excludes machine-specific files like binaries, logs, credentials, and local databases.\n- Provides two setup flows for Mac A: GitHub Device Flow (no SSH) and manual, with secure token storage.\n- Includes background daemon for 5-minute interval auto-sync, plus step-by-step setup for additional Macs with a one-click install script.\n- Adds terminal hooks for manual or on-login sync and health check commands.\n- Comprehensive documentation on setup, exclusions, security considerations, and troubleshooting is provided in SKILL.md.\n\nArchive index:\n\nArchive v0.1.0: 10 files, 11830 bytes\n\nFiles: references (0b), references/gitignore-template (922b), references/sync-architecture.md (4046b), scripts (0b), scripts/auto-sync.sh (1101b), scripts/setup-mac-b.sh.template (4348b), scripts/start-sync-daemon.sh (1544b), skill-card.md (2455b), SKILL.md (8576b), _meta.json (146b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: workbuddy-multi-device-sync\ndescription: \"Set up automatic configuration sync across multiple Macs using WorkBuddy. Use when the user wants to use WorkBuddy on two or more computers and keep identity, memory, skills, and settings synchronized. Triggers: 多台电脑同步, 双机同步, 两台 Mac 同步 WorkBuddy, sync WorkBuddy across devices, multi-device sync, 换电脑配置同步. Covers Git-based sync via GitHub, auto-sync daemon, and one-click setup for additional machines.\"\nagent_created: true\n---\n\n# WorkBuddy Multi-Device Sync\n\n## Overview\n\nEnable automatic synchronization of WorkBuddy configuration across multiple Macs\nusing a private GitHub repository. After setup, all machines share the same\nidentity (SOUL.md, IDENTITY.md, USER.md), memory (MEMORY.md), skills, and\nsettings — with zero manual commands. A background daemon syncs every 5 minutes.\n\n## What Syncs vs What Doesn't\n\n### Syncs (via Git)\n- Identity files: `SOUL.md`, `IDENTITY.md`, `USER.md`\n- Memory: `MEMORY.md` (user-level, NOT `memory/` daily logs)\n- Skills: `skills/` directory\n- Config: `mcp.json`, `settings.json`\n- Setup scripts: `auto-sync.sh`, `start-sync-daemon.sh`, `wb-setup-mac-b.sh`\n\n### Does NOT Sync (machine-specific)\n- `binaries/` — 300MB+ platform-specific runtimes, each machine installs its own\n- `workbuddy.db` — SQLite database (automations, runtime state), concurrent sync corrupts it\n- `.mcp.json` — localhost port numbers differ per machine\n- `sessions/`, `logs/`, `traces/` — runtime data, machine-specific\n- `credentials/` — each machine logs in independently\n- `memory/` — daily work logs, project-specific\n- `connectors/`, `plugins/` — marketplace state, machine-specific\n\n### Already Synced (server-side, no action needed)\n- Conversation history\n- Cloud user profile (auto-injected at session start)\n\n## Workflow\n\n### Phase 1: Set Up Mac A (Primary Machine)\n\n#### Step 1: Initialize Git in `~/.workbuddy/`\n\n```bash\n# Set git config if not already set\ngit config --global user.name \"$(whoami)\"\ngit config --global user.email \"$(whoami)@workbuddy.local\"\ngit config --global init.defaultBranch main\n\n# Initialize repo\ncd ~/.workbuddy\ngit init\n```\n\n#### Step 2: Create `.gitignore`\n\nCopy the template from `references/gitignore-template` to `~/.workbuddy/.gitignore`.\nThis excludes all machine-specific files. Review and adjust as needed.\n\nKey exclusions:\n- `binaries/` — runtimes\n- `workbuddy.db` / `workbuddy.db-*` — SQLite\n- `.mcp.json` — localhost ports\n- `sessions/`, `logs/`, `traces/` — runtime data\n- `credentials/` — auth tokens\n- `memory/` — daily logs\n- `.auto-sync.log`, `.sync-daemon.pid` — daemon state\n\n#### Step 3: Create GitHub Private Repo\n\nTwo approaches:\n\n**Approach A: GitHub Device Flow (recommended, no SSH needed)**\n\n1. Initiate device flow to get a verification code:\n```bash\ncurl -s -X POST \"https://github.com/login/device/code\" \\\n  -H \"Accept: application/json\" \\\n  -d \"client_id=178c6fc778ccc68e1d6a&scope=repo,admin:public_key\"\n```\nResponse contains `device_code`, `user_code`, and `verification_uri`.\n\n2. Tell the user to open `verification_uri` and enter `user_code`.\n\n3. Poll for authorization:\n```bash\ncurl -s -X POST \"https://github.com/login/oauth/access_token\" \\\n  -H \"Accept: application/json\" \\\n  -d \"client_id=178c6fc778ccc68e1d6a&device_code=<DEVICE_CODE>&grant_type=urn:ietf:params:oauth:grant-type:device_code\"\n```\nRepeat every 5 seconds until `access_token` appears in response.\n\n4. Store credentials:\n```bash\necho \"https://<USERNAME>:<TOKEN>@github.com\" > ~/.git-credentials\nchmod 600 ~/.git-credentials\ngit config --global credential.helper store\n```\n\n5. Create private repo via API:\n```bash\ncurl -s -X POST -H \"Authorization: token <TOKEN>\" \\\n  -H \"Accept: application/vnd.github+json\" \\\n  \"https://api.github.com/user/repos\" \\\n  -d '{\"name\":\"wb-sync\",\"private\":true,\"description\":\"WorkBuddy config sync\"}'\n```\n\n**Approach B: Manual setup**\n\n1. User creates a private repo at https://github.com/new (name: `wb-sync`, private, no README)\n2. User creates a Personal Access Token at https://github.com/settings/tokens/new (scope: `repo`)\n3. Store credentials as shown above\n\n#### Step 4: Push to GitHub\n\n```bash\ncd ~/.workbuddy\ngit remote add origin https://github.com/<USERNAME>/wb-sync.git\ngit add -A\ngit commit -m \"init: WorkBuddy config from $(hostname)\"\ngit push -u origin main\n```\n\n#### Step 5: Install Auto-Sync\n\n1. Copy `scripts/auto-sync.sh` to `~/.workbuddy/auto-sync.sh`\n2. Copy `scripts/start-sync-daemon.sh` to `~/.workbuddy/start-sync-daemon.sh`\n3. Make both executable: `chmod +x ~/.workbuddy/auto-sync.sh ~/.workbuddy/start-sync-daemon.sh`\n4. Start the daemon:\n```bash\n# Must use dangerouslyDisableSandbox or osascript to escape sandbox\nosascript -e 'do shell script \"/bin/bash ~/.workbuddy/start-sync-daemon.sh\"'\n```\n\n#### Step 6: Add Terminal Hook\n\nAppend to `~/.bash_profile` (or `~/.zshrc`):\n\n```bash\n# WorkBuddy 双机同步快捷命令\nalias wbsync='cd ~/.workbuddy && git add -A && git commit -m \"sync $(date +%m%d-%H%M)\" && git push origin main'\nalias wbpull='cd ~/.workbuddy && git pull origin main'\n\n# WorkBuddy 自动同步 — 守护进程保活 + 终端打开时即时同步\nif [ -f ~/.workbuddy/start-sync-daemon.sh ]; then\n  bash ~/.workbuddy/start-sync-daemon.sh 2>/dev/null\nfi\nif [ -t 1 ] && [ -f ~/.workbuddy/auto-sync.sh ]; then\n  _wb_now=$(date +%s)\n  _wb_last=$(cat ~/.workbuddy/.last-auto-sync 2>/dev/null || echo 0)\n  if [ $((_wb_now - _wb_last)) -gt 300 ]; then\n    bash ~/.workbuddy/auto-sync.sh >/dev/null 2>&1 &\n    echo $_wb_now > ~/.workbuddy/.last-auto-sync\n  fi\n  unset _wb_now _wb_last\nfi\n```\n\n#### Step 7: Commit and Push Everything\n\n```bash\ncd ~/.workbuddy\ngit add -A\ngit commit -m \"add: auto-sync scripts + terminal hook\"\ngit push origin main\n```\n\n### Phase 2: Set Up Mac B (Additional Machines)\n\n#### Prerequisites\n- WorkBuddy installed and launched once (to create `~/.workbuddy/` directory), then quit\n- Terminal access\n- GitHub reachable (directly or via proxy)\n\n#### One-Liner Setup\n\nGenerate a Mac B setup script using `scripts/setup-mac-b.sh.template`:\n1. Replace `<GITHUB_USERNAME>`, `<GITHUB_TOKEN>`, `<GITHUB_REPO>` with actual values\n2. Upload the script to the GitHub repo (commit + push from Mac A)\n3. On Mac B, run one command:\n\n```bash\ncurl -sSL -H \"Authorization: token <TOKEN>\" \\\n  \"https://raw.githubusercontent.com/<USERNAME>/wb-sync/main/wb-setup-mac-b.sh\" | bash\n```\n\nThe script automatically:\n- Backs up existing Mac B config (if any)\n- Stores GitHub credentials\n- Clones the repo into `~/.workbuddy/`\n- Sets up aliases and terminal hook\n- Starts the sync daemon\n\n#### Alternative: AirDrop\n\nIf both Macs are nearby:\n1. AirDrop `wb-setup-mac-b.sh` from Mac A to Mac B\n2. On Mac B: `bash ~/Downloads/wb-setup-mac-b.sh`\n\n### Phase 3: Verification\n\n```bash\n# Check daemon is running\ncat ~/.workbuddy/.sync-daemon.pid  # should show a PID\nkill -0 $(cat ~/.workbuddy/.sync-daemon.pid) && echo \"ALIVE\" || echo \"DEAD\"\n\n# Check sync log\ntail -5 ~/.workbuddy/.auto-sync.log\n\n# Check git status\ncd ~/.workbuddy && git log --oneline -3 && git remote -v\n```\n\n## Important Notes\n\n- **GitHub SSH port 22 may be blocked** in China. Use HTTPS + token instead.\n- **LaunchAgent** (`launchctl load`) often fails with \"Input/output error\" on macOS 12+\n  under sandbox. The Python subprocess daemon approach in `start-sync-daemon.sh`\n  is more reliable.\n- **Automations** (scheduled tasks) are stored in `workbuddy.db` and do NOT sync.\n  Recreate them on each machine using the `automation_update` tool.\n- **Project workspace memory** (`<project>/.workbuddy/memory/`) is NOT inside\n  `~/.workbuddy/` and must be synced separately (via the project's own Git repo\n  or cloud storage).\n- **Token security**: The GitHub token is stored in `~/.git-credentials` (chmod 600).\n  For shared machines, consider using a token with limited scope and expiration.\n- **Daemon recovery**: After a machine reboot, the daemon restarts automatically\n  when the user opens a terminal (via the `.bash_profile` hook) or when WorkBuddy\n  runs any bash command.\n\n## Resources\n\n### scripts/\n- `auto-sync.sh` — Sync script called by the daemon every 5 minutes (pull → commit → push)\n- `start-sync-daemon.sh` — Daemon launcher with PID dedup and Python auto-detection\n- `setup-mac-b.sh.template` — Mac B one-click setup script template (replace placeholders before use)\n\n### references/\n- `gitignore-template` — The `.gitignore` file to place in `~/.workbuddy/`\n- `sync-architecture.md` — Detailed architecture explanation and troubleshooting\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn751pzj8jbknm4tygdecnwjzn8bmtyz\",\n  \"slug\": \"workbuddy-multi-device-sync\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1785566323024\n}\n\nFile v0.1.0:references/sync-architecture.md\n\n# Sync Architecture & Troubleshooting\n\n## Three-Layer Data Model\n\nWorkBuddy data in `~/.workbuddy/` falls into three categories:\n\n### Layer 1: Server-Side Synced (automatic, no action needed)\n- Conversation history — searchable across devices\n- Cloud user profile — auto-injected at session start\n\n### Layer 2: Git-Synced (this skill handles)\n- `SOUL.md`, `IDENTITY.md`, `USER.md` — agent identity\n- `MEMORY.md` — cross-project user memory\n- `mcp.json` — MCP server config (NOT `.mcp.json`)\n- `settings.json` — WorkBuddy settings\n- `skills/` — installed skills\n- `wb-setup-mac-b.sh` — Mac B setup script (stored in repo for easy download)\n\n### Layer 3: Machine-Local (never synced)\n- `binaries/` — 300MB+ runtimes, platform-specific\n- `workbuddy.db` — SQLite, automations + runtime state (concurrent access corrupts)\n- `.mcp.json` — localhost port mappings, differ per machine\n- `sessions/`, `logs/`, `traces/` — ephemeral runtime data\n- `credentials/` — auth tokens, each machine independent\n- `memory/` — daily work logs, project-specific\n\n## Sync Flow\n\n```\nMac A changes → git commit → git push → GitHub repo\n                                          ↓\nMac B ← git pull ← git rebase ← auto-sync daemon (every 5 min)\n```\n\n## Daemon Architecture\n\nThe sync daemon uses Python's `subprocess.Popen` with `start_new_session=True`\nto create a truly detached process that survives terminal close.\n\n```\n.bash_profile → start-sync-daemon.sh → Python subprocess → bash loop\n                                                      ↓\n                                              auto-sync.sh (every 300s)\n                                                      ↓\n                                              git pull → commit → push\n```\n\n### Why not LaunchAgent?\nOn macOS 12+, `launchctl load` frequently fails with \"Input/output error\" under\nsandbox restrictions. The Python daemon approach is more reliable and doesn't\nrequire elevated permissions.\n\n### Recovery After Reboot\nThe daemon dies on reboot but auto-restarts when:\n1. User opens Terminal (`.bash_profile` calls `start-sync-daemon.sh`)\n2. WorkBuddy executes any bash command (triggers `.bash_profile`)\n\n## Common Issues\n\n### GitHub SSH port 22 blocked\n**Symptom**: `ssh -T git@github.com` hangs or times out\n**Fix**: Use HTTPS + token instead of SSH\n```bash\ngit remote set-url origin https://github.com/<user>/wb-sync.git\n```\n\n### Token expired or revoked\n**Symptom**: `git push` returns 403 Forbidden\n**Fix**: Generate new token at https://github.com/settings/tokens/new\n```bash\necho \"https://<user>:<new_token>@github.com\" > ~/.git-credentials\n```\n\n### Merge conflicts during auto-sync\n**Symptom**: `git pull --rebase` fails, daemon stops syncing\n**Fix**: Manually resolve and push\n```bash\ncd ~/.workbuddy\ngit status              # see conflicted files\n# resolve conflicts...\ngit add -A\ngit rebase --continue\ngit push origin main\n```\n\n### Daemon not running\n**Check**:\n```bash\ncat ~/.workbuddy/.sync-daemon.pid\nkill -0 $(cat ~/.workbuddy/.sync-daemon.pid) && echo \"ALIVE\" || echo \"DEAD\"\n```\n**Restart**:\n```bash\nbash ~/.workbuddy/start-sync-daemon.sh\n```\n\n### Automations not syncing\nAutomations live in `workbuddy.db` (excluded from sync). To replicate on Mac B:\nuse the `automation_update` tool with `mode=\"list\"` on Mac A to see all\nautomations, then `mode=\"create\"` on Mac B to recreate each one.\n\n## Alternative Sync Backends\n\n### iCloud Drive (bare repo)\nInstead of GitHub, create a bare repo in iCloud:\n```bash\ngit clone --bare ~/.workbuddy ~/Library/Mobile\\ Documents/com~apple~CloudDocs/WorkBuddy-sync.git\ncd ~/.workbuddy\ngit remote add icloud ~/Library/Mobile\\ Documents/com~apple~CloudDocs/WorkBuddy-sync.git\ngit push -u icloud main\n```\nPros: No external service needed. Cons: Requires same iCloud account on all machines.\n\n### Gitee (China-friendly)\nSame as GitHub but use `gitee.com` instead. Faster access in China.\n\n### Syncthing (P2P)\nDirect machine-to-machine sync, no cloud. Both machines must be online simultaneously.\n\nFile v0.1.0:skill-card.md\n\n## Description:\n\nSets up Git-based synchronization of WorkBuddy identity, memory, skills, scripts, and settings across multiple Macs.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[lyy4916](https://clawhub.ai/user/lyy4916)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and WorkBuddy users use this skill to keep WorkBuddy configuration consistent across two or more Macs. It provides setup guidance, sync scripts, a Git ignore template, and troubleshooting material for private-repository synchronization.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: A private GitHub repository becomes the control point for WorkBuddy identity, memory, skills, and settings.\n\nMitigation: Use a private repository, review exactly which files are synced, keep machine-specific and credential files excluded, and restrict repository access.\n\nRisk: The skill uses persistent automatic syncing and shell scripts that can repeatedly pull, commit, and push local agent state.\n\nMitigation: Inspect the scripts before enabling the daemon, review sync logs and repository history, and confirm how to stop or disable the daemon.\n\nRisk: Setup flows can involve plaintext GitHub credential storage and remote shell execution patterns.\n\nMitigation: Use a fine-grained short-lived token, avoid piping remote scripts directly to bash, and prefer running an inspected local copy of setup scripts.\n\n## Reference(s):\n\n- [Server-resolved GitHub provenance](https://github.com/lyy4916/workbuddy-multi-device-sync)\n- [ClawHub skill page](https://clawhub.ai/lyy4916/skills/workbuddy-multi-device-sync)\n- [Sync Architecture & Troubleshooting](references/sync-architecture.md)\n- [Gitignore Template](references/gitignore-template)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with bash command blocks and script/configuration file content]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires user-supplied GitHub account, repository, and token values for setup.]\n\n## Skill Version(s):\n\n0.1.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.","readmeExcerpt":"Skill: workbuddy-multi-device-sync Owner: lyy4916 Summary: Set up automatic configuration sync across multiple Macs using WorkBuddy. Use when the user wants to use WorkBuddy on two or more computers and keep identity, memory, skills, and settings synchronized. Triggers: 多台电脑同步, 双机同步, 两台 Mac 同步 WorkBuddy, sync WorkBuddy across devices, multi-device sync, 换电脑配置同步. Covers Git-based sync via GitHub, auto-sync daemon, and","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# Set git config if not already set\ngit config --global user.name \"$(whoami)\"\ngit config --global user.email \"$(whoami)@workbuddy.local\"\ngit config --global init.defaultBranch main\n\n# Initialize repo\ncd ~/.workbuddy\ngit init"},{"language":"bash","snippet":"curl -s -X POST \"https://github.com/login/device/code\" \\\n  -H \"Accept: application/json\" \\\n  -d \"client_id=178c6fc778ccc68e1d6a&scope=repo,admin:public_key\""},{"language":"bash","snippet":"curl -s -X POST \"https://github.com/login/device/code\" \\\n  -H \"Accept: application/json\" \\\n  -d \"client_id=178c6fc778ccc68e1d6a&scope=repo,admin:public_key\""},{"language":"bash","snippet":"curl -s -X POST \"https://github.com/login/oauth/access_token\" \\\n  -H \"Accept: application/json\" \\\n  -d \"client_id=178c6fc778ccc68e1d6a&device_code=<DEVICE_CODE>&grant_type=urn:ietf:params:oauth:grant-type:device_code\""},{"language":"bash","snippet":"curl -s -X POST \"https://github.com/login/oauth/access_token\" \\\n  -H \"Accept: application/json\" \\\n  -d \"client_id=178c6fc778ccc68e1d6a&device_code=<DEVICE_CODE>&grant_type=urn:ietf:params:oauth:grant-type:device_code\""},{"language":"bash","snippet":"echo \"https://<USERNAME>:<TOKEN>@github.com\" > ~/.git-credentials\nchmod 600 ~/.git-credentials\ngit config --global credential.helper store"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: workbuddy-multi-device-sync\ndescription: \"Set up automatic configuration sync across multiple Macs using WorkBuddy. Use when the user wants to use WorkBuddy on two or more computers and keep identity, memory, skills, and settings synchronized. Triggers: 多台电脑同步, 双机同步, 两台 Mac 同步 WorkBuddy, sync WorkBuddy across devices, multi-device sync, 换电脑配置同步. Covers Git-based sync via GitHub, auto-sync daemon, and one-click setup for additional machines.\"\nagent_created: true\n---\n\n# WorkBuddy Multi-Device Sync\n\n## Overview\n\nEnable automatic synchronization of WorkBuddy configuration across multiple Macs\nusing a private GitHub repository. After setup, all machines share the same\nidentity (SOUL.md, IDENTITY.md, USER.md), memory (MEMORY.md), skills, and\nsettings — with zero manual commands. A background daemon syncs every 5 minutes.\n\n## What Syncs vs What Doesn't\n\n### Syncs (via Git)\n- Identity files: `SOUL.md`, `IDENTITY.md`, `USER.md`\n- Memory: `MEMORY.md` (user-level, NOT `memory/` daily logs)\n- Skills: `skills/` directory\n- Config: `mcp.json`, `settings.json`\n- Setup scripts: `auto-sync.sh`, `start-sync-daemon.sh`, `wb-setup-mac-b.sh`\n\n### Does NOT Sync (machine-specific)\n- `binaries/` — 300MB+ platform-specific runtimes, each machine installs its own\n- `workbuddy.db` — SQLite database (automations, runtime state), concurrent sync corrupts it\n- `.mcp.json` — localhost port numbers differ per machine\n- `sessions/`, `logs/`, `traces/` — runtime data, machine-specific\n- `credentials/` — each machine logs in independently\n- `memory/` — daily work logs, project-specific\n- `connectors/`, `plugins/` — marketplace state, machine-specific\n\n### Already Synced (server-side, no action needed)\n- Conversation history\n- Cloud user profile (auto-injected at session start)\n\n## Workflow\n\n### Phase 1: Set Up Mac A (Primary Machine)\n\n#### Step 1: Initialize Git in `~/.workbuddy/`\n\n```bash\n# Set git config if not already set\ngit config --global user.name \"$(whoami)\"\ngit config --global user.email \"$(whoami)@workbuddy.local\"\ngit config --global init.defaultBranch main\n\n# Initialize repo\ncd ~/.workbuddy\ngit init\n```\n\n#### Step 2: Create `.gitignore`\n\nCopy the template from `references/gitignore-template` to `~/.workbuddy/.gitignore`.\nThis excludes all machine-specific files. Review and adjust as needed.\n\nKey exclusions:\n- `binaries/` — runtimes\n- `workbuddy.db` / `workbuddy.db-*` — SQLite\n- `.mcp.json` — localhost ports\n- `sessions/`, `logs/`, `traces/` — runtime data\n- `credentials/` — auth tokens\n- `memory/` — daily logs\n- `.auto-sync.log`, `.sync-daemon.pid` — daemon state\n\n#### Step 3: Create GitHub Private Repo\n\nTwo approaches:\n\n**Approach A: GitHub Device Flow (recommended, no SSH needed)**\n\n1. Initiate device flow to get a verification code:\n```bash\ncurl -s -X POST \"https://github.com/login/device/code\" \\\n  -H \"Accept: application/json\" \\\n  -d \"client_id=178c6fc778ccc68e1d6a&scope=repo,admin:public_key\"\n```\nResponse contains `device_code`, `user_code`, and `verifica"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn751pzj8jbknm4tygdecnwjzn8bmtyz\",\n  \"slug\": \"workbuddy-multi-device-sync\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1785566323024\n}"},{"path":"references/sync-architecture.md","content":"# Sync Architecture & Troubleshooting\n\n## Three-Layer Data Model\n\nWorkBuddy data in `~/.workbuddy/` falls into three categories:\n\n### Layer 1: Server-Side Synced (automatic, no action needed)\n- Conversation history — searchable across devices\n- Cloud user profile — auto-injected at session start\n\n### Layer 2: Git-Synced (this skill handles)\n- `SOUL.md`, `IDENTITY.md`, `USER.md` — agent identity\n- `MEMORY.md` — cross-project user memory\n- `mcp.json` — MCP server config (NOT `.mcp.json`)\n- `settings.json` — WorkBuddy settings\n- `skills/` — installed skills\n- `wb-setup-mac-b.sh` — Mac B setup script (stored in repo for easy download)\n\n### Layer 3: Machine-Local (never synced)\n- `binaries/` — 300MB+ runtimes, platform-specific\n- `workbuddy.db` — SQLite, automations + runtime state (concurrent access corrupts)\n- `.mcp.json` — localhost port mappings, differ per machine\n- `sessions/`, `logs/`, `traces/` — ephemeral runtime data\n- `credentials/` — auth tokens, each machine independent\n- `memory/` — daily work logs, project-specific\n\n## Sync Flow\n\n```\nMac A changes → git commit → git push → GitHub repo\n                                          ↓\nMac B ← git pull ← git rebase ← auto-sync daemon (every 5 min)\n```\n\n## Daemon Architecture\n\nThe sync daemon uses Python's `subprocess.Popen` with `start_new_session=True`\nto create a truly detached process that survives terminal close.\n\n```\n.bash_profile → start-sync-daemon.sh → Python subprocess → bash loop\n                                                      ↓\n                                              auto-sync.sh (every 300s)\n                                                      ↓\n                                              git pull → commit → push\n```\n\n### Why not LaunchAgent?\nOn macOS 12+, `launchctl load` frequently fails with \"Input/output error\" under\nsandbox restrictions. The Python daemon approach is more reliable and doesn't\nrequire elevated permissions.\n\n### Recovery After Reboot\nThe daemon dies on reboot but auto-restarts when:\n1. User opens Terminal (`.bash_profile` calls `start-sync-daemon.sh`)\n2. WorkBuddy executes any bash command (triggers `.bash_profile`)\n\n## Common Issues\n\n### GitHub SSH port 22 blocked\n**Symptom**: `ssh -T git@github.com` hangs or times out\n**Fix**: Use HTTPS + token instead of SSH\n```bash\ngit remote set-url origin https://github.com/<user>/wb-sync.git\n```\n\n### Token expired or revoked\n**Symptom**: `git push` returns 403 Forbidden\n**Fix**: Generate new token at https://github.com/settings/tokens/new\n```bash\necho \"https://<user>:<new_token>@github.com\" > ~/.git-credentials\n```\n\n### Merge conflicts during auto-sync\n**Symptom**: `git pull --rebase` fails, daemon stops syncing\n**Fix**: Manually resolve and push\n```bash\ncd ~/.workbuddy\ngit status              # see conflicted files\n# resolve conflicts...\ngit add -A\ngit rebase --continue\ngit push origin main\n```\n\n### Daemon not running\n**Check**:\n```bash\ncat ~/.workbuddy/.sync-daemon.pid\nkill -0 $(cat ~/.workbuddy/.sync-daem"},{"path":"skill-card.md","content":"## Description:\n\nSets up Git-based synchronization of WorkBuddy identity, memory, skills, scripts, and settings across multiple Macs.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[lyy4916](https://clawhub.ai/user/lyy4916)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and WorkBuddy users use this skill to keep WorkBuddy configuration consistent across two or more Macs. It provides setup guidance, sync scripts, a Git ignore template, and troubleshooting material for private-repository synchronization.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: A private GitHub repository becomes the control point for WorkBuddy identity, memory, skills, and settings.\n\nMitigation: Use a private repository, review exactly which files are synced, keep machine-specific and credential files excluded, and restrict repository access.\n\nRisk: The skill uses persistent automatic syncing and shell scripts that can repeatedly pull, commit, and push local agent state.\n\nMitigation: Inspect the scripts before enabling the daemon, review sync logs and repository history, and confirm how to stop or disable the daemon.\n\nRisk: Setup flows can involve plaintext GitHub credential storage and remote shell execution patterns.\n\nMitigation: Use a fine-grained short-lived token, avoid piping remote scripts directly to bash, and prefer running an inspected local copy of setup scripts.\n\n## Reference(s):\n\n- [Server-resolved GitHub provenance](https://github.com/lyy4916/workbuddy-multi-device-sync)\n- [ClawHub skill page](https://clawhub.ai/lyy4916/skills/workbuddy-multi-device-sync)\n- [Sync Architecture & Troubleshooting](references/sync-architecture.md)\n- [Gitignore Template](references/gitignore-template)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with bash command blocks and script/configuration file content]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires user-supplied GitHub account, repository, and token values for setup.]\n\n## Skill Version(s):\n\n0.1.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1474,"uniquenessScore":43,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T12:48:26.468Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T12:48:26.468Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T18:08:16.680Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}