zeroclaw-labs/zeroclaw · warning · DiagItem
No CLI tools found in PATH
Error message
No CLI tools found in PATH
What it means
A `zeroclaw doctor` warning from `check_cli_tools`: `zeroclaw_runtime::tools::discover_cli_tools(&[], &[])` found zero supported CLI tools on PATH. ZeroClaw lets agents shell out to discovered tools (jq, git, curl, etc.); with none available, tool-augmented workflows silently lose that surface. The daemon itself still runs.
Source
Thrown at crates/zeroclaw-runtime/src/doctor/mod.rs:1781
crate::i18n::get_required_cli_string_with_args(
"cli-doctor-systemd-linger-disabled",
&[("user", user.as_str())],
),
),
crate::service::SystemdUserLinger::Unknown => DiagItem::warn(
cat,
crate::i18n::get_required_cli_string("cli-doctor-systemd-linger-unknown"),
),
}
}
fn check_cli_tools(items: &mut Vec<DiagItem>) {
let cat = "cli-tools";
let discovered = crate::tools::discover_cli_tools(&[], &[]);
if discovered.is_empty() {
items.push(DiagItem::warn(cat, "No CLI tools found in PATH"));
} else {
for cli in &discovered {
let version_info = cli
.version
.as_deref()
.map(|v| truncate_for_display(v, COMMAND_VERSION_PREVIEW_CHARS))
.unwrap_or_else(|| "unknown version".to_string());
items.push(DiagItem::ok(
cat,
format!("{} ({}) — {}", cli.name, cli.category, version_info),
));
}
items.push(DiagItem::ok(
cat,
format!("{} CLI tools discovered", discovered.len()),
));
}
}View on GitHub (pinned to 88bb9c8533)
Solutions
- Install at least one supported CLI tool into the image/host (e.g. `jq`, `git`, `curl`).
- If tools are installed but not found, fix PATH for the context doctor runs in (unit `Environment=PATH=...`, container ENV).
- For API-only setups with no shelling-out intended, accept the warning.
Example fix
# before: doctor -> "No CLI tools found in PATH" # after (Debian/Ubuntu image) apt-get update && apt-get install -y --no-install-recommends jq git curl
Defensive patterns
Strategy: fallback
Validate before calling
if zeroclaw_runtime::tools::discover_cli_tools(&[], &[]).is_empty() {
eprintln!("no CLI tools on PATH — tool-based agent skills will be unavailable");
} Prevention
- Bake at least jq/git/curl into deployment images by default.
- Set an explicit PATH in service units so discovery sees installed tools.
When it happens
Trigger: Running `zeroclaw doctor` in an environment where none of the tools zeroclaw knows how to discover are on PATH — minimal containers, hardened server images, or a systemd unit with a stripped PATH.
Common situations: Deployment images pruned to the minimum; PATH not including `/usr/local/bin` in service contexts; developers relying purely on provider APIs and not noticing the missing tooling.
Related errors
- systemd user lingering could not be checked with loginctl
- {cmd} found but returned non-zero
- {cmd} not found in PATH
- grok_cli working_directory must be an absolute path
- grok_cli working_directory must identify a directory
AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23).
Data as JSON: /api/errors/ba14afbce40df62e.
Report an issue: GitHub.