CLI

The package is @skst/skill; the command is skst. Run it with npx or install it.

npx @skst/skill add alice/code-reviewer    # one-off
npm i -g @skst/skill && skst add alice/code-reviewer

add installs into the shared .agents/skills/ directory (plus each detected agent's own skills dir — Claude Code, Cursor, Codex, …) so any agent can use what you install.

Commands

skst add <owner>/<skill>     # install a skill            (aliases: a, install, i)
skst find [query]            # search the registry        (aliases: f, search, s)
skst top                     # most-installed skills       (--trending / --hot / --json)
skst list                    # list installed skills       (alias: ls; --json)
skst update [skill…]         # update installed skills     (aliases: check, upgrade)
skst remove [skill…]         # uninstall                   (aliases: rm, r)
skst use <owner>/<skill>     # print a skill's prompt, no install
skst init [name]             # scaffold a new SKILL.md
skst publish [owner/skill]   # publish the current skill directory
skst versions <owner>/<skill># list a skill's versions
skst unpublish <owner>/<skill>
skst experimental_sync       # sync skills from node_modules (-y to skip prompts)
skst login | logout | whoami # auth

Run skst <command> --help for the full flag list.

Syncing skills from node_modules

Some skills ship inside npm packages. skst experimental_sync scans your node_modules (scoped and top-level) for any SKILL.md, then installs each one into the standard .agents/skills/ directory (and every detected agent's skills dir), recording hashes in the lockfile so re-runs only update what changed:

skst experimental_sync       # discover + sync, with a confirmation prompt
skst experimental_sync -y    # sync without prompts (CI / scripts)

It's marked experimental_ because the npm-package-as-skill convention isn't part of the agentskills.io standard yet — the flag name may change.

Where add installs from

The source format decides where a skill comes from:

You typeResolves to
owner/skillthe Skill Studio registry artifact (default)
owner/skill --remote=githubthe same name, but from GitHub instead
github.com/owner/repoa GitHub repo (blob fast-path, else clone)
./path or /abs/patha local directory

Bare owner/skill goes to the registry first; if it isn't published there, the CLI tells you to pass a github.com URL or add --remote=github rather than silently cloning.

skst add alice/code-reviewer                 # registry
skst add alice/code-reviewer --remote=github # force GitHub
skst add github.com/you/skills-repo          # a repo (public, or private via gh/git)

You can pin a ref and pick a skill: owner/repo#branch@skill-name.

Common add flags

-g, --global         # install for all projects (~/) instead of this project
-a, --agent <a…>     # target specific agents (space-separated, or '*')
-s, --skill <s…>     # pick skills when a repo has several (or '*')
-y, --yes            # skip prompts
-l, --list           # list a source's skills without installing
    --copy           # copy files instead of symlinking
    --dry-run        # resolve + print would-be writes, touch nothing

Preview without installing

--dry-run (or SKST_DRY=1) resolves a skill and prints exactly what would be written — every target path and the lockfile — without touching disk:

skst add alice/code-reviewer --dry-run

Signing in

skst login opens a browser device flow — approve, and you're in. No token to copy.

skst login --no-browser  # print the verification URL + code instead of opening a browser
skst login --paste       # paste an access key from skst.dev/settings/tokens
skst login --token KEY   # non-interactive / CI (or set SKILL_STUDIO_TOKEN)
skst whoami              # show the signed-in user
skst logout             # clear credentials

Private GitHub repos

skst add github.com/you/private-skills works when gh or git is authed — private repos use your existing GitHub credentials.

Environment variables

SKILLS_API_URL       # point every command (search, API, downloads) at another instance
SKILL_STUDIO_TOKEN   # auth token for CI / headless (skips interactive login)
SKST_DRY=1           # same as --dry-run

So you can run the CLI against a local dev server or a self-hosted registry:

SKILLS_API_URL=http://localhost:9797 skst add alice/code-reviewer --dry-run
skst login --url http://localhost:9797   # ...or persist it once