CLI reference
The Skillibary CLI is a thin client over the registry HTTP API. It does three things: fetch a skill into a local directory, validate a local SKILL.md, and hand off a local file to the web submit form. It deliberately does not authenticate or publish directly — for now that path stays in the browser, which already has a working GitHub login.
Install
npm install -g skillibary # or, one-shot npx skillibary <command>
Both forms hit the same code. The global install is convenient if you write skills regularly; npx is fine for the occasional invocation.
install
Fetches a verified skill from the registry and writes it to ./skills/<name>/SKILL.md in your current working directory. The command refuses to overwrite an existing file, so re-running it is safe.
skillibary install pdf-extract # Fetching pdf-extract from https://skillibary.com… # Installed pdf-extract@1.2.0 → /Users/you/project/skills/pdf-extract/SKILL.md # Extract text, tables, and metadata from PDF documents # tags: documents, parsing, pdf
validate
Runs the full server-side validation locally. Useful before submitting, and even more useful when you are editing an existing skill and want to make sure your changes will pass auto-verification on the next round.
skillibary validate ./skills/my-skill/SKILL.md # /Users/you/project/skills/my-skill/SKILL.md # ✓ Valid SKILL.md (my-skill@1.0.0)
On failure, the validator points at the exact line and exits with code 1, so it composes cleanly with shell pipelines and pre-commit hooks:
skillibary validate ./broken.md # /Users/you/project/broken.md:4 — tags must be a JSON-style array, e.g. [docs, pdf] # (exit 1)
It catches:
- Missing or malformed YAML front-matter block
- Missing required fields (
name,description) - Name slug regex violations
- Length cap violations (description, content, tags)
- Tag regex violations
It also emits a warning when the body has no ## Description section, since the verifier scores those skills lower in practice.
publish
Validates the file locally, then opens the registry submit form in your default browser, pre-filled with the file contents. You authenticate with GitHub once in the browser and click Submit.
skillibary publish ./skills/my-skill/SKILL.md # Opening the registry submit form pre-filled with my-skill… # If your browser doesn't open, visit: # https://skillibary.com/submit?prefill=eyJuYW1lIjoibXktc2tpbGwi...
Pointing at a different registry
By default the CLI talks to https://skillibary.com. You can override this for self-hosted instances or local development:
# point at a local dev server SKILLIBARY_REGISTRY=http://localhost:3000 skillibary install pdf-extract # or via flag skillibary install pdf-extract --registry http://localhost:3000
The flag takes precedence over the env var, which takes precedence over the default. Set the env var in your shell profile if you are always working against a self-hosted instance.
Flags & environment
| Flag / env | Effect |
|---|---|
--registry <url> | Registry base URL. Overrides SKILLIBARY_REGISTRY. |
SKILLIBARY_REGISTRY | Default registry URL when no flag is given. |
--help, -h | Print the usage summary. |
--version, -v | Print the CLI version. |
See also: SKILL.md format, Install in your agent.