Agent skill

Dual Side Sync

by UniClipboard in UniClipboard/UniClipboard

Push the macOS working-tree changes to the Windows peer's repo via rsync over SSH.

AGPL-3.0Auto-check: warningsDevelopment

Install Dual Side Sync

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add UniClipboard/UniClipboard --skill dual-side-sync -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install UniClipboard/UniClipboard dual-side-sync --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/dual-side-sync .claude/skills/dual-side-sync && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dual-side-sync
GitHub stars
1.9k
Token cost
~1.6k tokens
SKILL.md length
823 words
Files
4
Skills in repo
24
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Push the macOS working-tree changes to the Windows peer's repo via rsync over SSH.

  • Works in 4 steps: Confirms both repos are at the same git… → Confirms the win working tree is clean… → rsyncs the set of files that mac… → …
  • The user wants to sync to win
  • SKILL.md covers What the script does, Configuration (one-time), Windows-side prerequisites and Commands, plus 4 more sections
  • Runs Shell scripts from its folder; calls git; needs WIN_KEY

What it does

Dual Side Sync is an agent skill from UniClipboard/UniClipboard. Push the macOS working-tree changes to the Windows peer's repo via rsync over SSH. Use when the user wants to "sync to win", "push my changes to windows", "mirror the working tree", or otherwise propagate uncommitted edits from this Mac to the paired Windows machine for cross-platform testing of uniclipboard. Replaces the older SMB-mount strategy.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `config.example.sh` and `sync-to-win.sh`).

It sits in Development. It works with macOS and Git. The repository describes itself as: Real-time clipboard sync across all your devices — local-first, peer-to-peer, and end-to-end encrypted. No account. No cloud dependency. No central server. The licence is AGPL-3.0.

When your agent uses it

  • The user wants to sync to win
  • Push my changes to windows
  • Mirror the working tree
  • Otherwise propagate uncommitted edits from this Mac to the paired Windows machine for cross-platform testing of uniclipboard

Example prompts

  • “s repo via rsync over SSH. Use when the user wants to”
  • “push my changes to windows”
  • “mirror the working tree”
  • “/dual-side-sync”

