Skip to main content
Use it for sites you are signed in to and pages on your local network. Python only: the SDK or the holo CLI. The environment is {"kind": "web", "host": "user_device"}.

Run a session

Install
Create an agent whose environment sets host to user_device, then run a session with it. In Python there is nothing else to set up. From the CLI, serve your browser and point the agent at the session_id it prints (the CLI example uses the agent the Python example creates). All flags: holo local.

The Chrome it drives

The SDK attaches to a Chrome with remote debugging open on port 9222. If none is running, it launches one with its own profile in ~/.hai/chrome-profile. That profile persists across runs: sign in once and the agent finds you signed in next time. The SDK never touches your everyday Chrome profile (Chrome does not allow remote debugging on it). To drive a different Chrome, start it yourself before the session. Chrome only opens the debugging port with --user-data-dir, so pick a dedicated directory and keep it for the logins you want the agent to have.

Behavior and limits

When a session starts, the SDK opens a connection inside your Python process. It receives the agent’s actions, carries them out in your browser, and ties the session to this machine. Observe and steer, changes, and Agent View work as for a cloud run.
  • One at a time. A Python process drives one local browser at a time. A new session on it takes it over and cancels the earlier session.
  • Tied to your process. The connection closes when your Python process exits, and the sessions it served are cancelled (Chrome stays open). If the connection drops mid-session, the session is cancelled too.
  • Cloud-only fields. Vaults, browser profiles, and proxies apply to cloud browsers only. Your Chrome’s own logins and network fill that role.

Auto-connect scope