Skip to content
Back to skills

Multi Device Sync Github

CSecurity

Multi-device OpenClaw data synchronization using GitHub. Manages workspace data sync across multiple machines (Ubuntu, Mac, etc.) with automatic push on file changes, periodic pull, and conflict detection. Use when setting up or managing OpenClaw across multiple devices, configuring data synchronization, resolving sync conflicts, or adding new devices to the sync network.

  • 14 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 7, 2026
toolsbashgitsecurity

Security analysis

C71/100
  • criticalPipes output to a shell interpreter
  • mediumUses curl or wget to download content
  • criticalDownloads and executes remote scripts — classic supply chain attack

Pro scans all 14 files and shows the line behind each finding

Scanned September 7, 2026

npx -y skills add modbender/skill-library-mcp --skill multi-device-sync-github --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Multi Device Sync Github?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Multi Device Sync Github
[![Security: C — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-multi-device-sync-github/badge)](https://www.skillsdirectory.com/skills/modbender-multi-device-sync-github)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: multi-device-sync-github
description: Multi-device OpenClaw data synchronization using GitHub. Manages workspace data sync across multiple machines (Ubuntu, Mac, etc.) with automatic push on file changes, periodic pull, and conflict detection. Use when setting up or managing OpenClaw across multiple devices, configuring data synchronization, resolving sync conflicts, or adding new devices to the sync network.
---

# Multi-Device Sync via GitHub

Synchronize OpenClaw workspace data across multiple machines using a private GitHub repository.

## Features

- **Automatic push**: File changes trigger immediate git commit + push (via inotifywait/fswatch)
- **Periodic pull**: Configurable interval (default: 5 minutes) to pull remote changes
- **Conflict detection**: Manual resolution required on conflicts
- **Multi-device support**: Each device uses distinct file prefixes for memory files
- **Cross-platform**: Works on Linux (inotifywait) and macOS (fswatch)
- **Selective sync**: Choose which files to synchronize
- **Interactive setup**: Guided installation with customization options

## Architecture

```
Device A (Ubuntu) ◄────► GitHub Repo ◄────► Device B (Mac)
       │                      │                    │
   auto-push              central              auto-push
  periodic pull             hub               periodic pull
```

## Prerequisites

### Linux (Ubuntu/Debian)
```bash
sudo apt-get install -y git inotify-tools
```

### macOS
```bash
brew install git fswatch
```

## Quick Start

### Interactive Installation (Recommended)

```bash
curl -fsSL https://raw.githubusercontent.com/RegulusZ/multi-device-sync-github/main/install.sh | bash
```

The installer will guide you through:
1. Choose: First device (upload) or Add to existing sync (download)
2. Enter your GitHub sync repo URL
3. Name your device
4. Select files to sync
5. Configure sync interval

### Manual Installation

```bash
# 1. Clone skill
git clone https://github.com/RegulusZ/multi-device-sync-github.git ~/openclaw-skills/multi-device-sync-github

# 2. Clone/create sync repo
git clone git@github.com:YOURNAME/openclaw_sync.git ~/openclaw-sync

# 3. Initialize
cd ~/openclaw-sync
~/openclaw-skills/multi-device-sync-github/scripts/sync-init.sh \
  --device-name mydevice \
  --repo-url "git@github.com:YOURNAME/openclaw_sync.git"

# 4. Start daemon
~/openclaw-skills/multi-device-sync-github/scripts/sync-daemon.sh start
```

## How It Works

### Symlink Architecture

The skill creates symlinks from your workspace to the sync repo:

```
~/.openclaw/workspace/
├── USER.md      → ~/openclaw-sync/USER.md (symlink)
├── MEMORY.md    → ~/openclaw-sync/MEMORY.md (symlink)
├── SOUL.md      → ~/openclaw-sync/SOUL.md (symlink)
├── skills/      → ~/openclaw-sync/skills/ (symlink)
└── memory/      → ~/openclaw-sync/memory/ (symlink)
```

When you edit a file in workspace, you're actually editing the sync repo file.

### Auto-Push Flow

```
File changed in workspace
    ↓ (symlink)
File changed in sync repo
    ↓ (inotifywait/fswatch)
Wait 2 seconds (debounce)
    ↓
git add -A && git commit && git push
```

### Periodic Pull

Every N minutes (configurable), the daemon pulls remote changes.

## Configuration

Edit `~/.config/openclaw/sync-config.yaml`:

```yaml
repo_url: "git@github.com:YOURNAME/openclaw_sync.git"
sync_interval_minutes: 5
device_name: "ubuntu"
conflict_strategy: "notify"
auto_pull_on_start: true
auto_push_enabled: true

paths:
  sync:
    - "USER.md"
    - "MEMORY.md"
    - "SOUL.md"
    - "skills/"
    - "memory/"
  ignore:
    - "logs/"
    - "temp/"
    - "*.log"
```

## Syncable Files

| File | Description | Recommended |
|------|-------------|-------------|
| `USER.md` | User profile (name, timezone, background) | ✅ Yes |
| `MEMORY.md` | Long-term memory and important context | ✅ Yes |
| `SOUL.md` | AI behavior rules and guidelines | ✅ Yes |
| `skills/` | Installed skills and capabilities | ✅ Yes |
| `memory/` | Daily logs and session records | ✅ Yes |
| `TOOLS.md` | Local tool notes and configurations | Optional |
| `IDENTITY.md` | AI identity (name, vibe, emoji) | Optional (different per device) |

## File Naming Convention

Memory files use device prefix to avoid conflicts:

```
memory/
├── ubuntu-2026-03-01.md      # Ubuntu device
├── macmini-2026-03-01.md     # Mac Mini device
└── laptop-2026-03-01.md      # Laptop device
```

Shared files (no prefix):
- `USER.md`
- `MEMORY.md`
- `SOUL.md`

## Commands

| Command | Description |
|---------|-------------|
| `sync-init` | Initialize git repo and config |
| `sync-status` | Check sync status |
| `sync-now` | Immediate pull + push |
| `sync-pull` | Manual pull |
| `sync-push` | Manual push |
| `sync-resolve` | Interactive conflict resolution |
| `sync-daemon.sh start/stop/restart/status` | Manage background sync |

## Conflict Resolution

When conflicts detected:

1. Sync paused automatically
2. Run `sync-resolve` to:
   - View conflicting files
   - Choose: keep-local / keep-remote / merge-manual / view-diff
3. Resume sync after resolution

## Adding New Device

### Option A: Interactive

```bash
curl -fsSL https://raw.githubusercontent.com/RegulusZ/multi-device-sync-github/main/install.sh | bash
# Select "Add to existing sync"
```

### Option B: Manual

```bash
git clone git@github.com:YOURNAME/openclaw_sync.git ~/openclaw-sync
cd ~/openclaw-sync
~/openclaw-skills/multi-device-sync-github/scripts/sync-init.sh \
  --device-name NEWNAME \
  --repo-url "git@github.com:YOURNAME/openclaw_sync.git"
~/openclaw-skills/multi-device-sync-github/scripts/sync-daemon.sh start
```

## Troubleshooting

See [references/troubleshooting.md](references/troubleshooting.md) for common issues.

## Security Note

**Use a private GitHub repository** to protect your personal data.

The following files may contain sensitive information:
- `MEMORY.md` - May include IP addresses, service URLs
- `memory/` - Daily logs with potentially sensitive details

## Files in This Skill

```
multi-device-sync-github/
├── SKILL.md                  # This file
├── README.md                 # GitHub README
├── LICENSE                   # MIT License
├── install.sh                # Interactive installer
├── _meta.json                # ClawHub metadata
├── scripts/
│   ├── sync-init.sh             # Initialize sync repo
│   ├── sync-daemon.sh           # Background sync (pull + push watcher)
│   ├── sync-push.sh             # Push changes to remote
│   ├── sync-pull.sh             # Pull changes from remote
│   ├── sync-status.sh           # Show sync status
│   ├── sync-now.sh              # Immediate sync
│   ├── sync-resolve.sh          # Conflict resolution
│   └── sync-notify           # Notification helper
└── references/
    └── troubleshooting.md    # Common issues
```

## License

MIT License - See [LICENSE](LICENSE) for details.

## Security & Safety

### Default Settings (Safe by Default)

- **Auto-push disabled**: `auto_push_enabled: false` by default
- **Confirmation prompts**: Destructive operations require user confirmation
- **Selective git operations**: Only configured files are committed

### Installation Safety

**Recommended (Safest):**
```bash
git clone https://github.com/RegulusZ/multi-device-sync-github.git
cd multi-device-sync-github
./install.sh
```

**Convenience (Review First):**
```bash
# Download and review before executing
curl -fsSL https://raw.githubusercontent.com/RegulusZ/multi-device-sync-github/main/install.sh -o install.sh
cat install.sh  # Review the code
./install.sh
```

### Data Protection

- **Automatic backups**: Files are backed up before replacement
- **No external endpoints**: Notifications are local-only
- **User control**: All operations can be reviewed before execution

### Permissions

The skill requires:
- Read/write access to `~/.openclaw/workspace/`
- Git push access to your sync repository
- No network access beyond GitHub

### Enabling Auto-Push

After reviewing the behavior, enable auto-push:

```bash
# Edit config
nano ~/.config/openclaw/sync-config.yaml

# Change:
auto_push_enabled: true
```

## Security & Safety

### Default Settings (Safe by Default)

- **Auto-push disabled**: `auto_push_enabled: false` by default
- **Confirmation prompts**: Destructive operations require user confirmation
- **Selective git operations**: Only configured files are committed

### Installation Safety

**Recommended (Safest):**
```bash
git clone https://github.com/RegulusZ/multi-device-sync-github.git
cd multi-device-sync-github
./install.sh
```

**Convenience (Review First):**
```bash
curl -fsSL https://raw.githubusercontent.com/RegulusZ/multi-device-sync-github/main/install.sh -o install.sh
cat install.sh  # Review before executing
./install.sh
```

### Data Protection

- **Automatic backups**: Files backed up before replacement
- **No external endpoints**: Notifications are local-only
- **User control**: All operations can be reviewed before execution

### Enabling Auto-Push

After reviewing behavior, enable in config:
```yaml
auto_push_enabled: true
```

Files in this skill

  • .clawhub/origin.json163 B
  • LICENSE.txt1.1 KB
  • README.md2.2 KB
  • SKILL.md9.4 KB
  • install.sh10.7 KB
  • references/troubleshooting.md4.3 KB
  • scripts/sync-daemon.sh7.8 KB
  • scripts/sync-init.sh7.5 KB
  • scripts/sync-notify.sh2.3 KB
  • scripts/sync-now.sh596 B
  • scripts/sync-pull.sh3.1 KB
  • scripts/sync-push.sh3 KB
  • scripts/sync-resolve.sh3.7 KB
  • scripts/sync-status.sh2.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…