@amirhosseinnouri/claude-skills-sync
v0.1.0
Published
Sync skills installed in ~/.claude into your other Claude Code config directories.
Maintainers
Readme
claude-skills-sync
Sync skills from ~/.claude into your other Claude Code config directories.
The problem
If you run more than one Claude Code account — work, personal, a client — you probably keep them apart
with CLAUDE_CONFIG_DIR:
alias claude-personal='CLAUDE_CONFIG_DIR=$HOME/.claude-personal command claude'
alias claude-work='CLAUDE_CONFIG_DIR=$HOME/.claude-work command claude'Each config directory is fully independent: its own settings, its own history, and its own skills/ folder.
Skill installers don't know about that. bunx skills add …, plugins, and manual clones all write to
~/.claude/skills. So you install a skill, open claude-personal, and the skill isn't there — because
that session only reads ~/.claude-personal/skills.
The fix is a symlink per config directory. This CLI does that for you.
Use it
No install needed — run it right after installing a skill:
npx @amirhosseinnouri/claude-skills-sync
bunx @amirhosseinnouri/claude-skills-sync
pnpx @amirhosseinnouri/claude-skills-syncOr install it once and call it as claude-skills-sync:
npm install -g @amirhosseinnouri/claude-skills-sync
bun install -g @amirhosseinnouri/claude-skills-sync
pnpm add -g @amirhosseinnouri/claude-skills-syncclaude-skills-sync- Pick the skills to sync — the most recently installed one is preselected.
- Pick the config directories — every
~/.claude-*folder is found automatically and preselected. - Review the plan, confirm, done.
It creates ~/.claude-<name>/skills/<skill> pointing at the real skill folder, creating skills/ if it
doesn't exist yet.
Restart any running Claude session afterwards — skills are read at startup.
Plan symbols
| Symbol | Meaning |
| --- | --- |
| + | new symlink will be created |
| = | already synced, left alone |
| ! | something else is already there — replaced only after you confirm |
Options
claude-skills-sync [skill...] [options]
-a, --all select every skill in ~/.claude/skills
-y, --yes overwrite conflicting entries without asking
-n, --dry-run show what would change, write nothing
-h, --help show this helpPass skill names to skip the picker:
claude-skills-sync copywriting pdfNotes
- Symlinks point at the skill's resolved path. Skills added by
skills addalready live in~/.agents/skillsand are symlinked into~/.claude, so the new link points straight at~/.agents/skills/<name>instead of chaining through~/.claude. - Nothing is copied and nothing in
~/.claudeis modified — updating a skill updates it everywhere. - Removing a synced skill is just
rm ~/.claude-<name>/skills/<skill>.
Develop
git clone https://github.com/amirhosseinNouri/claude-skills-sync.git
cd claude-skills-sync
bun install
bun run dev # run from source
bun run build # bundle with rolldown into dist/
bun link # put your local build on PATHLicense
MIT
