ipfs/kubo · error
%s not installed
Error message
%s not installed
What it means
An 'external' ipfs subcommand (e.g. ipfs-companion-installed tools like ipfs-bitswap-monitor) was invoked, but exec.LookPath could not find the corresponding ipfs-<subcommand> binary on PATH. %s is the missing binary name; kubo only ships the dispatcher, the tool itself must be installed separately.
Source
Thrown at core/commands/external.go:36
},
External: true,
NoRemote: true,
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env cmds.Environment) error {
binname := strings.Join(append([]string{"ipfs"}, req.Path...), "-")
_, err := exec.LookPath(binname)
if err != nil {
// special case for '--help' on uninstalled binaries.
for _, arg := range req.Arguments {
if arg == "--help" || arg == "-h" {
buf := new(bytes.Buffer)
fmt.Fprintf(buf, "%s is an 'external' command.\n", binname)
fmt.Fprintf(buf, "It does not currently appear to be installed.\n")
fmt.Fprintf(buf, "%s\n", instructions)
return res.Emit(buf)
}
}
return fmt.Errorf("%s not installed", binname)
}
r, w := io.Pipe()
cmd := exec.Command(binname, req.Arguments...)
// TODO: make commands lib be able to pass stdin through daemon
// cmd.Stdin = req.Stdin()
cmd.Stdin = io.LimitReader(nil, 0)
cmd.Stdout = w
cmd.Stderr = w
// setup env of child program
osenv := os.Environ()
cmd.Env = osenv
err = cmd.Start()View on GitHub (pinned to 329838acdf)
Solutions
- Install the external tool so that ipfs-<name> is on PATH
- Check PATH includes the install location (e.g. GOBIN)
- Run 'ipfs <name> --help' to see the install instructions embedded in the error output
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at core/commands/external.go:36 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ipfs/kubo@329838acdf (2026-09-03).
Data as JSON: /api/errors/bfa3e00483ea38fa.
Report an issue: GitHub.