Skillibary

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

bash
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.

bash
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.

bash
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:

bash
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.

bash
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:

bash
# 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 / envEffect
--registry <url>Registry base URL. Overrides SKILLIBARY_REGISTRY.
SKILLIBARY_REGISTRYDefault registry URL when no flag is given.
--help, -hPrint the usage summary.
--version, -vPrint the CLI version.

See also: SKILL.md format, Install in your agent.