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...
---
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:
- Files get lost between agent sessions
- No backup strategy
- Agents duplicate work
- No single source of truth
## The Solution
Designate one agent as **File Master**. All file operations go through this agent via `sessions_send`. The File Master manages:
- SSH connection to NAS
- Folder structure per agent
- File storage and retrieval
- Cross-agent file sharing
## 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
- Synology NAS (any model) or any Linux server with SSH
- SSH access with key-based auth
- VPN or Tailnet (recommended) for secure remote access
### 2. Create Folder Structure
```bash
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
## FILE MASTER โ Incoming Requests
When 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`:
```markdown
## File Operations โ File Master
I 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)
```bash
# Connect via secure tunnel IP (e.g. WireGuard, ZeroTier, or similar)
SSH_HOST="user@10.x.x.x" # Your VPN/Tailnet IP
# Test connection
ssh $SSH_HOST "echo 'NAS connected!'"
```
## Security
- โ
SSH key-based auth (no passwords in configs)
- โ
VPN/Tailnet for encrypted tunnel (no port forwarding needed)
- โ
File Master pattern limits SSH access to one agent
- โ
Other agents never get SSH credentials
- โ Never store SSH keys in agent SOUL.md or memory files
## 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:
```json5
// 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
```bash
# 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
- โ
Synology (any model with DSM 7+)
- โ
QNAP (QTS 5+)
- โ
TrueNAS / FreeNAS
- โ
Any Linux server with SSH access
- โ
Raspberry Pi with external storage
## Changelog
### v1.1.0
- Removed all specific agent/setup references
- Generalized folder structure and examples
- Added backup strategy with cron
### v1.0.0
- Initial release
don't have the plugin yet? install it then click "run inline in claude" again.