Requirements

  • A Bash shell
  • A credential in WIN_KEY

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Confirms both repos are at the same git HEAD (refuses if not — otherwise we'd silently overwrite a different commit).
  2. Confirms the win working tree is clean (or pass --force to reset it first).
  3. rsyncs the set of files that mac considers tracked + untracked-not-ignored to the win repo.
  4. Removes (via ssh + rm) any files that mac has deleted from its working tree.

What it can do on your machine

Read from SKILL.md and the folder at commit 101ffb3. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • WIN_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dual Side Sync loads about 1.6k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 823 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~91
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningMentions a credentials file (SSH keys, cloud or package-manager tokens)SKILL.md:32
    leave both empty and use `ssh-agent` / `~/.ssh/config`. |

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from UniClipboard/UniClipboard at commit 101ffb3, republished under its AGPL-3.0 licence (© UniClipboard). 823 words, ~1,604 tokens.

Download SKILL.mdSave it as .claude/skills/dual-side-sync/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
dual-side-sync
description
Push the macOS working-tree changes to the Windows peer's repo via rsync over SSH. Use when the user wants to "sync to win", "push my changes to windows", "mirror the working tree", or otherwise propagate uncommitted edits from this Mac to the paired Windows machine for cross-platform testing of uniclipboard. Replaces the older SMB-mount strategy.

dual-side-sync

This project pairs a macOS host with a Windows peer to test uniclipboard's cross-platform sync. During active development the same uncommitted change often needs to run on both sides at once. This skill mirrors the mac working tree onto a remote Windows checkout of the same repo, using rsync over ssh.

The helper script lives at .agents/skills/dual-side-sync/sync-to-win.sh. It is the only thing you should invoke for this task — do not hand-roll scp, git apply, or SMB copy commands.

What the script does

  1. Confirms both repos are at the same git HEAD (refuses if not — otherwise we'd silently overwrite a different commit).
  2. Confirms the win working tree is clean (or pass --force to reset it first).
  3. rsyncs the set of files that mac considers tracked + untracked-not-ignored to the win repo.
  4. Removes (via ssh + rm) any files that mac has deleted from its working tree.

.git/, target/, node_modules/, and dist/ are always excluded. The win-side .git is never touched, no commits are pushed, and win HEAD never moves. The win repo stays "owned" by git on the win side; we only mirror the working tree.

Configuration (one-time)

The script needs the developer to provide:

FieldRequiredNotes
WIN_HOSTyesIPv4/IPv6 or hostname of the Windows machine.
WIN_PORTnoSSH port. Defaults to 22.
WIN_USERyesWindows account (the SSH login).
WIN_REPOyesAbsolute path of the repo on win, in a form the remote shell understands (e.g. /c/Users/mark/projects/UniClipboard).
WIN_PASSone ofPassword auth. Requires sshpass on the Mac.
WIN_KEYone ofPrivate-key auth. Or leave both empty and use ssh-agent / ~/.ssh/config.

Initial setup (run from project root):

bash
cp .agents/skills/dual-side-sync/config.example.sh \
   .agents/skills/dual-side-sync/config.local.sh
$EDITOR .agents/skills/dual-side-sync/config.local.sh

config.local.sh is gitignored. The script auto-sources it on every invocation.

Verify:

bash
.agents/skills/dual-side-sync/sync-to-win.sh config   # echo back what it loaded
.agents/skills/dual-side-sync/sync-to-win.sh check    # ssh login + remote rsync + remote git

Windows-side prerequisites

  • OpenSSH server enabled (Windows ships it; run Get-Service sshd in PowerShell to confirm).
  • rsync available on the user's PATH for the SSH login. Easiest path: install Git for Windows and ensure its usr\bin\ directory (which contains rsync.exe) is on the SSH user's PATH. MSYS2, Cygwin, or WSL all work too.
  • The win repo must be a working git checkout at the same HEAD as mac.

If sync-to-win.sh check reports "rsync not found on the win side", fix the PATH on the win user before continuing.

Commands

Always invoke via the script. From the project root:

bash
.agents/skills/dual-side-sync/sync-to-win.sh <command> [options]
CommandWhen to use
configFirst call after editing config.local.sh. Confirms the values were picked up.
checkVerify ssh login, remote rsync, and remote git repo are all reachable. Run this whenever something fails mysteriously.
statusShow both sides: branch, HEAD, dirty files. Always run before push if you're unsure.
diffShow the diffstat of what push would send (tracked changes + untracked files + deletions).
pushMirror the mac working tree to win. Refuses if HEADs differ or win is dirty.
push --forceReset win first if it's dirty (drops any local edits on win).
push --dry-runShow rsync's plan without modifying win. Best last sanity check.
resetgit reset --hard + git clean -fd on win, preserving target/ and node_modules/.
sshOpen an interactive ssh shell on win, or run a one-off remote command (sync-to-win.sh ssh "git -C /c/.../repo log -1").
pathsPrint resolved MAC_REPO, WIN_REPO, and the remote endpoint.
Show full SKILL.md (296 more words)Show less
  1. Confirm config once. sync-to-win.sh config && sync-to-win.sh check.
  2. Ground yourself. sync-to-win.sh status — make sure both sides are at the same HEAD and you understand what's dirty on each.
  3. Preview. sync-to-win.sh diff (logical view) and/or sync-to-win.sh push --dry-run (rsync's actual plan) before any destructive run.
  4. Push. sync-to-win.sh push. If win is dirty by design (build artifacts only), use --force. If win has real local edits you don't want to lose, save them first.
  5. Verify on win. sync-to-win.sh ssh "git -C \"$WIN_REPO\" status --short" or open an interactive shell.

When to refuse / pause

  • HEAD mismatch — never sync. Tell the user to align both repos to the same commit (git push from one, git pull on the other) and re-run status.
  • check fails — surface the exact failure (ssh, rsync, or repo) and fix that before any push. Do not retry push blindly.
  • Win has uncommitted edits the user might want — confirm with the user before running push --force or reset.

Things to avoid

  • Don't scp or cp files manually — bypassing the script means deletions and excludes get out of sync.
  • Don't run push without first confirming status is clean on win (or being explicit with --force).
  • Don't put WIN_PASS anywhere except config.local.sh. Never paste it into a chat, commit, or terminal history.
  • Don't add new always-excluded paths in EXTRA_EXCLUDES for one-shot use — pass them as --exclude=... into a fork of the rsync call instead, or add them deliberately to the config when they apply long-term.

When this skill does not apply

  • Pulling from win to mac — this script is one-way. Use git for that.
  • Inspecting Windows logs — use the dual-side-debug skill.
  • Pushing committed work — that's just git push/git pull, no skill required.
  • Building/installing on win — out of scope; the script only mirrors source.

© UniClipboard, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files in .agents/skills/dual-side-sync of UniClipboard/UniClipboard.

  • SKILL.md
  • .gitignore
  • config.example.sh
  • sync-to-win.sh

Open the folder on GitHubat commit 101ffb3

Compare with similar skills

Dual Side Sync next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dual Side Sync compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dual Side Sync this skillUniClipboard/UniClipboard1.9k—~1.6kAutomated safety check: WarnAGPL-3.0
Build Px4 macOSPX4/PX4-Autopilot13k—~1.1kAutomated safety check: PassBSD-3-Clause
Pulse Releasequnqin24/Pulse516—~1.3kAutomated safety check: PassApache-2.0
Git Worktree Setupk8zdev/k8z155—~930Automated safety check: PassNone
Tk Impact Analysistonkeeper/tonkeeper-web444—~3.7kAutomated safety check: PassApache-2.0
Mori Agent Bridgevaayne/mori303—~1.7kAutomated safety check: PassMIT

Similar skills

  • Build Px4 macOS

    PX4/PX4-Autopilot

    Build PX4 board firmware on macOS in the px4-dev Docker container, including git worktrees, and stage commit-labeled artifacts without flashing hardware.

    13k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Pulse Release

    qunqin24/Pulse

    Release a new Pulse version end to end — checks, bilingual CHANGELOG entry, VERSION, tag, the release workflow, syncing main, and the issue replies that go with it.

    516 GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Automate git worktree creation and copy private files (not tracked in git) to new workdirs.

    155 GitHub stars~930 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Tk Impact Analysis

    tonkeeper/tonkeeper-web

    Analyze QA regression impact for Tonkeeper Web by comparing the current branch with the relevant release tag, reviewing sources/Web/regress.txt, and recommending test blocks, missing coverage, extra…

    444 GitHub stars~3.7k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Use Mori CLI to enable agent-to-agent communication and coordination across Mori-managed panes.

    303 GitHub stars~1.7k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Antigravity CLI Statusline

    AndyAWD/antigravity-cli-statusline

    本技能用於設定 Antigravity 命令列介面(CLI)(agy)的狀態列(Statusline / Footer)顯示指標、顯示順序與多語系介面(繁體中文 zh-tw / English us / 日本語 jp),並自動部署跨平台 Node.js 掛鉤(Hook)腳本(statusline-quota.mjs、fetch-local-quota.mjs)至…

    100 GitHub stars~2.2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from UniClipboard/UniClipboard

All 24 skills in this repo
  • Beui

    UniClipboard/UniClipboard

    Pick and install beUI (@beui) animated React components from the shadcn registry.

    1.9k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Create PR

    UniClipboard/UniClipboard

    Push the current branch and open a GitHub pull request against main.

    1.9k GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Design Audit

    UniClipboard/UniClipboard

    定期审计代码库的工程设计问题(高心智复杂度、单一真相源被破坏、catch-all 胖接口、死代码、散落魔法字面量、泄漏抽象、资源生命周期靠环形缓冲)与可优化点,范围限定为自上次审计以来的 git churn,每条发现都落到 file:line 并对照本项目自己的 VISION.md / 各级 AGENTS.md / memory…

    1.9k GitHub stars~554 tokensUpdated today
    Auto-check passed
  • Dual Side Debug

    UniClipboard/UniClipboard

    Inspect uniclipboard logs from BOTH the macOS host and the mounted Windows peer when debugging cross-platform sync, pairing, transfer, or daemon issues.

    1.9k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • E2E Test Thinker

    UniClipboard/UniClipboard

    Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.

    1.9k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • iOS Log Diagnose

    UniClipboard/UniClipboard

    Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.

    1.9k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Dual Side Sync

What does Dual Side Sync do?

Push the macOS working-tree changes to the Windows peer's repo via rsync over SSH. Dual Side Sync is an agent skill from UniClipboard/UniClipboard. Push the macOS working-tree changes to the Windows peer's repo via rsync over SSH.

When should I use Dual Side Sync?

Dual Side Sync fits situations like: the user wants to sync to win; push my changes to windows; mirror the working tree; otherwise propagate uncommitted edits from this Mac to the paired Windows machine for cross-platform testing of uniclipboard.

How do I install Dual Side Sync in Claude Code?

Run `npx skills add UniClipboard/UniClipboard --skill dual-side-sync -a claude-code`. Or copy the skill folder (.agents/skills/dual-side-sync in UniClipboard/UniClipboard) into .claude/skills/dual-side-sync in your project. Claude Code loads it when a task matches its description.

How do I install Dual Side Sync in Codex?

Run `npx skills add UniClipboard/UniClipboard --skill dual-side-sync -a codex`. Or copy the skill folder (.agents/skills/dual-side-sync in UniClipboard/UniClipboard) into .agents/skills/dual-side-sync in your project. Codex loads it when a task matches its description.

Can I use Dual Side Sync in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add UniClipboard/UniClipboard --skill dual-side-sync -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dual-side-sync, .gemini/skills/dual-side-sync, .github/skills/dual-side-sync and .opencode/skills/dual-side-sync in your project.

What does Dual Side Sync need to run?

Going by SKILL.md and its folder, Dual Side Sync needs a shell for the scripts in its folder, the command-line tools its instructions call (git) and credentials named WIN_KEY. Our summary lists: A Bash shell; A credential in WIN_KEY.

Does Dual Side Sync access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Dual Side Sync safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Dual Side Sync use?

Dual Side Sync is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dual Side Sync use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dual Side Sync?

Skills that share tags, products or a category with Dual Side Sync: Build Px4 macOS (PX4/PX4-Autopilot, 13k stars), Pulse Release (qunqin24/Pulse, 516 stars), Git Worktree Setup (k8zdev/k8z, 155 stars) and Tk Impact Analysis (tonkeeper/tonkeeper-web, 444 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dual Side Sync?

UniClipboard (a GitHub organization) maintains it in UniClipboard/UniClipboard, which has 1,856 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 8, 2026.

Source: UniClipboard/UniClipboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.