nikivdev/code · error
remote external CLI installs are not implemented yet for {};
Error message
remote external CLI installs are not implemented yet for {}; use `f install <path-to-cli>` for now What it means
install::run detects when the requested name matches looks_like_remote_external_cli_id — an identifier referencing a remote external CLI rather than a local path or flox package. Remote fetching of external CLIs is not implemented, so it bails with guidance to install from a local CLI file path instead.
Source
Thrown at src/install.rs:38
.map(str::trim)
.filter(|name| !name.is_empty())
{
let candidate = Path::new(name);
if candidate.exists() {
let tool = external_cli::install_external_cli_link(candidate, opts.force)?;
println!(
"Linked external CLI {} from {}",
tool.manifest.id,
tool.source_root.display()
);
if let Some(path) = &tool.registration_path {
println!("Link record: {}", path.display());
}
return Ok(());
}
if looks_like_remote_external_cli_id(name) {
bail!(
"remote external CLI installs are not implemented yet for {}; use `f install <path-to-cli>` for now",
name
);
}
}
if opts
.name
.as_deref()
.map(|name| name.trim().is_empty())
.unwrap_or(true)
{
opts.backend = InstallBackend::Flox;
opts.name = Some(prompt_flox_package()?);
}
match opts.backend {
InstallBackend::Registry => registry::install(normalize_registry_install_opts(opts)),View on GitHub (pinned to a747e741ae)
Solutions
- Download the CLI binary/file locally first, then run `f install /path/to/cli`.
- If the tool exists as a flox package, install it by its flox package name instead of the remote CLI id.
- Check whether a newer version of `f` implements remote external CLI installs.
Example fix
// before f install some-remote-cli // after f install ~/downloads/some-remote-cli
Defensive patterns
Strategy: validation
Validate before calling
// Only pass local file paths for external CLI installs
let p = std::path::Path::new(name);
if !(p.exists() && p.is_file()) && looks_like_remote_external_cli_id(name) {
eprintln!("{name} is a remote CLI id; download it locally and pass the path");
} Type guard
fn is_local_cli_path(name: &str) -> bool {
std::path::Path::new(name).is_file()
} Try / catch
match f_install(name) {
Err(e) if e.to_string().contains("not implemented yet") => {
eprintln!("download the CLI locally, then: f install <path-to-cli>");
}
r => r?,
} Prevention
- Install external CLIs from local files, not remote ids
- Check the tool version/docs for whether remote CLI installs are supported yet
- Prefer flox package names when the tool is available as a flox package
When it happens
Trigger: Calling `f install <name>` where <name> is recognized as a remote external CLI identifier (e.g. a registry-style id for a CLI binary) instead of a local file path.
Common situations: Users copy an install id from docs/registries for a CLI tool; automation passes a remote identifier; confusion between flox package names and external CLI ids.
Related errors
- gen agent list failed
- gen agent list failed: {}
- {} does not contain {}
- {} must be an external CLI source directory or {} file
- 'codanna init' exited with status {}
AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01).
Data as JSON: /api/errors/2ca2c8e1fd8ae5b2.
Report an issue: GitHub.