Skip to main content

Overview

Discovery commands help you find, index, and manage skills in your FastSkill ecosystem. These commands provide semantic search, vector indexing, and repository management capabilities.
Command Architecture:
  • Repository Management: Use fastskill repos for all repository operations (add, remove, list, test, refresh) and catalog browsing (skills, show, versions)
  • Skill Discovery: Use fastskill search (remote catalogs by default; add --local for installed skills and embeddings)
For detailed documentation on specific commands, see the dedicated command pages linked below.

Command Reference

Query skills. Default scope is remote (catalog APIs). Use --local to search installed skills; local embedding search uses OpenAI when configured and respects --embedding.
See search Command for complete documentation with output formats.
What it does (local scope):
  • Optionally embeds the query and searches the local vector index when --embedding is not false
  • Uses the skills directory from skill-project.toml / discovery unless --skills-dir is set
Options:
  • <QUERY>: Search string
  • --local: Search installed skills only
  • --remote: Explicit remote search (same as default when --repository is not used alone)
  • --repository <NAME>: Limit remote search to one configured repository
  • -l, --limit <N>: Max results (default: 10)
  • -f, --format <FORMAT>: table, json, grid, or xml (default: table)
  • --json: Shorthand for --format json
  • --embedding <true|false|auto>: Local only; ignored for remote search
  • --skills-dir <PATH>: Override skills directory (local search / service bootstrap)
Output:
  • table (default): Human-readable rows
  • json / xml / grid: Structured or machine-readable layouts

fastskill reindex

Rebuild the vector search index by scanning all installed skills. Updates embeddings and similarity database.
See reindex Command for complete documentation with concurrency options.
What it does:
  • Scans the configured skills directory for installed skills
  • Generates embeddings for SKILL.md content when embedding search is enabled
  • Stores vectors in the local index database used by fastskill search --local
  • Tracks file hashes (SHA256) for change detection
  • Skips unchanged files unless --force is set
Options:
  • --skills-dir <PATH>: Override skills directory for this run
  • --force: Rebuild all embeddings (ignore hash cache)
  • --max-concurrent <N>: Concurrent embedding requests (default: 5)
  • --progress / --no-progress: Control progress UI
When to use:
  • After installing new skills
  • After updating existing skills
  • When search results are stale or incomplete
  • When skill content has changed

fastskill repos

Manage skill repositories for discovering and installing skills. Supports multiple repository types with authentication and priority-based resolution. This is the primary command for repository management and catalog browsing.
See repos Command for complete documentation with subcommands and authentication.
What it does:
  • Manages repository configuration in skill-project.toml [tool.fastskill.repositories]
  • Supports multiple repository types: git-marketplace, http-registry, zip-url, local
  • Handles authentication: PAT, SSH key, SSH, Basic Auth, API Key
  • Implements priority-based conflict resolution (lower priority = higher precedence)
Repository Types: Git Marketplace:
HTTP Registry:
ZIP URL:
Local:
Authentication Types:
  • pat: Personal Access Token (for git repositories)
  • ssh-key: SSH key path
  • ssh: SSH connection
  • basic: Basic authentication (username/password)
  • api-key: API key (for HTTP registries)
Priority Resolution: When skills are available in multiple repositories, priority determines the order:
  • Lower priority numbers are checked first
  • Default priority: 0
  • Higher priority values are checked later
Legacy commands: sources (alias source) and registry are hidden from fastskill --help but still exist for compatibility. Prefer fastskill repos for repository and catalog operations.

Search and Reindex Workflow

Initial Setup

After Updates

Adding New Skills

Performance Considerations

Reindexing

File Hash Detection:
  • Files are hashed with SHA256 to detect changes
  • Unchanged files are skipped during reindex
  • Use --force to bypass hash cache
Concurrency:
  • Embedding API requests are concurrent (default: 10)
  • Use --max-concurrent to control API rate limiting
  • Lower values reduce API rate limit errors
  • Higher values speed up reindexing

Searching

Semantic Search:
  • Uses cosine similarity for ranking
  • Embeddings are cached in SQLite database
  • Search is O(log n) with vector index
Query Tips:
  • Use natural language queries (similar to SKILL.md descriptions)
  • Include relevant domain terms
  • Try different query phrasings for better results

Troubleshooting

Index not built: Make sure you’ve run fastskill reindex after installing skills.
Query too specific: Try broader terms or different phrasing.
Skills not installed: Verify skills are in .claude/skills/ with fastskill list.
OpenAI API key not set: Set OPENAI_API_KEY environment variable.
API rate limit errors: Reduce concurrent requests with --max-concurrent 3.
Network errors: Check internet connectivity and OpenAI API status.
Invalid repository name: Check repository name with fastskill repos list.
Repository URL incorrect: Verify URL is accessible with fastskill repos test <name>.
Authentication failed: Verify authentication type and credentials with fastskill repos info <name>.

Best Practices

1

Reindex after changes

Always run fastskill reindex after installing, updating, or modifying skills to keep search index current.
2

Use natural language queries

Search queries work best with natural language that matches skill descriptions in SKILL.md files.
3

Organize repositories by priority

Set lower priority numbers for primary repositories to ensure preferred skills are discovered first.
4

Test repositories after configuration

Use fastskill repos test <name> to verify repositories are accessible before using them.
5

Control API concurrency for reindexing

Use --max-concurrent to balance speed and API rate limits. Start with default and adjust based on rate limit errors.

See Also