بِسْمِ ٱللَّهِ ٱلرَّحْمَـٰنِ ٱلرَّحِيمِ
skillmirror
Keep the agent skills of all your projects in step with one vault. What it does, the one rule it keeps, and where to read next.
skillmirror keeps the agent skills of all your projects in step with one vault. You improve a skill once, in one place, and one command brings every project that uses it up to date.
A skill is a folder with a SKILL.md that your coding agent reads. A project keeps its skills in .agents/skills/<name>/. Copy a skill into ten projects and the first improvement makes the other nine old. skillmirror ends that: the vault is a git folder you write your skills in, the projects mirror it, and every copy is a whole copy of the folder. Skills are copied, never linked, so projects stay git-tracked and work over SSH.
The loop in three commands
skillmirror status # how every project stands against the vault
skillmirror diff # the exact lines a sync would change
skillmirror sync # show the plan, ask, write● ~/projects/atlas-api
~ coding outdated (1 file changed)
● ~/projects/docs-site
~ coding outdated (1 file changed)
● ~/projects/infra
~ coding outdated (1 file changed)
3 projects: 0 in sync, 3 differ (3 skill folders outdated, 0 mandatory missing)Every command that writes shows its plan first and asks. Before it replaces a folder it keeps the old copy, so skillmirror undo brings the run back.
The one rule
sync only updates what a project already has
A project chooses its skills by having the folder. sync refreshes those folders from the vault and never adds a skill to a project that did not choose it. Putting a skill into a project is a separate, deliberate act: add, init or push.
What it does not do
- It does not commit in your vault.
new,adoptandpromotestage what they write withgit add. You commit when a skill is ready. - It is not a package manager. There is no registry and no version number. The git history of the vault is the history of your skills.
- It does not link skills into projects. The one link it can make is the optional
.claude/skillsbridge, and only where you ask for it. - It runs on Linux only. Replacing a folder in one step needs
renameat2. - It does not complete skill names in the shell yet. Tab completion covers commands, options and fixed values.
Where to read next
Getting started
Build skillmirror, make a vault and run a first sync with an undo at the end.
Concepts
The vault, the projects, how a sync decides what to write, and what keeps it safe.
Guides
Daily work: keep projects in step, improve a skill where you use it, start a project, script it.
Reference
Every command, the configuration file, the folders it touches, exit codes, and fixes for the messages you can meet.