registry Command
Manage skill repositories and generatemarketplace.json files for registry discovery.
Note: The repository command has been consolidated into the registry command. Use fastskill registry instead.
Usage
Subcommands
list-skills
List skills from HTTP registry installations. This command calls the configured registry’s HTTP API endpoint to discover available skills.--scope <SCOPE>: Filter skills by scope (exact match)--all-versions: Include all versions for each skill (default: latest only)--include-pre-release: Include pre-release versions (default: exclude)--json: Output in JSON format (mutually exclusive with--grid)--grid: Output in grid table format (default, mutually exclusive with--json)
- Grid (default): Human-readable table with columns: scope, name, description (truncated to 50 chars), latest version (or “version” when
--all-versionsis used), published date - JSON: Machine-readable array with fields: id, scope, name, description, latest_version, published_at, and optionally versions array
GET /api/registry/index/skills on the configured registry’s index_url with query parameters:
scope: Scope filter (from--scopeflag)all_versions: Boolean (from--all-versionsflag)include_pre_release: Boolean (from--include-pre-releaseflag)
- If registry index path is not configured: Returns clear error message
- If registry is unreachable: Returns connection error
- If authentication fails (401/403): Returns clear error indicating auth required for private scopes
- Empty registry: Returns empty grid/array with success status
create
Generate amarketplace.json file from a directory containing skills.
Options
| Option | Description | Default |
|---|---|---|
--path <PATH> | Directory to scan for skills | . (current directory) |
--output <PATH> | Output file path | .claude-plugin/marketplace.json in scanned directory |
--base-url <URL> | Base URL for skill download links | None |
--name <NAME> | Repository name (required, or inferred from directory name) | Directory name |
--owner-name <NAME> | Owner name (optional) | None |
--owner-email <EMAIL> | Owner email (optional) | None |
--description <TEXT> | Repository description (optional) | None |
--version <VERSION> | Repository version (optional) | None |
Examples
Generate from Current Directory
Scan the current directory and createmarketplace.json:
Scan Specific Directory
Generate marketplace.json from a specific skills directory:Custom Output Location
Specify a custom output file:Include Base URL
Add base URL for download links:Generate with Metadata
Generate marketplace.json with owner and metadata information:.claude-plugin/marketplace.json (unless --output is specified).
How It Works
Therepository create command:
- Scans for SKILL.md files: Recursively searches the specified directory for
SKILL.mdfiles - Reads skill-project.toml: If present, extracts all metadata fields from
skill-project.toml(takes priority) - Extracts metadata from SKILL.md: Reads YAML frontmatter as fallback for missing fields
- Applies priority: Uses skill-project.toml values for all fields, falls back to SKILL.md frontmatter
- Generates marketplace.json: Creates a JSON file with all discovered skills
Marketplace.json Format
The command generates marketplace.json in Claude Code standard format:Metadata Priority
When generatingmarketplace.json, the command uses this priority for all metadata fields (name, description, version, author, tags, capabilities, download_url):
- skill-project.toml
[metadata]section (highest priority)- Fields:
id(required, no slashes),version(required),description,author,tags,capabilities,download_url - All fields from skill-project.toml take precedence
- The
idfield must not contain slashes or scope information
- Fields:
- SKILL.md frontmatter (fallback)
- Used for:
name(display only),description,author,tags,capabilities namein SKILL.md is for display purposes only, not for package identification
- Used for:
skill-project.toml values. The id field in skill-project.toml is mandatory and must not contain slashes. Skill names for display come from SKILL.md frontmatter only.
Directory Structure
The command expects skills in this structure:Publishing to Registry
After generatingmarketplace.json, you can:
- Host it on a web server: Place
marketplace.jsonat the root of your skills repository - Configure as repository: Add your repository to
skill-project.toml:
- Access via registry: Skills will appear in the registry web UI when you run
fastskill serve --enable-registry