Import existing skills
Two commands bring skills into the personal library. skl init copies from home agent dirs. skl capture promotes a skill that already lives in a project.
Init
skl init
skl init finds skills under home roots and copies any name that is not already in ~/.local/share/skl/skills. Foreign trees stay in place. Init never overwrites a library skill of the same name.
Roots include:
~/.agents/skills~/.config/agents/skills~/.claude/skills~/.cursor/skills~/.codex/skills- other catalog globals on this machine
skl doctor lists the roots it can see. After init, the library is ready for skl sync. Sync still does not touch those home dirs.
Init may ask once whether you want sticky extras such as Claude Code. See Extra agents.
Capture
skl capture writing-tests
skl capture .agents/skills/writing-tests
skl capture copies a project skill into the personal library. The path or name is resolved under the project dest .agents/skills and any sticky extras.
After a successful capture, the project directory becomes a symlink to the library copy. Pass --keep-copy to leave a real directory in the project.
Flags
--forceoverwrites an existing library skill of the same name.--as NAMEstores the skill under a different name.--keep-copycopies into the library and leaves the project dir as a real copy.--project DIRsets the project root. Default is the current directory.
A name clash without --force or --as is an error. The source must be a directory that contains SKILL.md.