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 organized with a marketplace.json file.Complete Setup Workflow
1. Create a Git RepositoryConfiguration Options
- 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)
Advanced Examples
Private Repository with Authentication:HTTP Registry Sources
HTTP-based registries provide skills through REST APIs with centralized index and blob storage.Complete Setup Workflow
1. Registry Server SetupPublishing to HTTP Registry
Package Skills:Configuration Options
Authentication Types
Personal Access Token (PAT):Advanced Examples
Multi-Environment Setup: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 Sources
ZIP URL sources provide skills through static hosting with pre-packaged ZIP archives.Complete Setup Workflow
1. Prepare Skill PackagesConfiguration Options
Hosting Examples
GitHub Pages:Marketplace.json Requirements
The marketplace.json file must includedownload_url fields pointing to ZIP files:
CI/CD Pipeline Example
GitHub Actions for Automated Publishing:Advanced Examples
Versioned Releases:- 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 Sources
Local sources provide skills from filesystem directories for development and testing.Complete Setup Workflow
1. Create Local Skills DirectoryConfiguration Options
Directory Structure
Local repositories support flexible directory structures:single-skill→ ID:single-skillcategory1/skill-a→ ID:category1/skill-acategory2/nested/skill-c→ ID:category2/nested/skill-c
Development Workflow
Rapid Iteration:Hot Reloading
Local sources support hot reloading during development:Testing and Validation
Skill Validation:Advanced Examples
Multi-Developer Setup: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)