Install one skill from the registry
Name the skill the way the registry prints it:--yes. The CLI writes no local files, runs no
scripts, and interprets nothing beyond checking that each path is a safe
relative path and that the directory carries a SKILL.md. It packs the exact
bytes it fetched into an Agent Skills directory archive and posts it to
POST /v1/skills/import.
On success it prints the created Skill and the line to paste into an agent’s
skills array:
--json writes JSON and only JSON: without --yes it emits the manifest as one
document with "imported": false, and with --yes it emits the created Skill.
Either way stdout carries exactly one document a script can parse.
This form is a pinned copy. The Skill does not change when the registry entry
changes; run the command again to import the newer content as a new version.
Track a repository instead
When you author skills in a Git repository, track the repository once and sync it whenever it changes:github Connection:
the command creates the repository’s filesystem tree
through it, creates a SkillSource over that tree, and syncs:
--connection on a re-sync is refused rather than quietly ignored.
A sync reports one row per directory it saw.
created, updated, and
unchanged publish a Skill; invalid names the reason a directory was not
readable; missing marks a directory this source published before and that the
current commit no longer contains. A missing directory is never deleted.
The two forms take separate options. An option belonging to the other form is
refused rather than accepted and ignored, so --yes never reads as a
confirmation that did not happen:
Which form to use
Search
checkfu skill search does not exist. skills.sh serves search outside its
documented registry surface and marks that endpoint legacy, so browse
skills.sh directly and install by name.