tinyhumansai/openhuman · error
$SHELL not set
Error message
$SHELL not set
What it means
Doctor environment check: the SHELL environment variable is empty or unset. The agent's shell tool uses $SHELL to pick the interactive shell for command execution; with it missing, shell fallbacks degrade to a default (typically sh), which can change globbing, profile loading and script behaviour inside agent commands. Common in services/launchers that scrub the environment.
Source
Thrown at src/openhuman/platform/doctor/core.rs:719
cat,
format!("{channel_count} channels, {stale} stale"),
));
}
}
}
// ── Environment checks ───────────────────────────────────────────
fn check_environment(items: &mut Vec<DiagnosticItem>) {
let cat = "environment";
// git
check_command_available("git", &["--version"], cat, items);
// Shell
let shell = std::env::var("SHELL").unwrap_or_default();
if shell.is_empty() {
items.push(DiagnosticItem::warn(cat, "$SHELL not set"));
} else {
items.push(DiagnosticItem::ok(cat, format!("shell: {shell}")));
}
// HOME
if std::env::var("HOME").is_ok() || std::env::var("USERPROFILE").is_ok() {
items.push(DiagnosticItem::ok(cat, "home directory env set"));
} else {
items.push(DiagnosticItem::error(
cat,
"neither $HOME nor $USERPROFILE is set",
));
}
// Optional tools
check_command_available("curl", &["--version"], cat, items);
}
View on GitHub (pinned to 7491200858)
Solutions
- Launch the app from a normal login shell or set SHELL in the service unit / launch environment (e.g. SHELL=/bin/bash)
- On macOS launched-from-Finder contexts, export SHELL in the wrapper script
- Accept the default-shell fallback if sh semantics are fine
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at src/openhuman/platform/doctor/core.rs:719 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/cf3f756a3d2aa303.
Report an issue: GitHub.