CLI
Every skilless command and option.
Run skilless <command> --help for the same information in your terminal. Every command also takes --cwd <path> to run as if from another directory.
Commands only read what is on this machine, so they finish right away and work offline. Anything they change is sent to skilless cloud in the background. Commands that read your library also take -s, --sync to check skilless cloud for changes made elsewhere first. See sync.
skilless tells you when a new version is out. Set NO_UPDATE_NOTIFIER=1 to turn that off.
init
Create your library at ~/.skilless.
skilless init create
Create a skill in your library, add it to this project and print the path to its SKILL.md.
skilless create [name] | Option | Description |
|---|---|
-d, --description <text> | What the skill does, for the frontmatter. |
-g, --global | Make it global instead of adding it to this project. |
--disable-model-invocation | Only run the skill when you invoke it, never on the agent's own. |
--no-open | Don't open SKILL.md in your editor. |
--project <key> | Use this project key instead of the one from the git remote. |
You're asked for a name if you leave it out.
add
Add skills to this project from your library, a git repository, a skill on skilless, or a pack.
skilless add [skills...]
skilless add <repo> [skills...]
skilless add <address> A repository is owner/repo or any git URL. Leave out the skills to pick from a list. An address is a skill on skilless (@user/skill, or skilless.dev/skills/<user>/<skill>) or a pack (@user/pack/<pack>, skilless.dev/packs/<user>/<pack>, any URL serving one, or a pack file), and is added whole.
| Option | Description |
|---|---|
-g, --global | Make these skills global, so every project has them. |
--not-global | Stop treating these skills as global and unlink them from the user level. |
--copy | Write real files instead of linking to your library. |
--overwrite | From elsewhere: replace library skills with the same name. |
-y, --yes | Skip confirmation prompts. |
--project <key> | Use this project key instead of the one from the git remote. |
update
Update skills added from a repository, a skilless address or a pack to what is there now.
skilless update [skills...] With no skills, updates every skill added from elsewhere, and checks every pack you follow for skills it has gained or dropped.
| Option | Description |
|---|---|
-f, --force | Replace skills you've edited too. Your copy is kept first. |
-y, --yes | Skip confirmation prompts. |
remove
Remove skills from this project. They stay in your library.
skilless remove <skills...> | Option | Description |
|---|---|
--copy | Write real files instead of linking to your library. |
--project <key> | Use this project key instead of the one from the git remote. |
delete
Delete skills from your library, which removes them from every project on every machine.
skilless delete <skills...> | Option | Description |
|---|---|
-y, --yes | Skip confirmation prompts. |
list
List every skill this project's agents get, and how each one reaches them: ⊕ for a global skill, ⌂ for one that sits in the project's own skill folders. Outside a project, it lists your library.
skilless list | Option | Description |
|---|---|
-l, --lib | List every skill in your library. |
-d, --details | Show what each skill does. |
-p, --project [key] | List another project's skills instead. |
install
Install every skill added to this project, and your global skills at the user level. This is the command to run in cloud agents.
skilless install | Option | Description |
|---|---|
--copy | Write real files instead of linking to your library. |
--project <key> | Use this project key instead of the one from the git remote. |
vendor
Copy skills into this repo as real files to commit, instead of linking them. See committing a skill.
skilless vendor [skills...] | Option | Description |
|---|---|
-y, --yes | Skip confirmation prompts. |
--project <key> | Use this project key instead of the one from the git remote. |
import
Import a directory of existing skills into your library. Each subdirectory needs a SKILL.md.
skilless import <dir> | Option | Description |
|---|---|
--overwrite | Replace skills that already exist. |
-y, --yes | Skip confirmation prompts. |
migrate
Move this project's skills into your library and link them back. Also offers your user-level skills, as global skills. See moving existing skills in.
skilless migrate [skills...] | Option | Description |
|---|---|
--user | Migrate your user-level skills too, without asking. |
--include-committed | Move skills committed to this repo too, without asking. Their removal is staged. |
-y, --yes | Skip confirmation prompts. |
auth
Sign in to skilless cloud, or sign out.
skilless auth | Option | Description |
|---|---|
--token <token> | Save a token directly, for when the browser can't reach you. |
--logout | Sign out on this machine. |
sync
Sync your library with skilless cloud in both directions, then update this project's skills and your global ones. See sync.
skilless sync | Option | Description |
|---|---|
--push | On a conflict, keep the local copy. |
--pull | On a conflict, keep the remote copy. |
-y, --yes | Skip confirmation prompts. |
packs
Make and manage your packs on skilless.dev. Adding one is skilless add <pack url>.
skilless packs list
skilless packs create <name> [skills...]
skilless packs delete [packs...] create takes library skills by name, repositories (github.com/owner/repo[/path][#ref]) and skill addresses. delete takes a pack's name, id or URL, or leave it out to pick from a list.
| Option | Description |
|---|---|
-d, --description <text> | create: what the pack is for. |
--public | create: let anyone with the address add it. |
-y, --yes | delete: skip the confirmation prompt. |
config editor
Choose the editor skilless create opens new skills in.
skilless config editor [editor] Leave out the editor to pick from the ones installed. The editors skilless knows are cursor, vscode, windsurf, zed, sublime, neovim and vim.
| Option | Description |
|---|---|
--unset | Stop opening new skills in an editor. |
Environment variables
| Variable | Description |
|---|---|
SKILLESS_TOKEN | A token to authenticate with. Takes priority over skilless auth. |
SKILLESS_HOME | Where your library lives. Defaults to ~/.skilless. |
SKILLESS_TRACE | Set to 1 to print a full stack trace when a command fails. |