Skip to main content

Browsing the catalog

--plugin takes a plugin slug or id — see skill plugin list. An unknown slug is an error rather than an empty page, so a typo fails loudly instead of reading as “that plugin has no skills”. --repo accepts a source id, a clone URL, owner/repo, or the repo name. list, search, and stats work logged out. Everything else in this group — including show — needs a session.

What show reports

Beyond name, description, category, and author, show surfaces the skill’s declared frontmatter and its captured bundle:

skill check

Report whether a skill needs an MCP server, and which one it resolved to.
The result tells you needs_mcp, the resolver’s verdict, and the bound MCP server. This is the fastest way to answer “will this skill actually run in my workspace?” before you build an agent around it. A skill that needs no external tool executes through the model directly rather than failing.

Bundles

A skill is a directory, not a single file. When a source is synced, JoyStream captures the whole directory — SKILL.md plus any scripts, references, and assets — as a bundle pinned to a source commit.

skill files

Lists every captured file with its path, role (scripts, references, assets, or other), size, and file mode. Executable files are marked.

skill cat

Prints one file from the bundle. Binary files aren’t printed — the command says so and points you at --json, which returns the base64 payload.

skill pull

Materializes the whole bundle to disk, preserving file modes, and prints the bundle_digest it wrote. Bundle paths are re-checked client-side, so a path that would escape --out is refused rather than written.

skill validate

Shows the Agent Skills spec-validation result for the bundle: either a clean pass, or each violation with its rule id and detail.
These four commands need a stored bundle. Skills imported before bundles existed, and the seed catalog skills, only ever captured their SKILL.md — they exit 1 with “no stored bundle”. Re-sync the source repository to capture the full directory.

Plugins

A plugin sits between a source repository and a skill: one repo can vendor several plugins, and each plugin ships a set of skills.
plugin list shows name, slug, version, visibility, skill count, repo, and id. Both the slug and the id are printed because a slug is not unique on its own — two sources vendoring the same plugin, or two commits of one source, share a slug and only the id tells them apart. Pass either to --plugin or to plugin show. plugin show adds provenance — repo, path, ref, commit — the declared MCP servers, and a table of the plugin’s skills with their bundle digests.

Visibility

The Visibility column reports who can see the plugin, derived from its source’s scope. It is not a judgement about the code. --json returns the raw trust string instead.

Source repositories

Sync a GitHub repository of skills into the catalog.

skill repo add

Adding auto-imports the repository’s skills unless you pass --no-sync. Only GitHub URLs are accepted. Private repositories work using your own connected GitHub credential.

The rest of the repo commands

repo scope takes the same --scope and repeatable --workspace options as repo add. repo list prints full source ids — they’re what repo sync, repo scope, repo remove, and skill list --repo take. A completed repo sync reports how many skills were synced, how many plugins they came from, and — when non-zero — how many entries were pruned and how many failed.

See also