Repository Configuration
Repositories allow you to define where FastSkill should look for skills. FastSkill supports multiple repository types, all configured through a unified interface. Important: Repositories are used for skill discovery only. They define where skills come FROM. The storage location (where skills are installed when you runfastskill add) is configured separately in .fastskill/config.yaml via the skills_directory setting.
Configuration File
Repository configuration is stored in the[tool.fastskill.repositories] section of skill-project.toml at your project root:
Source Types
Git Marketplace Sources
Git marketplace sources reference a Git repository that contains skills:- Repository must contain
marketplace.jsonin one of these locations:- Claude Code standard:
.claude-plugin/marketplace.json(recommended) - Root location:
marketplace.json(legacy support)
- Claude Code standard:
- Marketplace.json should reference skills available in the repository
{url}/.claude-plugin/marketplace.json(Claude Code standard - tried first){url}/marketplace.json(root location - fallback) Both are fetched via raw content API (e.g.,raw.githubusercontent.com)
http-registry
HTTP-based registries with HTTP-served index and S3 blob storage. The index uses a flat layout structure ({scope}/{skill-name}) and is served directly via HTTP endpoints:
fastskill registry list-skills to list skills from HTTP registries. The command calls GET /api/registry/index/skills on the configured registry’s index_url.
The registry server serves index files at /index/{skill_id} where skill_id follows the format {scope}/{skill-name} (e.g., dev-user/web-scraper).
zip-url
Static hosting where skills are distributed as ZIP files:- Base URL must serve
marketplace.jsonin one of these locations:- Claude Code standard:
.claude-plugin/marketplace.json(recommended) - Root location:
marketplace.json(legacy support)
- Claude Code standard:
- Marketplace.json should include
download_urlfor each skill
{base_url}/.claude-plugin/marketplace.json(Claude Code standard - tried first){base_url}/marketplace.json(root location - fallback)
local
Local filesystem directories for development and testing:Marketplace.json Requirement
Only Git and Zip URL sources are supported in the registry because they can providemarketplace.json files. The registry will:
- Fetch
marketplace.jsonfrom the source URL - Cache the response for 5 minutes (TTL)
- Display skills from the marketplace in the web UI
marketplace.json will not appear in the registry.
Managing Sources
Adding a Repository
Add a new repository using the CLI:skill-project.toml directly:
Removing a Repository
Remove the repository usingfastskill registry remove <name> or edit skill-project.toml directly.
Best Practices
- Use descriptive names: Repository names should clearly identify the repository
- Version control: Keep
skill-project.tomlin version control (includes repository configuration) - Update marketplace.json: Regularly regenerate marketplace.json when skills change
- HTTPS: Use HTTPS URLs for security
- Caching: Be aware that marketplace.json is cached for 5 minutes
- Priority ordering: Use priority values to control repository search order
Troubleshooting
Source Not Appearing in Registry
- Verify
marketplace.jsonexists at the expected URL - Check that the source type is
gitorzip-url(notlocal) - 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.jsonis at the root of the repository (for Git sources) - Check that the base URL is correct (for Zip URL sources)