jdx/mise · error
tool not found in registry or installed backend catalogs
Error message
tool {} not found in registry or installed backend catalogs What it means
`mise search <name>` looks up tools matching a name in the registry and in catalogs of installed backends. If `get_matches` returns no rows, display_table bails because there is nothing to render. It means no registry shorthand and no installed backend knows this tool name.
Solutions
- Check spelling and try a partial name
- Run `mise registry` to list valid registry shorthands
- Install via explicit backend syntax (mise use aqua:owner/repo or github:owner/repo) instead of relying on the registry
- Add the tool to a custom registry file if it is used widely enough
Example fix
// before mise search mytool # error: not found in registry // after mise use aqua:owner/mytool # explicit backend, no registry shorthand needed
Defensive patterns
Strategy: validation
Validate before calling
mise registry | grep -qw "$tool" && mise search "$tool" || echo "not in registry; use mise use aqua:owner/$tool"
Prevention
- Check `mise registry` before searching or scripting installs
- Use explicit backend syntax (aqua:/github:/cargo:) for tools not in the registry
When it happens
Trigger: Running `mise search` with a misspelled or unregistered tool name; the tool exists only via an explicit backend (e.g. aqua:owner/repo) and is not installed, so no catalog lists it; registry entry removed or renamed.
Common situations: Typos in tool names; searching for internal/company tools that were never added to the curated registry; tools installed under a different shorthand than searched.
Understand the failure class
Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.
Related errors
- tool not found in registry
- is in the mise tool registry but none of its backends ( )…
- not found in mise tool registry Did you mean?
- a branch name is required
- a glob is required
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/ebdf67ea0a218c54.
Report an issue: GitHub.
Appendix: source
Thrown at src/cli/search.rs:128
Err(err) => {
if err.kind() == std::io::ErrorKind::Interrupted {
// user interrupted, exit gracefully
Ok(())
} else {
Err(eyre!(err))
}
}
}
}
fn display_table(&self, catalog: &[ToolCatalogEntry]) -> Result<()> {
let tools = self
.get_matches(catalog)
.into_iter()
.map(|(short, description)| vec![short, description])
.collect_vec();
if tools.is_empty() {
bail!(
"tool {} not found in registry or installed backend catalogs",
self.name.as_ref().unwrap()
);
}
let mut table = MiseTable::new(self.no_header, &["Tool", "Description"]);
for row in tools {
table.add_row(row);
}
table.print()
}
fn get_matches(&self, catalog: &[ToolCatalogEntry]) -> Vec<(String, String)> {
let name = self.name.as_deref().unwrap_or("");
let mut fuzzy_matcher = FuzzyMatcher::default();
let fuzzy_pattern = FuzzyPattern::new(&name.to_lowercase());
let mut matches = catalog
.iter()View on GitHub (pinned to 533346cc37)