NAS Agent Sync
by @neal-collab
Centralizes multi-agent file storage by routing all file operations through a designated File Master agent using SSH to a Synology NAS or any SSH-accessible...
clawhub install nas-agent-syncπ About This Skill
name: nas-agent-sync version: 1.1.0 description: Synology NAS integration for OpenClaw β centralized file storage for multi-agent teams via SSH emoji: π¦ tags: - nas - synology - file-storage - ssh - multi-agent - backup
NAS Agent Sync β Synology File Storage for OpenClaw Agents
Centralize file storage across your multi-agent team using a Synology NAS (or any SSH-accessible storage). One agent acts as File Master β all others route file requests through it.
The Problem
Multi-agent setups generate files across multiple workspaces. Without centralized storage:
The Solution
Designate one agent as File Master. All file operations go through this agent via sessions_send. The File Master manages:
Architecture
ββββββββββββ sessions_send ββββββββββββββ SSH βββββββββββ
β Agent A β βββββββββββββββββββΊ β FILE MASTER β βββββββββββΊ β NAS β
β (Finance)β "store invoice.pdf" β (Tech Lead) β β β
ββββββββββββ ββββββββββββββ βββββββββββ
β
ββββββββββββ sessions_send β SSH
β Agent B β βββββββββββββββββββΊ β
β (Sales) β "get sales report" βΌ
ββββββββββββ βββββββββββββββ
β _agents/ β
β βββ agent-a/ β
β βββ agent-b/ β
β βββ agent-c/ β
β βββ _shared/ β
βββββββββββββββ
Setup
1. NAS Prerequisites
2. Create Folder Structure
SSH_HOST="user@your-nas-ip"Create agent folders (customize agent names to match your team)
ssh $SSH_HOST "mkdir -p ~/_agents/{coordinator,techops,finance,sales,marketing}"Create shared folders
ssh $SSH_HOST "mkdir -p ~/_shared/{config,templates}"Create agent directory file
ssh $SSH_HOST 'cat > ~/_shared/config/agent-directory.json << EOF
{
"agents": {
"coordinator": { "role": "Coordinator", "path": "~/_agents/coordinator/" },
"techops": { "role": "File Master", "path": "~/_agents/techops/" },
"finance": { "role": "Finance", "path": "~/_agents/finance/" }
},
"shared": "~/_shared/",
"basePath": "~/"
}
EOF'
3. Configure File Master Agent
Add to your File Master agent's AGENTS.md:
## FILE MASTER β Incoming RequestsWhen another agent sends a file request via sessions_send:
Store a file:
ssh USER@NAS-IP "mkdir -p ~/_agents/[agent]/[subfolder]/"
Copy/create file there
Retrieve a file:
ssh USER@NAS-IP "cat ~/_agents/[agent]/[file]"
Send content back to requesting agent
Confirm back:
sessions_send(sessionKey="agent:[requester]:main", message="Done! File at [path]")
4. Configure Other Agents
Add to each agent's AGENTS.md:
## File Operations β File MasterI do NOT access files directly. ALL file ops go through the File Master:
sessions_send(sessionKey="agent:techops:main", message="Store: [details]")
sessions_send(sessionKey="agent:techops:main", message="Retrieve: [path]")
NAS Folder Structure (Recommended)
~/
βββ _agents/
β βββ coordinator/ # Coordinator files
β β βββ journal/ # Daily journals
β β βββ tracking/ # Task tracking
β βββ techops/ # Tech docs, scripts
β β βββ scripts/
β β βββ configs/
β βββ finance/ # Finance
β β βββ invoices/
β β βββ contracts/
β β βββ reports/
β βββ sales/ # Sales
β β βββ leads/
β β βββ proposals/
β βββ [your-agent]/ # Per-agent storage
βββ _shared/
β βββ config/ # Shared configs
β β βββ agent-directory.json
β βββ templates/ # Shared templates
βββ _backups/
βββ memory/ # Memory file backups
SSH via VPN/Tailnet (Recommended)
# Connect via secure tunnel IP (e.g. WireGuard, ZeroTier, or similar)
SSH_HOST="user@10.x.x.x" # Your VPN/Tailnet IPTest connection
ssh $SSH_HOST "echo 'NAS connected!'"
Security
Why File Master Pattern?
1. Security: Only one agent has NAS credentials 2. Consistency: Single point of truth for file locations 3. Audit trail: All file ops logged through one agent 4. Simplicity: Other agents don't need to know SSH commands
Backup Strategy
Daily Backup Cron (via OpenClaw)
Set up a cron job that backs up agent workspaces to NAS:// Cron job config
{
"schedule": { "kind": "cron", "expr": "0 3 * * *", "tz": "UTC" },
"payload": {
"kind": "agentTurn",
"message": "Backup all agent workspaces to NAS. For each agent: rsync workspace memory/ folder to NAS _agents/{agent}/memory-backup/. Report any failures."
},
"sessionTarget": "isolated"
}
Manual Backup Command
# Backup specific agent
rsync -avz ~/.openclaw/workspace-finance/memory/ user@nas-ip:~/_agents/finance/memory-backup/Backup all agents (customize list to your team)
for agent in coordinator techops finance sales marketing; do
rsync -avz ~/.openclaw/workspace-$agent/memory/ user@nas-ip:~/_agents/$agent/memory-backup/
done
Troubleshooting
SSH connection refused: β Check VPN/Tailnet status β is NAS online and connected? β Verify SSH service running on NAS (Synology: DSM β Control Panel β Terminal & SNMP)
Permission denied:
β SSH key not added: ssh-copy-id user@nas-ip
β NAS home folder not enabled (Synology: DSM β User β Advanced β Enable home service)
Slow transfers:
β Use direct VPN connection (not relayed)
β Consider compression: rsync -avz --compress
Compatible NAS Models
Changelog
v1.1.0
v1.0.0
βοΈ Configuration
1. NAS Prerequisites
2. Create Folder Structure
SSH_HOST="user@your-nas-ip"Create agent folders (customize agent names to match your team)
ssh $SSH_HOST "mkdir -p ~/_agents/{coordinator,techops,finance,sales,marketing}"Create shared folders
ssh $SSH_HOST "mkdir -p ~/_shared/{config,templates}"Create agent directory file
ssh $SSH_HOST 'cat > ~/_shared/config/agent-directory.json << EOF
{
"agents": {
"coordinator": { "role": "Coordinator", "path": "~/_agents/coordinator/" },
"techops": { "role": "File Master", "path": "~/_agents/techops/" },
"finance": { "role": "Finance", "path": "~/_agents/finance/" }
},
"shared": "~/_shared/",
"basePath": "~/"
}
EOF'
3. Configure File Master Agent
Add to your File Master agent's AGENTS.md:
```markdown
π Tips & Best Practices
SSH connection refused: β Check VPN/Tailnet status β is NAS online and connected? β Verify SSH service running on NAS (Synology: DSM β Control Panel β Terminal & SNMP)
Permission denied:
β SSH key not added: ssh-copy-id user@nas-ip
β NAS home folder not enabled (Synology: DSM β User β Advanced β Enable home service)
Slow transfers:
β Use direct VPN connection (not relayed)
β Consider compression: rsync -avz --compress