Skills
Pull your workspace skills to disk as Agent Skills folders, push folders back, and find, add or update skills from a GitHub repository.
standards skills moves skills between your workspace and folders on disk, and finds and installs skills from a GitHub repository. A skill is a folder in the Agent Skills format: a SKILL.md file and the scripts/, references/ and assets/ it uses. The same folder works in Claude Code and any other tool that reads that format. See Skills and memories for what each part of a skill means.
Commands
| Command | What it does |
|---|---|
standards skills pull [dir] [--name <name>…] | Writes each skill as a folder <dir>/<name>/. dir defaults to the current directory. Without --name it pulls every skill you can open; repeat --name to choose. |
standards skills push <dir>… [--replace] | Imports folders. A dir holding a SKILL.md is one skill; any other directory is read as a directory of skill folders. |
standards skills search <query> [--community] [--limit <n>] | Finds skills to add in the official catalogue, or on skills.sh with --community. Answers 20 results unless --limit asks for another number, up to 50. |
standards skills preview <source> | Shows what a source would install, without installing anything. |
standards skills add <source> | Installs a skill from a GitHub repository. source is owner/repo@skill, or owner/repo@skill#ref for a tag, branch or commit. |
standards skills update <name> [--discard-changes] | Brings an installed catalogue skill to the latest version of its source. |
standards skills refresh | Checks your private catalogue skills against their sources. |
Pull
standards skills pull ./skills --name invoice-followup --name quote-followupEach skill is written as <dir>/<name>/SKILL.md, with the frontmatter built from the skill's attributes, and its other files at their paths. Text files are written as text; any other file is downloaded. Pull never deletes a local file: a file you removed from the skill stays on disk until you delete it. A sub-skill is its own folder, and its metadata names its parent under standards-parent.
Before the first write, pull checks every folder name and file path the server sent. One that is not a single folder name, or a path that would leave <dir>, stops the command with nothing written.
Push
standards skills push ./skills/invoice-followup
standards skills push ./skills --replaceThe folder's name is the skill's name. Push reads the folder, uploads files that are not text, and sends everything in one import. The CLI judges nothing itself: the server checks each folder (name, description, frontmatter, paths, 500 files at most) and answers every problem at once. The import is all or nothing: if any folder is invalid, no skill is created or changed.
Push skips hidden files and folders (.git, .env, .DS_Store) and symbolic links, and prints each one it skipped. A link could point anywhere on your machine, so it is never followed. Hidden files are not part of a pushed folder, so --replace keeps the ones the skill's drive already holds.
| Option | Effect |
|---|---|
| none | A name that a skill you can open already holds is refused. |
--replace | Makes the skill equal to its folder: its attributes are rewritten and its drive becomes exactly the folder's files, so a file missing from the folder is removed from the skill, and so is a drive folder that leaves empty (scripts/, references/ and assets/ stay). The skill moves under the parent the folder's standards-parent names, or to the top level when there is none. Every such move, and any other skill that shares the name, is printed as a warning. |
The result lists the skills created, the skills replaced and the warnings.
Replace overwrites
--replace discards what the workspace's copy held that the folder does not. Pull first if the workspace copy may have changed.
Search
standards skills search invoices
standards skills search "invoice reminders" --community --limit 5Search asks the official catalogue by default. --community searches skills.sh instead, so your query leaves Standards only when you pass it. Each row gives the skill's source, its name, its state (available, installed, name_taken or unavailable) and, when the server gives one, the reason it cannot be added. Official rows carry a description, community rows the number of installs. Pass a row's source to preview or add.
Preview
standards skills preview acme/skills@invoice-followupPreview checks the source's spelling, then reads the skill without installing it. The output gives the source pinned to the commit it found, what the skill would follow, its name and description, its SKILL.md, its files and their sizes, whether it holds scripts, and who it would be visible to.
Add
standards skills add acme/skills@invoice-followup
standards skills add acme/skills@invoice-followup#v2Add checks the source's spelling before sending anything, asks the server to read the skill and pin it to the exact commit it found, then installs that pinned source: what lands is what was read. The output gives the skill's name, the pinned source, what the skill follows (stable, default or pinned) and its audience.
A skill added this way from a third-party repository is private to the person who added it. Nobody else in the workspace sees it until they choose to share it. Only GitHub sources are accepted.
Update
standards skills update invoice-followup
standards skills update invoice-followup --discard-changesUpdate fetches the latest version of the skill's source and rewrites the skill. If the workspace edited the skill since it was installed, update is refused and nothing changes; --discard-changes confirms the rewrite.
Discard changes overwrites
--discard-changes loses the workspace's edits to the skill. Pull it first if you want to keep them.
Refresh
standards skills refreshRefresh checks the private catalogue skills you installed against their sources. A newer version is offered, not installed: standards skills update <name> installs it. The output lists the skills updated (an interrupted update that refresh finished), the skills with a version offered, and the number of skills it failed to check. A skill that fails is left as it stands.
Permissions
Pull needs permission to read the skill object and push to create it; a replaced skill also needs permission to update it. Search and preview need permission to read it. Add needs permission to read, create and update it, and update and refresh need permission to update it. Over HTTP the commands are POST /skills/export, POST /skills/import, POST /skills/catalog/search, POST /skills/catalog/preview, POST /skills/catalog/install, POST /skills/catalog/update and POST /skills/catalog/refresh.
Next steps
- Skills and memories: what a skill is and how the agent loads it.
- How to use the CLI: profiles, global flags and exit codes.
- Book a demo