holo run, holo mcp, or holo acp starts but does not finish the desktop task.
Quick checklist
Run through these first. Most first-run failures are one of them.Start with doctor
holo doctor is read-only. It checks the runtime binary, hosted or local model credentials, the agent API port, and the ~/.holo directory. Fix the first failing check before moving on.
Reproduce with the CLI
If the failure happened from MCP or ACP, reproduce the smallest version from a terminal first:Stop a bad run first
If HoloDesktop CLI is acting in the wrong app, typing in the wrong place, or looping, cancel the run before debugging. PressEsc twice, or run holo stop from any terminal. See Stop a run.
Check model mode
For hosted mode:--base-url. Local mode does not require holo login.
Check host environment
MCP and ACP hosts launch HoloDesktop CLI non-interactively. Hosted mode needsHAI_API_KEY available to that process, usually from ~/.holo/.env after holo login. Local mode needs HAI_AGENT_RUNTIME_BASE_URL and HAI_AGENT_RUNTIME_MODEL in the host’s environment. GUI apps do not inherit shell exports. See Local mode from hosts.
For Claude Code, also confirm you installed HoloDesktop CLI from the workspace where you are using Claude Code:
Check runtime resolution
Run:binary row shows which runtime HoloDesktop CLI will use, following the resolution order. If you are testing a local runtime build, put a deliberate hai-agent-runtime wrapper on PATH. Otherwise, let the CLI use the managed runtime.
Check logs
Runtime startup logs live under:Understand run logs
Each run writes a JSONL event log under:holo run, the run directory usually contains events.jsonl. Observation events inside that file can include the raw screenshot HoloDesktop CLI saw as a base64 JPEG, plus metadata such as viewport size, cursor position, and sometimes accessibility data. Treat run logs as sensitive: they may contain screenshots, task text, app content, and model reasoning.
Each line is one timestamped runtime event. The exact JSON shape is diagnostic and may change, so do not build production integrations against it. Use the sequence to find where a failed run got stuck.
Example event lines:
Open Calculator and compute 2+2:
answer_event, but the event sequence shows the runtime never clicked =. That distinction matters: the runtime completed from the agent’s perspective, but the task was not fully done.
Use the sequence to localize the failure:
For timing summaries, prefer:
--profile reads the event log and prints per-step observe, model, tool, and total timings.
Check desktop permissions
A runtime that starts but cannot observe the screen or click is almost always a permissions problem. Grant permissions to the process that launches HoloDesktop CLI. For CLI runs, that is usually your terminal. For MCP or ACP, it may be the host app. The requirements are per-platform (macOS needs Screen Recording and Accessibility; Windows needs none; Linux needs an X11 session). See Desktop permissions for the full matrix. After granting on macOS, restart the launching process. Grants do not apply to an already-running runtime.Common fixes
Next steps
Agent hosts
When the CLI works in the terminal but not from the host.
Paths and files
Where logs and run artifacts live.