skl use
Copy a library skill into the project, list the skills the project uses, or rewrite every listed skill with --all.
Synopsis
skl use
skl use <skill>...
skl use --all
skl use <skill> --link
skl use <skill> --force
skl use <skill> --project <dir> -a <id>
Arguments and flags
<skill>.... Library skill names. With none, list the skills inskills.toml.--all. Rewrite every skill listed inskills.tomlfrom this machine's library. Cannot be combined with names.--link. Write a symlink into the library instead of a copy. Remote checkouts such as Cursor Cloud cannot follow it. When the symlink cannot be created, skl falls back to a copy and recordsmode = "copy".--force. Overwrite a real directory at the target path that skl does not manage.--project <dir>. Project root. Default is the current directory.-a,--agent <id>. Also write the project directory of the agent<id>, such asclaude-code. Repeatable.claudeis accepted asclaude-code.cursorandcodexare rejected because they already read.agents/skills.
The default mode is copy. projection = "link" under [project] in config.toml makes symlink the default. --link wins over the config.
Output
using writing-tests (agents /home/you/.local/share/skl/skills/writing-tests)
copy agents /path/to/project/.agents/skills/writing-tests
updated /path/to/project/skills.toml
The first column of each directory line is the action. copy and link mean a new directory or symlink. copy* means an existing symlink or stale copy was replaced with a fresh copy. replace means an existing symlink was replaced. ok means the directory already matched.
With no names:
name source mode
writing-tests library copy
What it writes
.agents/skills/<name>as a directory copy, or as a symlink with--link.- The project directory of each extra from
-a, from[targets].extrain the project'sskills.toml, and from[targets].extrainconfig.toml. skills.toml: the skill entry withsource = "library"andmode = "copy"ormode = "symlink", plus any new extras under[targets].extra.- A background sync may run afterwards.
skl use does not run skl migrate and does not run git add.
Errors
local state: use either skl use --all or skl use <skill>local state: skill <name> is not in the personal library on this machine. Run skl init or skl capture to import it, or skl sync to pull the library, then skl use --all.local state: skill <name> listed in <skills.toml> but not found in the personal library on this machine. Run skl sync to pull it, then skl use --all.local state: <path> exists and is not a managed projection; refusing to overwrite (pass --force to clobber a real directory)local state: invalid skill name <name>for a name that is empty, starts with., or contains/or\.