WorkBuddy Cross-Device Sync
Overview
WorkBuddy stores conversation history and identity files locally by default — they do not automatically sync across devices. This skill implements a two-layer sync architecture using a cloud drive's local sync folder combined with Windows symbolic links (for identity files) and NTFS junctions (for session directories), enabling cross-device continuity of WorkBuddy's memory and identity.
Problem Background
WorkBuddy's local storage architecture means that switching computers results in:
- Loss of AI identity (SOUL.md, IDENTITY.md, USER.md, MEMORY.md) — the AI does not "recognize" the user
- Loss of project workspace memory (
.workbuddy/memory/daily logs and project notes) - Inability to continue previous work context
Conversation history (stored in workbuddy.db) cannot be synced safely due to database file-lock risks. This skill syncs everything except the raw conversation database — identity, memory, and workspace files are all covered.
Solution Architecture
Cloud Drive Sync Folder (e.g., D:\BaiduSyncdisk\)
|
+-- WorkBuddy-Config\ <- Layer 1: Identity files
| |-- SOUL.md -> symlink -> ~\.workbuddy\SOUL.md
| |-- IDENTITY.md -> symlink -> ~\.workbuddy\IDENTITY.md
| |-- USER.md -> symlink -> ~\.workbuddy\USER.md
| |-- MEMORY.md -> symlink -> ~\.workbuddy\MEMORY.md
| +-- models.json -> symlink -> ~\.workbuddy\models.json (optional, if custom models configured)
|
+-- WorkBuddy-Projects\ <- Layer 2: Session workspace
+-- Sessions\ -> junction -> C:\Users\<username>\WorkBuddy
|-- 2026-07-13-17-16-19\
| +-- .workbuddy\memory\
| |-- 2026-07-13.md (daily work log)
| +-- MEMORY.md (project long-term memory)
|-- 2026-07-19-15-13-10\
+-- ...
What Gets Synced
| Content | Synced? | Mechanism |
|---|---|---|
| Identity files (SOUL/IDENTITY/USER/MEMORY) | Yes | Symbolic link -> cloud sync folder |
| Custom model config (models.json) | Yes (if exists) | Symbolic link -> cloud sync folder |
Session workspace (.workbuddy/memory/) |
Yes | NTFS junction -> cloud sync folder |
| Daily work logs and project notes | Yes | Via session junction |
| Output files stored in workspace | Yes | Via session junction |
| Conversation history (workbuddy.db) | No | Local database, file-lock risk, do not sync |
Prerequisites
Cloud Drive Requirements
The cloud drive must provide a local real-time sync folder — a folder on the local disk that the cloud client automatically synchronizes bidirectionally.
| Cloud Drive | Local Sync Folder | Suitable? |
|---|---|---|
| Baidu Netdisk (sync space, SVIP) | Yes | Recommended for China users |
| OneDrive | Yes | Works but may be slow in China |
| Nutstore (坚果云) | Yes | Stable, recommended |
| WPS Cloud Drive | Yes | Works |
| Tencent Weiyun (微云) | No (manual upload/download only) | Not suitable |
| Baidu Netdisk (regular, no sync space) | No | Not suitable |
System Requirements
- Windows 10/11
- PowerShell 5.1+ (built-in)
- For symbolic links: either Developer Mode enabled or Administrator PowerShell
- For NTFS junctions: regular PowerShell (no admin needed)
Finding the Cloud Sync Folder Path
Before starting, identify the cloud drive's local sync folder path. Common locations:
# Baidu Netdisk sync space
D:\BaiduSyncdisk\
# OneDrive
C:\Users\<username>\OneDrive\
# Nutstore
C:\Users\<username>\坚果云\ or D:\Nutstore Files\
# WPS Cloud Drive
C:\Users\<username>\Documents\WPS Cloud Files\<account_id>\
To verify the sync folder exists and is working, create a test file inside it and check whether it appears on the other computer.
Setup Process
Phase 1: Prepare Cloud Drive (Both Computers)
- Install the cloud drive client on both computers and log in with the same account.
- Enable the local sync folder feature on both computers.
- Verify the sync folder path on each computer (paths can differ between computers).
Phase 2: Set Up Layer 1 — Identity Files (Computer A First)
Perform this on Computer A first (the computer where WorkBuddy identity files already exist).
Step 1: Create Cloud Folder
New-Item -ItemType Directory -Path "<sync_folder>\WorkBuddy-Config" -Force
Step 2: Move Identity Files to Cloud
$workbuddy = "$env:USERPROFILE\.workbuddy"
$cloud = "<sync_folder>\WorkBuddy-Config"
# Back up existing files
$files = @("SOUL.md", "IDENTITY.md", "USER.md", "MEMORY.md")
foreach ($f in $files) {
$src = Join-Path $workbuddy $f
if (Test-Path $src) {
Copy-Item $src "$src.local-backup" -Force
Move-Item $src (Join-Path $cloud $f) -Force
}
}
Step 3: Create Symbolic Links
Option A — Administrator PowerShell (recommended):
Open PowerShell as Administrator, then:
$w="$env:USERPROFILE\.workbuddy";$c="<sync_folder>\WorkBuddy-Config";@("SOUL.md","IDENTITY.md","USER.md","MEMORY.md")|%{if(Test-Path "$w\$_"){Remove-Item "$w\$_" -Force};New-Item -ItemType SymbolicLink -Path "$w\$_" -Target "$c\$_"|Out-Null}
Replace <sync_folder> with the actual sync folder path.
Option B — Developer Mode enabled (no admin needed):
Enable Developer Mode in Windows Settings -> Privacy & Security -> For developers, then run the same command in regular PowerShell.
> Note: In WorkBuddy's sandbox environment, symbolic link creation may fail even with Developer Mode enabled. If the AI agent cannot create symlinks, instruct the user to run the command manually in an external PowerShell window.
Step 4: Verify
# Check that symlinks point to the correct targets
Get-Item "$env:USERPROFILE\.workbuddy\SOUL.md" | Select-Object Name, Attributes, Target
Expected output: Attributes should include ReparsePoint, and Target should show the cloud path.
Phase 3: Set Up Layer 1 — Identity Files (Computer B)
- Install WorkBuddy and log in with the same account, then close WorkBuddy.
- Wait for the cloud drive to sync
WorkBuddy-Configfolder to this computer. - Verify the files exist:
ls "<sync_folder>\WorkBuddy-Config\" - Create symbolic links (same command as Phase 2 Step 3).
- If
.workbuddydirectory does not exist yet, create it first:
powershell New-Item -ItemType Directory -Path "$env:USERPROFILE\.workbuddy" -Force - Launch WorkBuddy and verify the AI recognizes the user's identity.
Phase 4: Set Up Layer 2 — Session Junction (Both Computers)
This step makes session workspace directories (including .workbuddy/memory/) sync across devices via an NTFS junction.
On Computer A (where existing sessions exist):
-
Close WorkBuddy completely (including system tray icon).
-
Run the setup script
scripts/setup-cross-device-sync.ps1with appropriate parameters:
powershell
powershell -ExecutionPolicy Bypass -File "<skill_path>\scripts\setup-cross-device-sync.ps1" -Mode junction -SyncFolder "<sync_folder>"
Or run the commands manually:
```powershell
$workbuddy = "$env:USERPROFILE\WorkBuddy"
$target = "<sync_folder>\WorkBuddy-Projects\Sessions"
# Create target directory
if (-not (Test-Path $target)) { New-Item -ItemType Directory -Path $target -Force | Out-Null }
# Copy existing sessions to sync folder (merge, do not overwrite)
robocopy $workbuddy $target /E /XJ /R:3 /W:2 /NP /NDL /NFL
# Remove original directory and create junction
Remove-Item $workbuddy -Recurse -Force
New-Item -ItemType Junction -Path $workbuddy -Target $target
```
- Verify the junction:
powershell
Get-Item $workbuddy | Select-Object Name, Attributes, Target
Attributes should include ReparsePoint.
- Launch WorkBuddy and verify sessions are accessible.
On Computer B:
- Close WorkBuddy completely.
- Wait for cloud sync to complete — verify
Sessionsfolder exists in the sync folder. - If
C:\Users\<username>\WorkBuddyalready exists:
- If it contains local sessions, back them up or merge them first.
- Remove the directory:Remove-Item "$env:USERPROFILE\WorkBuddy" -Recurse -Force - Create the junction:
powershell
$workbuddy = "$env:USERPROFILE\WorkBuddy"
$target = "<sync_folder>\WorkBuddy-Projects\Sessions"
if (Test-Path $workbuddy) { Remove-Item $workbuddy -Recurse -Force }
New-Item -ItemType Junction -Path $workbuddy -Target $target
- Launch WorkBuddy and verify sessions from Computer A are visible.
Phase 5: Optional — Sync Custom Model Config
If the user has configured custom models (e.g., DeepSeek API), sync models.json as well:
$w = "$env:USERPROFILE\.workbuddy"
$c = "<sync_folder>\WorkBuddy-Config"
if (Test-Path "$w\models.json") {
Move-Item "$w\models.json" "$c\models.json" -Force
New-Item -ItemType SymbolicLink -Path "$w\models.json" -Target "$c\models.json"
}
Usage Rules
After setup is complete, follow these rules to avoid data corruption:
- Never run WorkBuddy on both computers simultaneously. The session database and memory files can conflict if modified from two locations.
- Wait for sync to complete before switching. After closing WorkBuddy on Computer A, wait 1-5 minutes for the cloud drive to finish syncing before opening WorkBuddy on Computer B.
- The AI writes work logs to maintain continuity. After each substantive work session, the AI should append a note to
.workbuddy/memory/YYYY-MM-DD.md. This is the primary mechanism for cross-device context continuation. - Conversation history does not sync. The AI cannot recall the exact dialogue from a previous session on another computer. It relies on work logs and MEMORY.md files for context.
Verification Checklist
After completing setup on both computers, verify:
- [ ]
~\.workbuddy\SOUL.mdis a symbolic link pointing to the cloud folder - [ ]
~\.workbuddy\IDENTITY.mdis a symbolic link pointing to the cloud folder - [ ]
~\.workbuddy\USER.mdis a symbolic link pointing to the cloud folder - [ ]
~\.workbuddy\MEMORY.mdis a symbolic link pointing to the cloud folder - [ ]
~\WorkBuddyis a junction pointing to the cloud Sessions folder - [ ] WorkBuddy launches normally on both computers
- [ ] The AI recognizes the user's identity on both computers
- [ ] Work logs written on Computer A are readable on Computer B after sync
Troubleshooting
For common issues and solutions, see references/troubleshooting.md.
Resources
scripts/
setup-cross-device-sync.ps1— Automated setup script supporting two modes:-Mode identity— Set up Layer 1 (identity file symbolic links)-Mode junction— Set up Layer 2 (session directory NTFS junction)
references/
troubleshooting.md— Common problems, diagnostic commands, and solutions including:- Developer Mode not working in WorkBuddy sandbox
- Symbolic link permission errors
- Junction creation failures
- Cloud sync conflicts
- Missing files after sync