Skip to main content

repository Command

Manage skill repositories and generate marketplace.json files for registry discovery.

Usage

fastskill repository <SUBCOMMAND>

Subcommands

create

Generate a marketplace.json file from a directory containing skills.
fastskill repository create [OPTIONS]

Options

OptionDescriptionDefault
--path <PATH>Directory to scan for skills. (current directory)
--output <PATH>Output file pathmarketplace.json in scanned directory
--base-url <URL>Base URL for skill download linksNone

Examples

Generate from Current Directory

Scan the current directory and create marketplace.json:
fastskill repository create

Scan Specific Directory

Generate marketplace.json from a specific skills directory:
fastskill repository create --path ./my-skills

Custom Output Location

Specify a custom output file:
fastskill repository create --path ./skills --output ./dist/marketplace.json

Include Base URL

Add base URL for download links:
fastskill repository create \
  --path ./skills \
  --base-url https://skills.example.com/

How It Works

The repository create command:
  1. Scans for SKILL.md files: Recursively searches the specified directory for SKILL.md files
  2. Extracts metadata: Reads YAML frontmatter from each SKILL.md file
  3. Checks skill-info.toml: If present, uses version from skill-info.toml (takes precedence)
  4. Generates marketplace.json: Creates a JSON file with all discovered skills

Marketplace.json Format

The generated file follows this structure:
{
  "version": "1.0",
  "skills": [
    {
      "id": "skill-id",
      "name": "Skill Name",
      "description": "Skill description",
      "version": "1.0.0",
      "author": "Author Name",
      "tags": ["tag1", "tag2"],
      "capabilities": ["capability1"],
      "download_url": "https://example.com/skills/skill-id.zip"
    }
  ]
}

Version Priority

When determining a skill’s version, the command uses this priority:
  1. skill-info.toml [metadata] version (highest priority)
  2. SKILL.md frontmatter version field
  3. “unknown” if neither is found

Directory Structure

The command expects skills in this structure:
skills/
├── skill1/
│   ├── SKILL.md
│   └── skill-info.toml (optional)
├── skill2/
│   ├── SKILL.md
│   └── skill-info.toml (optional)
└── ...

Publishing to Registry

After generating marketplace.json, you can:
  1. Host it on a web server: Place marketplace.json at the root of your skills repository
  2. Configure as source: Add your repository to sources.toml:
[[sources]]
name = "my-skills"
source = { type = "git", url = "https://github.com/user/repo.git" }
  1. Access via registry: Skills will appear in the registry web UI when you run fastskill serve --enable-registry

See Also