Skip to main content

Sources Configuration

Sources allow you to define where FastSkill should look for skills. The registry can discover skills from sources that provide marketplace.json files.

Configuration File

Create a sources.toml file in your project root (same directory as .fastskill.yaml):
[[sources]]
name = "official-skills"
source = { type = "zip-url", base_url = "https://skills.example.com/" }

[[sources]]
name = "team-tools"
source = { type = "git", url = "https://github.com/org/team-skills.git", branch = "main" }

[[sources]]
name = "local"
source = { type = "local", path = "./local-skills" }

Source Types

Git Sources

Git sources reference a Git repository that contains skills:
[[sources]]
name = "team-skills"
source = { type = "git", url = "https://github.com/org/skills.git", branch = "main" }
Requirements:
  • Repository must contain marketplace.json at the root
  • Marketplace.json should reference skills available in the repository
Marketplace.json location: {url}/marketplace.json (fetched via raw content API)

Zip URL Sources

Zip URL sources reference a base URL where skills are available as ZIP files:
[[sources]]
name = "official-skills"
source = { type = "zip-url", base_url = "https://skills.example.com/" }
Requirements:
  • Base URL must serve marketplace.json
  • Marketplace.json should include download_url for each skill
Marketplace.json location: {base_url}/marketplace.json

Local Sources

Local sources reference skills in a local directory:
[[sources]]
name = "local-skills"
source = { type = "local", path = "./local-skills" }
Note: Local sources are not displayed in the registry web UI. They are only available for direct CLI operations.

Marketplace.json Requirement

Only Git and Zip URL sources are supported in the registry because they can provide marketplace.json files. The registry will:
  1. Fetch marketplace.json from the source URL
  2. Cache the response for 5 minutes (TTL)
  3. Display skills from the marketplace in the web UI
Sources without marketplace.json will not appear in the registry.

Managing Sources

Adding a Source

Add a new source to sources.toml:
[[sources]]
name = "new-source"
source = { type = "git", url = "https://github.com/user/repo.git" }

Removing a Source

Remove the source entry from sources.toml or delete the file entry.

Best Practices

  1. Use descriptive names: Source names should clearly identify the source
  2. Version control: Keep sources.toml in version control
  3. Update marketplace.json: Regularly regenerate marketplace.json when skills change
  4. HTTPS: Use HTTPS URLs for security
  5. Caching: Be aware that marketplace.json is cached for 5 minutes

Troubleshooting

Source Not Appearing in Registry

  • Verify marketplace.json exists at the expected URL
  • Check that the source type is git or zip-url (not local)
  • Ensure the URL is accessible and returns valid JSON
  • Check server logs for fetch errors

Marketplace.json Not Found

  • Verify the URL is correct
  • Ensure marketplace.json is at the root of the repository (for Git sources)
  • Check that the base URL is correct (for Zip URL sources)

See Also