Sync skills to all your AI CLI tools with one command
Supports Amp, Claude Code, Codex CLI, Crush, Cursor, Gemini CLI, GitHub Copilot, Goose, Letta, Antigravity, OpenCode
Install β’ Quick Start β’ Commands β’ Reference β’ FAQ β’ Common Issues
The problem: You create a skill in Claude, but need it in Cursor, Codex, and Gemini too. Manually copying? Tedious. What if you update it? Copy again.
The solution: One source of truth. Create once, sync everywhere.
skillshare pull claude && skillshare sync # Pull from Claude β sync to all| What makes it different | |
|---|---|
| π Bidirectional sync | pull from any target, sync to all |
| π Cross-machine sync | push / pull --remote via git |
| πΎ Backup & restore | Automatic before sync, restore anytime |
| π Diagnostics | doctor checks git, broken links, duplicates |
| π€ AI-native | Built-in skill lets your AI manage everything |
The built-in skillshare skill enables your AI CLI to manage skills directly. Just download the skill folder into your AI CLI's skills directory β the binary is auto-downloaded on first use.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β User: "sync my skills to all targets" β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AI reads skillshare skill β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β skillshare sync β
β β Synced 5 skills to claude, codex, cursor β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Tip
Once installed, just say:
- "Show my skillshare status"
- "Sync my skills to all targets"
- "Pull skills from Claude and sync everywhere"
- "Install the pdf skill from anthropics/skills"
curl -fsSL https://raw.githubusercontent.com/runkids/skillshare/main/install.sh | shInstalls to /usr/local/bin/. Works on macOS and Linux.
brew install runkids/tap/skillshare# Apple Silicon (M1/M2/M3/M4)
curl -sL https://github.com/runkids/skillshare/releases/latest/download/skillshare_darwin_arm64.tar.gz | tar xz
sudo mv skillshare /usr/local/bin/
# Intel
curl -sL https://github.com/runkids/skillshare/releases/latest/download/skillshare_darwin_amd64.tar.gz | tar xz
sudo mv skillshare /usr/local/bin/# x86_64
curl -sL https://github.com/runkids/skillshare/releases/latest/download/skillshare_linux_amd64.tar.gz | tar xz
sudo mv skillshare /usr/local/bin/
# ARM64
curl -sL https://github.com/runkids/skillshare/releases/latest/download/skillshare_linux_arm64.tar.gz | tar xz
sudo mv skillshare /usr/local/bin/Download from Releases and add to PATH.
brew uninstall skillshare # Homebrew
sudo rm /usr/local/bin/skillshare # Manual install
rm -rf ~/.config/skillshare # Config & data (optional)skillshare init --dry-run # Preview setup
skillshare init # Auto-detects installed CLIs, sets up git
skillshare sync # Syncs skills to all targetsDone! Your skills are now synced across all AI CLI tools.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ~/.config/skillshare/skills/ β
β my-skill/ another-skill/ shared-util/ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββΌββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββ βββββββββββββ βββββββββββββ
β Claude β β Codex β β Gemini β
β skills/ β β skills/ β β skills/ β
βββββββββββββ βββββββββββββ βββββββββββββ
| Command | Description |
|---|---|
init |
Initialize skillshare, detect CLIs, setup git |
install |
Install a skill from local path or git repo |
uninstall |
Remove a skill from source directory |
list |
List all installed skills |
sync |
Sync skills to all targets |
status |
Show source, targets, and sync state |
diff |
Show differences between source and targets |
pull |
Pull skills from target back to source |
pull --remote |
Pull from git remote and sync to all targets |
push |
Commit and push skills to git remote |
backup |
Manually backup targets |
restore |
Restore from backup |
doctor |
Diagnose configuration issues |
upgrade |
Upgrade CLI and built-in skillshare skill |
| Command | Description |
|---|---|
target list |
List all configured targets |
target <name> |
Show target info (path, mode, status) |
target <name> --mode <mode> |
Change sync mode (merge/symlink) |
target add <name> <path> |
Add custom target |
target remove <name> |
Safely unlink target (backs up first) |
Jump to a section:
- Target Management
- Install Skills
- Uninstall Skills
- List Skills
- Upgrade
- Dry Run
- Sync Modes
- Backup & Restore
- Cross-Machine Sync
- Configuration
- FAQ
- Common Issues
Add, remove, or configure targets for any AI CLI tool.
skillshare target list # List all targets
skillshare target claude # Show target info
skillshare target claude --mode merge # Change sync mode
skillshare target add myapp ~/.myapp/skills # Add custom target
skillshare target remove myapp # Safely unlink (backs up first)Support any tool with a skills directory:
skillshare target add windsurf ~/.windsurf/skills
skillshare target add aider ~/.aider/skills
skillshare synctarget remove is safe β it backs up first, then replaces symlinks with copies:
skillshare target remove claude # Backup β unlink β copy back
skillshare target remove --all # Remove all targetsWarning
Never use rm -rf on a symlinked target β it deletes your source files!
Install skills from local paths or git repositories directly into your source directory.
Use owner/repo shorthand for quick installs (automatically expands to github.com/owner/repo):
skillshare install anthropics/skills # Discovery mode
skillshare install anthropics/skills/skills/pdf # Direct install
skillshare install ComposioHQ/awesome-claude-skills # Another repoWhen installing from a git repo without a specific path, skillshare discovers all skills and lets you choose:
$ skillshare install anthropics/skills
Discovering skills
βββββββββββββββββββββββββββββββββββββββββ
β Source: github.com/anthropics/skills
β Cloning repository...
β Found 17 skill(s)
? Select skills to install:
[Use arrows to move, space to select, <right> to all, <left> to none, type to filter]
> [ ] algorithmic-art (skills/algorithmic-art)
[ ] brand-guidelines (skills/brand-guidelines)
[ ] canvas-design (skills/canvas-design)
[ ] doc-coauthoring (skills/doc-coauthoring)
[ ] frontend-design (skills/frontend-design)
[ ] mcp-builder (skills/mcp-builder)
[ ] pdf (skills/pdf)
...Install a specific skill directly by providing the full path:
# GitHub shorthand with subdirectory
skillshare install google-gemini/gemini-cli/packages/core/src/skills/builtin/skill-creator
# From local path
skillshare install ~/Downloads/my-skill
# From SSH git URL
skillshare install git@github.com:user/repo.git| Option | Description |
|---|---|
--name <name> |
Override the skill name (direct install only) |
--force, -f |
Overwrite if skill already exists |
--update, -u |
Update existing (git pull if possible, else reinstall) |
--dry-run, -n |
Preview discovered skills without installing |
# Preview available skills in a repo
skillshare install github.com/ComposioHQ/awesome-claude-skills --dry-run
# Install specific skill with custom name
skillshare install github.com/google-gemini/gemini-cli/packages/core/src/skills/builtin/skill-creator --name my-skill-creator
# Force overwrite existing
skillshare install ~/my-skill --force
# Update existing skill by name (uses stored source metadata)
skillshare install my-skill --update
# Update from source URL directly
skillshare install github.com/user/skill-repo --updateAfter installing, run skillshare sync to distribute the skill to all targets.
Remove a skill from the source directory.
skillshare uninstall my-skill # Prompts for confirmation
skillshare uninstall my-skill --force # Skip confirmation
skillshare uninstall my-skill --dry-run # Preview without removingAfter uninstalling, run skillshare sync to update all targets.
View all installed skills and their sources.
skillshare list # List all skills
skillshare list --verbose # Show detailed info (source, type, install date)Example output:
Installed skills
--------------------------------------------------
my-skill (local)
skill-creator github.com/google-gemini/gemini-cli/...
composio-skills github.com/ComposioHQ/awesome-claude-skills
Upgrade the CLI binary and built-in skillshare skill to the latest version.
skillshare upgrade # Upgrade CLI + skill
skillshare upgrade --skill # Upgrade skill only
skillshare upgrade --cli # Upgrade CLI only
skillshare upgrade --force # Skip confirmation
skillshare upgrade --dry-run # Preview without upgradingAfter upgrading the skill, run skillshare sync to distribute to all targets.
Preview changes without modifying files. Supported commands:
skillshare init --dry-run # Preview init setup
skillshare install <source> --dry-run # Preview install
skillshare uninstall <name> --dry-run # Preview uninstall
skillshare sync --dry-run # Preview sync changes
skillshare sync -n # Short flag for sync
skillshare pull --dry-run # Preview pull changes
skillshare pull -n # Short flag for pull
skillshare pull claude -n # Preview pull for one target
skillshare pull --all -n # Preview pull for all targets
skillshare backup --dry-run # Preview backups
skillshare backup -n # Short flag for backup
skillshare backup --cleanup -n # Preview cleanup
skillshare backup --list # List backups (read-only)
skillshare restore claude -n # Preview restore from latest
skillshare restore claude --from 2026-01-14_21-22-18 -n # Preview restore from timestamp
skillshare target remove claude -n # Preview unlink
skillshare target remove --all -n # Preview unlink all
skillshare upgrade -n # Preview upgrade| Mode | Behavior | When to Use |
|---|---|---|
merge |
Each skill symlinked individually. Local skills preserved. | Recommended. Safe, flexible. |
symlink |
Entire directory becomes symlink. All targets identical. | When you want exact copies everywhere. |
Change mode:
skillshare target claude --mode merge
skillshare syncWarning
Symlink Safety β Deleting through a symlinked target deletes the source:
rm -rf ~/.codex/skills/my-skill # β Deletes from SOURCE!
skillshare target remove codex # β
Safe way to unlinkBackups are created automatically before sync and target remove.
Location: ~/.config/skillshare/backups/<timestamp>/
skillshare backup # Manual backup all targets
skillshare backup claude # Backup specific target
skillshare backup --list # List all backups
skillshare backup --cleanup # Remove old backups
skillshare restore claude # Restore from latest backup
skillshare restore claude --from 2026-01-14_21-22-18 # Specific backupNote: In
symlinkmode, backups are skipped (no local data to backup).
Sync your skills across multiple computers using git.
βββββββββββββββββββ βββββββββββββββββββ
β Machine A β β Machine B β
β β skillshare push β β
β Claude/Codex β ββββββββββββββββββΊ β Claude/Cursor β
β β symlink β β β symlink β
β source/skills β βββββββββββββ β source/skills β
β β β β GitHub β β β β
β ββββββββββΌβββΊβ Remote ββββββββΌβββββββββ β
β β βββββββββββββ β β
β β ββββββββββββββββββββ β β
β β skillshare pull β β
β β --remote β β
βββββββββββββββββββ βββββββββββββββββββ
# New setup with remote
skillshare init --remote git@github.com:you/my-skills.git
# Or add remote to existing setup
cd ~/.config/skillshare/skills
git remote add origin git@github.com:you/my-skills.git# Push changes to remote (git add + commit + push)
skillshare push
skillshare push -m "Add new skill" # Custom message
# Pull from remote and sync to all targets
skillshare pull --remote# Clone your skills repo
git clone git@github.com:you/my-skills.git ~/.config/skillshare/skills
# Initialize skillshare with existing source
skillshare init --source ~/.config/skillshare/skills
# Sync to all local targets
skillshare syncpushfails if remote is ahead β runpull --remotefirstpull --remoterefuses if local has uncommitted changes β runpushfirst
Config file: ~/.config/skillshare/config.yaml
source: ~/.config/skillshare/skills
mode: merge
targets:
claude:
path: ~/.claude/skills
codex:
path: ~/.codex/skills
mode: symlink # Override default mode
cursor:
path: ~/.cursor/skills
ignore:
- "**/.DS_Store"
- "**/.git/**"Isn't this just ln -s?
Yes, at its core. But skillshare handles multi-target detection, backup/restore, merge mode, cross-device sync, and broken symlink recovery β so you don't have to.
Can I sync skills to a custom or uncommon tool?
Yes. Use skillshare target add <name> <path> with the tool's skills directory.
How do I sync across multiple machines?
See Cross-Machine Sync section.
What happens if I modify a skill in the target directory?
Since targets are symlinks, changes are made directly to the source. All targets see the change immediately.
How do I keep a CLI-specific skill?
Use merge mode. Local skills in the target won't be overwritten.
What if I accidentally delete a skill through a symlink?
If you have git initialized (recommended), recover with:
cd ~/.config/skillshare/skills
git checkout -- deleted-skill/How does target remove work? Is it safe?
Yes, it's safe. Here's how it works:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β skillshare target remove claude β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β 1. Backup target β
β (backups/<ts>/) β
βββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β 2. Detect mode β
βββββββββββββββββββββββ
β β
symlink mode merge mode
β β
βΌ βΌ
βββββββββββββββββββββββββ βββββββββββββββββββββββββ
β 3a. Remove symlink β β 3b. For each skill: β
β ~/.claude/skills β β Check if symlink β
β β β β points to source β
β 4a. Copy source β β β β
β contents back β β 4b. If yes: β
βββββββββββββββββββββββββ β - Remove symlink β
β - Copy back file β
βββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β 5. Remove from β
β config.yaml β
βββββββββββββββββββββββ
- Symlink mode: Removes symlink, copies source contents back to target
- Merge mode: Only removes symlinks pointing to source, preserves local-only skills
This is why skillshare target remove is safe, while rm -rf ~/.claude/skills would delete your source files.
- Seeing
config not found: run 'skillshare init' first: runskillshare init(add--sourceif you want a custom path). - Integration tests cannot find the binary: run
go build -o bin/skillshare ./cmd/skillshareor setSKILLSHARE_TEST_BINARY. - Deleting a symlinked target removed source files: use
skillshare target remove <name>to unlink, then recover via git if needed. - Target directory already exists with files: run
skillshare backupbeforeskillshare syncto migrate safely. - Target path does not end with
skills: verify the path and prefer.../skillsas the suffix.
git clone https://github.com/runkids/skillshare.git
cd skillshare
go build -o bin/skillshare ./cmd/skillshare
go test ./...Open an issue for bugs or feature requests.
MIT

