Skip to main content

Run a session

The agent acts on your real machine. It can move the mouse, type, read anything on screen, run shell commands, and read or write files. Prefer a dedicated machine over your primary one. Stop it with Esc twice, or holo local stop in any terminal, which stops every session driving this machine. For a pre-built agent, holo -a h/holo-desktop "task" runs h/holo-desktop.
Install
It works on macOS, Windows, and Linux, from the Python SDK and the CLI. 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 desktop with holo local desktop and point the agent at the session_id it prints (the CLI example uses the agent the Python example creates).
The program running the agent (your terminal, or the app that launches Python) needs desktop permissions. Your first session triggers the prompts and stops with an error until you grant them. Run the program in a normal desktop session so it can reach the display.

Fields

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 on your desktop, and ties the session to this machine. Watch and steer and changes work as in the cloud.
  • A Python process drives one desktop at a time. A new session on it takes it over and cancels the earlier session. Another process that tries to drive the same desktop waits, then fails with DesktopBusyError.
  • The connection closes when your Python process exits, and the sessions it served are cancelled. If the connection drops mid-session, the session is cancelled too.
  • holo local desktop shrinks screenshots before upload.

Auto-connect scope