Basic usage
These commands assume skl is installed. Sync steps live on Setting up sync.
Create
skl create writing-tests
skl new is an alias. Create writes ~/.local/share/skl/skills/writing-tests/SKILL.md with frontmatter name and description, then opens $VISUAL or $EDITOR (fallback vi).
The name cannot start with . and cannot contain / or \. A name that already exists in the library is an error. Edit that skill instead.
If the editor fails, the skill is still on disk.
Use
skl use writing-tests
skl use activates a library skill into this project. It writes .agents/skills/writing-tests and adds the name to skills.toml. Default is a symlink. If the symlink fails, skl copies.
skl use
With no arguments, skl use lists skills already activated in this project.
skl use --all
--all rematerializes every skill listed in skills.toml from this machine's personal library. If a listed name is missing here, sync first, then run skl use --all again.
skl use writing-tests -a claude-code
-a / --agent adds an extra dest for this activation. Repeat the flag for more than one id. claude is an alias for claude-code.
Cursor and Codex already read .agents/skills. Do not add them as extras.
--project DIR sets the project root. Default is the current directory.
Unuse
skl unuse writing-tests
skl unuse removes the project dest for that name and drops it from skills.toml. The personal library copy stays.
List, status, delete
skl list
skl status
skl delete writing-tests
skl list prints local skills from state.db. When you are logged in, it also marks remote presence.
skl status prints api_base, whether a device token is present, config and state.db paths, auto-sync prefs, local skill count, and last sync.
skl delete removes the skill from SKL and deletes the local library copy. Project dests and home agent dirs stay. Delete talks to the API, so you need to be logged in.
Migrate old project links
skl migrate targets
skl migrate targets --prune-old
skl migrate targets --project DIR
skl migrate targets moves old .claude and .cursor project links onto .agents/skills. --prune-old removes the old links after the canonical dest exists. skl use never runs this. skl doctor warns when it sees the old layout.