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

  1. Install Mistral Vibe per https://github.com/mistralai/mistral-vibe
  2. Verify with `which vibe` in the launching shell; shell aliases are invisible to subprocess resolution — install a real executable
  3. Add the install bin dir to PATH and open a fresh shell or `hash -r`
  4. 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

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


AI-assisted analysis of headroomlabs-ai/headroom@322425c43b (2026-08-15). Data as JSON: /api/errors/24cd839251ae7a05. Report an issue: GitHub.