skillmirror
Reference

بِسْمِ ٱللَّهِ ٱلرَّحْمَـٰنِ ٱلرَّحِيمِ

Commands

Every skillmirror command with its options, what it reads, what it writes, and when it exits with something other than 0.

Every command accepts --vault DIR and --root DIR, which beat the variables SKILLMIRROR_VAULT and SKILLMIRROR_ROOT and the files (Configuration). Every command accepts -h and --help. These three are left out of the tables below, and so are the exit codes that every command shares (Exit codes).

Commands that write ask first, unless you pass --yes, and show their plan with --dry-run. Commands that print results take --json for scripts (Scripts and CI).

skillmirror with no command opens the interface when stdin and stdout are terminals. Otherwise it prints the help and exits 2. skillmirror --version prints the version.

Look

These commands write nothing.

status

How every project stands against the vault: outdated skills, mandatory skills that are missing, bridges that are not made, folders the vault does not have. Exits 1 when something differs.

skillmirror status [SKILL]...
OptionWhat it does
SKILLonly these skills (default: all of them)
--group PATHonly the skills below this vault folder, such as web or web/seo
--profile NAMEonly the skills of a profile
--project DIRonly this project (default: every project under the root)
--allalso list the projects that are fully up to date, with their skills
--jsonone JSON document

diff

The lines a sync would bring in and take away, as unified diffs. The old side is the project, the new side is the vault. Exits 1 when something differs.

skillmirror diff [SKILL]
OptionWhat it does
SKILLonly this skill
--project DIRonly this project
--statonly the lines added and removed per file, not the lines themselves
--jsonone JSON document

changes

Which skills of one project differ from the vault: edited there, behind, new, unusable or same. Exits 1 when some skill is edited. The project is the one around the current folder, up to the top of its git repository, else the only one below it (Improve a skill).

skillmirror changes
OptionWhat it does
--project DIRthe project, a folder with .agents/skills; without it, the one around the current folder
--allalso list the skills that equal the vault's
--jsonone JSON document

list

Every installed skill folder with its project. The ones the vault lacks are marked (not in vault).

skillmirror list
OptionWhat it does
--jsonone JSON document

skills

The skills of the vault, grouped by folder. The mandatory ones are marked.

skillmirror skills
OptionWhat it does
--group PATHonly the skills below this vault folder
--jsonone JSON document

info

One skill from every side: its place and files in the vault, the files git does not track, the profiles that name it, and what it is in each project.

skillmirror info SKILL
OptionWhat it does
SKILLthe skill folder name
--jsonone JSON document

doctor

Checks the vault, the configuration and the machine. Exits 1 for warnings and 3 for errors (Look before you sync).

skillmirror doctor
OptionWhat it does
--jsonone JSON document

history

The backup runs that can be undone, newest first.

skillmirror history
OptionWhat it does
--jsonone JSON document

report

One self-contained HTML file: skills against projects, the vault tree, diffs, a filter, a dark theme.

skillmirror report
OptionWhat it does
-o, --output FILEwhere to write the report (default skillmirror-report.html); - prints it. An existing file is replaced only when it is a report this tool wrote
--openopen the report in the browser afterwards (xdg-open)

web

The report, live, on this computer only. It starts only in a build with the web view and with web: true in the config (The web view).

skillmirror web
OptionWhat it does
--allow-writelet the pages run sync, push and undo; each shows its plan first and asks
--port PORTthe port on 127.0.0.1 (default: any free one)
--openopen the link in the browser (xdg-open)
--idle-timeout MINUTESstop after this many minutes without a request; 0 never stops (default 120)

Bring projects in step

sync

Updates the skills each project already has from the vault. It never adds a skill. The copy is a mirror: files are added, changed and removed, and a mode change counts as a change.

skillmirror sync [SKILL]...
OptionWhat it does
SKILLonly these skills (default: all of them)
--group PATHonly the skills below this vault folder
--profile NAMEonly the skills of a profile
--project DIRonly this project
--dry-runshow what would change and write nothing
--checkwrite nothing; exit 1 when any target differs from the vault
-y, --yesapply without asking
--jsonone JSON document; needs --yes, --dry-run or --check
--allalso list the targets that are already up to date

push

Installs the mandatory skills into every project that has a skills folder.

skillmirror push [SKILL]...

A name that is not on the mandatory list is refused.

OptionWhat it does
SKILLonly these skills (default: all of them)
--group PATHonly the skills below this vault folder
--profile NAMEonly the skills of a profile
--project DIRonly this project
--dry-runshow what would change and write nothing
--checkwrite nothing; exit 1 when any target differs from the vault
-y, --yesapply without asking
--jsonone JSON document; needs --yes, --dry-run or --check
--allalso list the targets that are already up to date

add

Installs skills, groups or profiles into one existing project, and makes its .agents/skills folder if there is none.

skillmirror add [SKILL]...
OptionWhat it does
SKILLskill names
--group PATHa vault folder such as web or web/seo; installs every skill below it
--profile NAMEa profile
--project DIRthe project to install into (default: the current directory)
--dry-runshow what would be installed and write nothing
-y, --yesinstall without asking
--jsonone JSON document

init

Makes a new project folder with the mandatory skills plus a selection, a git repository on main, an AGENTS.md and the scaffold of the doc-start skill (Start a project).

skillmirror init DIR [SKILL]...
OptionWhat it does
DIRthe new project directory; it must not exist or must be empty
SKILLskill names
--group PATHa vault folder; installs every skill below it
--profile NAMEa profile
--no-gitdo not make a git repository (one is made on the branch main, unless the folder is inside one already)
--no-scaffolddo not run the doc-start skill's script
--no-mandatorydo not install the mandatory skills
--no-agents-mddo not make an AGENTS.md
--dry-runshow what would be installed and write nothing
-y, --yesinstall without asking
--jsonone JSON document

