Run a session
The agent acts on your real browser. It can browse, run page scripts, and read that Chrome’s cookies and storage. Prefer a dedicated machine over your primary one. Stop it withholo local stop in any terminal, which stops every session driving this machine.
Install
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 with holo local browser and point the agent at the session_id it prints (the CLI example uses the agent the Python example creates).
The Chrome it drives
The SDK attaches to a Chrome with remote debugging open on port9222. If none is running, it launches one with its own profile in ~/.hai/chrome-profile. That profile persists across sessions: 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. Watch and steer and changes work as in the cloud.- A Python process drives one browser at a time. A new session on it takes it over and cancels the earlier session.
- 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.
- Vaults, browser profiles, and proxies are cloud browser fields. Your Chrome’s own logins and network fill that role.