holo install also drops a skill where the host supports one, so the parent agent learns when to hand off to HoloDesktop CLI, not just how to reach it.
All three are beta. Host implementations are still moving, especially around cancellation of long-running desktop calls.
Before you start
Run one task from the terminal to check that HoloDesktop CLI starts on this machine:HAI_AGENT_RUNTIME_BASE_URL and HAI_AGENT_RUNTIME_MODEL. See Local mode from hosts for where to put them, including GUI apps that do not inherit shell exports.
Connect over MCP
List the hosts HoloDesktop CLI can install itself into, and whether each is detected on your machine:
Install into one host, or into every detected host at once:
holo install either calls the host’s own MCP CLI or updates its MCP config file. When possible it writes the absolute path to the holo executable, so GUI hosts do not depend on your shell PATH. Re-running it preserves extra keys such as env.
Claude Code registers the server at local scope, tied to the workspace you run the command from:
~/.grok/config.toml) and the bundled skill (under ~/.grok/skills/holo-desktop). Check with grok mcp list and grok inspect.
For file-backed hosts such as Cursor, the installed entry looks like this. Add an env block for local mode:
What the host gets
The MCP server exposes one tool:Connect over ACP
ACP host configuration differs by host. Point it at a stdio command that runs the ACP server:uv instead:
Connect over A2A
For agents you build yourself, run HoloDesktop CLI as an A2A server:127.0.0.1:18794 (change with --port), requires Authorization: Bearer $HOLO_AUTH_TOKEN on every request, and maps each A2A contextId to one desktop session, so a multi-turn conversation in your agent stays one session here. Pass --base-url and --model exactly as you would to holo run to use a local model.
Stop a run
The host owns the conversation, so cancel the tool call or sub-agent session from the host. HoloDesktop CLI cancels the active runtime session when it receives the cancellation or when the stdio connection closes.holo stop from any terminal, or Esc twice, also works: in headless surfaces the double-Esc is watched by holo guard, which holo install registers with the OS. See Stop a run.
Avoid holo stop --force here. Hosts spawn their runtime once at startup, so a force-kill leaves the host process alive but pointing at a dead runtime, and every later task fails until you restart the host.
Check it worked
Restart the host after installation if it was already open. Then ask it to do a small, safe desktop task:- run
holo install listand confirm the host ID, then re-runholo install <host-id>; - check that hosted mode has
HAI_API_KEY, or local mode hasHAI_AGENT_RUNTIME_BASE_URL, available to the host process; - for a source checkout, check that the command path points at the checkout where
uv syncsucceeded; - check
~/.holo/logs/for runtime startup errors.
Next steps
Use as a skill
The guidance installed into hosts that support skills.
Debug a failed run
When the CLI works in the terminal but not from the host.