Recipe: Cross-Machine Sync
Keep skills in sync across multiple machines using git push/pull.
Scenario
You work on a desktop and a laptop (or home and office machines). You want the same skill library available everywhere without re-running install commands on each machine.
Solution
Initial Setup (Machine A)
# Initialize skillshare
skillshare init
# Install your skills
skillshare install your-org/team-skills
skillshare install another/repo --into tools
# Push source to a git remote
skillshare push
skillshare push commits your source directory to a git-tracked branch and pushes to the configured remote.
Setup on New Machine (Machine B)
# Install skillshare
curl -fsSL https://raw.githubusercontent.com/runkids/skillshare/main/install.sh | sh
If the installer prints PATH setup instructions, follow them before running the commands below. If it prints no PATH warning, no extra setup is needed.
# Choose "Connect my existing skillshare repo" and paste the repo URL.
# init pulls your skills and offers a first sync.
skillshare init
Daily Sync Workflow
On any machine:
# Pull latest changes from other machines
skillshare pull
# Sync to local AI tools
skillshare sync
# After making changes locally
skillshare push
# Or do both directions in one step: merge, push, then sync
skillshare push --pull
Verification
skillshare pushexits 0 and reports committed changesskillshare pullon another machine shows received changesskillshare listshows identical skills on both machinesskillshare synccreates symlinks on the target machine
Variations
- Auto-sync on login: Add
skillshare pull && skillshare syncto your shell profile (.bashrc/.zshrc) - Conflict resolution:
pullmerges commits from both machines and resolves.metadata.jsonconflicts on its own. If both machines edited the same skill file,pullstops, undoes the merge, and names the file — resolve it with git in the source directory - Selective sync: Use per-target
include/excludefilters inconfig.yamlto control which skills sync to each machine - Plugins, MCP and hooks: These live in
config.yaml, whichpush/pullnever carry. See Plugins, MCP and hooks