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]
OptionDescription
-d, --description <text>What the skill does, for the frontmatter.
-g, --globalMake it global instead of adding it to this project.
--no-openDon'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.

OptionDescription
-g, --globalMake these skills global, so every project has them.
--not-globalStop treating these skills as global and unlink them from the user level.
--copyWrite real files instead of linking to your library.
--overwriteFrom elsewhere: replace library skills with the same name.
-y, --yesSkip 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.

OptionDescription
-f, --forceReplace skills you've edited too. Your copy is kept first.
-y, --yesSkip confirmation prompts.

remove

Remove skills from this project. They stay in your library.

skilless remove <skills...>
OptionDescription
--copyWrite 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...>
OptionDescription
-y, --yesSkip 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
OptionDescription
-l, --libList every skill in your library.
-d, --detailsShow 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
OptionDescription
--copyWrite 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...]
OptionDescription
-y, --yesSkip 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>
OptionDescription
--overwriteReplace skills that already exist.
-y, --yesSkip 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...]
OptionDescription
--userMigrate your user-level skills too, without asking.
--include-committedMove skills committed to this repo too, without asking. Their removal is staged.
-y, --yesSkip confirmation prompts.

auth

Sign in to skilless cloud, or sign out.

skilless auth
OptionDescription
--token <token>Save a token directly, for when the browser can't reach you.
--logoutSign 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
OptionDescription
--pushOn a conflict, keep the local copy.
--pullOn a conflict, keep the remote copy.
-y, --yesSkip 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.

OptionDescription
-d, --description <text>create: what the pack is for.
--publiccreate: let anyone with the address add it.
-y, --yesdelete: 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.

OptionDescription
--unsetStop opening new skills in an editor.

Environment variables

VariableDescription
SKILLESS_TOKENA token to authenticate with. Takes priority over skilless auth.
SKILLESS_HOMEWhere your library lives. Defaults to ~/.skilless.
SKILLESS_TRACESet to 1 to print a full stack trace when a command fails.