charmbracelet/crush · error
no providers found matching %q
Error message
no providers found matching %q
What it means
internal/cmd/models.go raises 'no providers found matching %q' when a search term was supplied to the models listing but zero providers matched the filter. Unlike the no-argument variant, this tells the user their specific query did not match any known provider.
Source
Thrown at internal/cmd/models.go:121
entry.models = append(entry.models, model.ID)
}
if len(entry.models) > 0 {
slices.Sort(entry.models)
entries[providerID] = entry
}
}
var providerIDs []string
for id := range entries {
providerIDs = append(providerIDs, id)
}
sort.Strings(providerIDs)
if len(providerIDs) == 0 && len(args) == 0 {
return fmt.Errorf("no providers found")
}
if len(providerIDs) == 0 {
return fmt.Errorf("no providers found matching %q", term)
}
if !isatty.IsTerminal(os.Stdout.Fd()) {
for _, providerID := range providerIDs {
entry := entries[providerID]
for _, modelID := range entry.models {
fmt.Println(providerID + "/" + modelID)
}
}
return nil
}
t := tree.New()
for _, providerID := range providerIDs {
entry := entries[providerID]
label := providerID
if !entry.configured {
label += " (not configured)"View on GitHub (pinned to 7944b8e522)
Solutions
- Run `crush models` without arguments to list valid provider ids
- Correct the spelling/case of the provider id in the search term
- Add the missing provider to crushrc if it is genuinely not configured
- Check the catalog is up to date (network) if the provider recently changed names
Example fix
// before crush models antropic // after crush models anthropic
Defensive patterns
Strategy: validation
Validate before calling
ids := providerIDsMatching(term)
if len(ids) == 0 {
fmt.Println("available:", strings.Join(allProviderIDs(), ", "))
} Try / catch
if err := runModels(term); err != nil {
if strings.Contains(err.Error(), "no providers found matching") {
// list valid ids and correct the term
}
return err
} Prevention
- List providers first with `crush models` before filtering
- Double-check provider id spelling and case
- Keep local provider config in sync with the catalog
When it happens
Trigger: Running `crush models <term>` where <term> does not match any provider id in the resolved catalog (empty entries filtered by term).
Common situations: Typo in provider name (`crush models antropic`); provider removed/renamed in catalog; case-sensitive mismatch; provider not configured locally so it never appears in entries.
Related errors
- no providers found
- failed to configure selected models: %w
- no providers configured, please configure at least one provi
- model configuration not found
- no providers configured - please run 'crush' to set up a pro
AI-assisted analysis of charmbracelet/crush@7944b8e522 (2026-08-29).
Data as JSON: /api/errors/4d558dc9fc195314.
Report an issue: GitHub.