headroomlabs-ai/headroom · error · SystemExit
Error: 'vibe' not found in PATH.
Error message
Error: 'vibe' not found in PATH.
What it means
Before wrapping Mistral Vibe, Headroom resolves the `vibe` binary with shutil.which('vibe'). If missing, it prints this error with the mistral-vibe GitHub URL and raises SystemExit(1) before building the vibe launch environment or starting the proxy. Guarded by the prepare_only early return.
Source
Thrown at headroom/cli/wrap.py:6190
"""Launch Mistral Vibe through Headroom proxy.
\b
Sets VIBE_PROVIDERS to route all Mistral API calls through Headroom.
\b
Examples:
headroom wrap vibe # Start proxy + vibe
headroom wrap vibe -- "fix the bug" # Pass prompt to vibe
headroom wrap vibe --port 9999 # Custom proxy port
"""
if prepare_only:
return
vibe_bin = shutil.which("vibe")
if not vibe_bin:
click.echo("Error: 'vibe' not found in PATH.")
click.echo("Install Mistral Vibe: https://github.com/mistralai/mistral-vibe")
raise SystemExit(1)
env, env_vars_display = _build_mistral_vibe_launch_env(
port, os.environ, project=_project_name_from_cwd()
)
_launch_tool(
binary=vibe_bin,
args=vibe_args,
env=env,
port=port,
no_proxy=no_proxy,
tool_label="VIBE",
env_vars_display=env_vars_display,
learn=learn,
memory=memory,
agent_type="vibe",
code_graph=code_graph,
openai_api_url="https://api.mistral.ai",View on GitHub (pinned to 322425c43b)
Solutions
- Install Mistral Vibe per https://github.com/mistralai/mistral-vibe
- Verify with `which vibe` in the launching shell; shell aliases are invisible to subprocess resolution — install a real executable
- Add the install bin dir to PATH and open a fresh shell or `hash -r`
- Use --prepare-only if you only want the proxy/config prepared without launching vibe
Example fix
# before headroom wrap vibe # Error: 'vibe' not found in PATH. # after # install per github.com/mistralai/mistral-vibe, then: which vibe && headroom wrap vibe -- "fix the bug"
Defensive patterns
Strategy: type-guard
Validate before calling
import shutil
if not shutil.which("vibe"):
raise SystemExit("Install Mistral Vibe first: https://github.com/mistralai/mistral-vibe") Type guard
import shutil
def vibe_available() -> bool:
"""True when the Mistral Vibe binary is resolvable on PATH."""
return shutil.which("vibe") is not None Prevention
- Install vibe as a real executable; shell aliases are invisible to shutil.which
- Reload the shell or `hash -r` after installation
- Verify `which vibe` in the same shell that runs headroom
When it happens
Trigger: Running `headroom wrap vibe` (without --prepare-only) where the `vibe` executable is not installed or its install dir is not on PATH — e.g. cloned the repo but didn't install, or installed under a tool-specific bin dir absent from PATH.
Common situations: Vibe not installed; installed via npm/pip from the mistral-vibe repo but the shell wasn't reloaded; name collision where 'vibe' exists only as an alias/function not visible to shutil.which (which only finds real executables on PATH).
Related errors
- Error: 'claude' not found in PATH.
- Error: 'copilot' not found in PATH.
- Error: 'codex' not found in PATH.
- Error: 'aider' not found in PATH.
- Error: 'openclaude' not found in PATH.
AI-assisted analysis of headroomlabs-ai/headroom@322425c43b (2026-08-15).
Data as JSON: /api/errors/24cd839251ae7a05.
Report an issue: GitHub.