Documentation
holm documentation
Install holm, give an agent its own Linux desktop, and drive it from the CLI, Rust, REST or MCP. Take the controls when the agent needs a person.
Get started
Concepts
BoxesThe spec, screens, states, lifetime, traces, forks, and what is inside a box.Control modesScreen coordinates, accessibility, or the browser, and when to use each.The serverholm and holmd, how a client finds a server, access control, and storage.Human controlViewers, handing control to a person, and taking it back.RuntimesWhere a box runs: containers, microVMs, and cloud sandboxes.
Guides
Desktop inputMouse, keyboard, scrolling, waits, screenshots, clipboard, and batches.Files and commandsRun commands, and move files in and out of a box.AccessibilityDrive native windows by widget name.BrowserTabs, snapshots, page actions, waits, logins, and other CDP libraries.Windows and screensWindows, applications, more than one screen, and recording.Configure a boxScreens, applications, packages, fonts, network, and spec files.Custom imagesYour own desktop image and profile, and how to audit it.Cloud sandboxesRun boxes on E2B, and add another vendor.Trace and forkRead what happened to a box, and make a new box from it.Deploy holmdRun the server as a service behind TLS.
Reference
CLIEvery holm command, flag, and environment variable.REST APIEvery /v1 endpoint, the box spec, and the action types.MCP toolsEvery MCP tool and its parameters.Rust APIThe main types, methods, errors, and extension points.ConfigurationEvery environment variable, file field, cargo feature, and box setting.