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.
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
scripts, references, assets, or other), size, and file mode. Executable files are marked.
skill cat
--json, which returns the base64 payload.
skill pull
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
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
- Skills and MCP servers — the model.
- Add skill and MCP repositories — walkthrough.
jstm session— pin a skill to a builder session.