delete

Removes one skill folder from projects. The removed folders go to the backup.

skillmirror delete NAME
OptionWhat it does
NAMEthe skill folder name
--project DIRremove it from this one project instead of scanning the root
--dry-runshow what would be removed and remove nothing
-y, --yesremove without asking
--jsonone JSON document

bridge

Links the agent folders named in targets: of the vault config to .agents/skills in every project (Other agent folders).

skillmirror bridge
OptionWhat it does
--dry-runshow what would be linked and write nothing; exits 1 when a link is missing
-y, --yeslink without asking
--allalso list the bridges that are already in place
--jsonone JSON document

undo

Brings back what a run replaced or removed. Undoing is a run too, so a second undo redoes it (Safety and undo).

skillmirror undo [RUN]
OptionWhat it does
RUNthe run to undo (default: the newest one); history lists them
--project DIRonly undo what the run did in this project
--skill NAMEonly undo what the run did to this skill
--dry-runshow what would be brought back and change nothing
-y, --yesundo without asking
--jsonone JSON document

Grow the vault

new, adopt and promote write into the vault. They stage what they write with git add and never commit.

new

Creates a skill in the vault from a template: a SKILL.md with a header and a line of guidance.

skillmirror new NAME
OptionWhat it does
NAMElowercase letters, digits, - and _
--group PATHthe vault folder to put it in, such as web or web/seo (made when it does not exist)
--description TEXTthe line agents read to decide when to use the skill
--dry-runshow what would be created and create nothing
--jsonone JSON document

adopt

Copies a skill folder that a project has into the vault. The project's folder is then equal to the vault's.

skillmirror adopt NAME --from DIR
OptionWhat it does
NAMEthe skill folder name in the project
--from DIRthe project that has it
--group PATHthe vault folder to put it in (made when it does not exist)
--dry-runshow what would be copied and copy nothing
--jsonone JSON document

promote

Replaces the vault's copy of skills you changed in a project with the project's. The old copy goes to the backup (Improve a skill).

skillmirror promote [SKILL]...
OptionWhat it does
SKILLthe skill folders of the project to put into the vault
--allevery skill the project changed
--project DIRthe project; without it, the one around the current folder
--syncafterwards update every other project that has these skills (a sync; it asks again)
--dry-runshow what would be replaced and replace nothing
-y, --yesreplace without asking
--jsonone JSON document

vault init

Makes a new vault: a git repository with a config.yaml. The folder must not exist or must be empty. When you have no default vault yet, it becomes the default.

skillmirror vault init DIR
OptionWhat it does
DIRthe new vault folder
--root DIRthe folder that holds your projects, written to config.yaml as root:
--usemake it the default vault even when another one is set
--dry-runshow what would be created and create nothing
--jsonone JSON document

mandatory list

Lists the skills that push installs everywhere, from the mandatory: key of config.yaml.

OptionWhat it does
--jsonone JSON document

mandatory add

Adds skills of the vault to the list. Comments and the other keys of config.yaml stay. A name the vault does not have is an error.

skillmirror mandatory add SKILL...
OptionWhat it does
SKILLskill names
--dry-runshow the new list and change nothing
--jsonone JSON document

mandatory remove

Takes skills off the list. A name that is not on it is an error.

skillmirror mandatory remove SKILL...
OptionWhat it does
SKILLskill names
--dry-runshow the new list and change nothing
--jsonone JSON document

AGENTS.md

The commands of AGENTS.md for every project.

agents status

How the AGENTS.md of each project stands against the text. Exits 1 when any is not current.

OptionWhat it does
--project DIRonly this project (default: every project under the root)
--allalso list the projects whose block is current
--jsonone JSON document

agents sync

Rewrites the autogenerated block where it is out of date. The rest of each file is never touched.

OptionWhat it does
--project DIRonly this project
--forcealso replace a block that was edited by hand (the old file is kept for undo)
--dry-runshow what would change and write nothing
-y, --yeswrite without asking
--diffshow the lines that change in each file
--allalso list the projects where nothing changes
--jsonone JSON document

agents add

Makes AGENTS.md in a project that has none, or puts the block into one that has no block.

OptionWhat it does
--project DIRthe project (default: the current directory)
--dry-runshow what would change and write nothing
-y, --yeswrite without asking
--diffshow the lines that change in each file
--allalso list the projects where nothing changes
--jsonone JSON document

agents seed

Writes the built-in text into the vault as project-files/AGENTS.md so that you can edit it there. It stops when the file is there.

OptionWhat it does
--dry-runshow where the file would be made and write nothing
--jsonone JSON document

Configuration

config show

The vault, the scan root and the settings in config.yaml, and where each came from.

OptionWhat it does
--jsonone JSON document

config path

Prints the path of config.yaml, for $EDITOR $(skillmirror config path).

config root

Sets root: in config.yaml to a folder that holds your projects.

skillmirror config root DIR
OptionWhat it does
DIRthe folder to scan for projects; it must exist
--dry-runshow the change and make none

config web

Turns the web view on or off with web: in config.yaml.

skillmirror config web on
skillmirror config web off
OptionWhat it does
--dry-runshow the change and make none

Housekeeping

migrate

Copies the vault pointer of the old skill_Manag tool to this tool.

OptionWhat it does
--retireremove the old pointer file afterwards, so the old tool stops finding the vault

completions

Prints a shell completion script for bash, elvish, fish, powershell or zsh. Add one line to the startup file of your shell (Install).

skillmirror completions SHELL

tui

Opens the interface by name. In a terminal it is what skillmirror alone does.

On this page