Enable
They’re built into theboxd CLI from the Quickstart; there’s no separate download. They’re off by default. On each computer you want to reach:
boxd auth login). Run it as yourself, not with sudo - the agent runs in your login session so it can reach your clipboard, browser and home directory. macOS and Linux are supported.
~/.ssh/config entries; daemon.enable false removes it altogether.
Which machines can reach your computer
Your personal machines and private org-billed machines - the ones only you have a shell on. Shared org machines and isolated machines are refused, so a teammate on a shared box can never read your files or drive your browser. Every session you open withboxd connect or ssh <vm>.boxd is tied to the computer you opened it from. Sessions without that context - a cron job, a background automation, a console terminal - reach your most recently connected computer instead. Nothing else is needed; the bridge keeps working across reconnects.
Several computers
Enable the utilities on each one, and give them labels. Inside a machine:boxd connect, ssh <vm>.boxd) goes to that computer; anything else (cron, automations, the console terminal) goes to the marked default. Every boxd local command takes --device <label|id|prefix> to target a specific computer; an explicit choice is strict and never falls back to a different one, and an ambiguous prefix is refused. Agents on the machine are told to run boxd local devices first and to ask which computer when there’s more than one.
Clipboard and image pasting
With the utilities enabled, pasting into Claude Code inside a machine - including images - pulls from your computer’s clipboard. Screenshots, diagrams and mockups go straight into the conversation with no file transfer.Reading local files
read accept --json.
Browser
Start and control a Chrome on your computer from a machine. The browser runs on your screen and your network, in a dedicated profile boxd keeps for it, separate from your everyday Chrome. It starts empty; log in once and it stays logged in.open while it’s running returns the existing one. Its profile lives in ~/.boxd/browser-sessions/default/ on your computer, so cookies and logins persist across open/close.
Driving it
boxd local browser cdp-url prints a Chrome DevTools Protocol endpoint that any CDP client inside the machine can use: the pre-installed agent-browser (agent-browser --cdp "$(boxd local browser cdp-url)"), Playwright, Puppeteer, or the chrome-devtools MCP that coding agents get automatically. In an automation, boxd.local.device().browser.connect() hands you a Playwright Browser. Examples, and how this compares with the machine’s own browser, are in Launch a Browser.
Errors you might see
- no devices connected - on your computer, run
boxd config set client-utils.enable true- nothing is enabled, or the agent on your computer isn’t running. - can’t reach your computer from this VM - the boxd client daemon isn’t connected - re-run the enable command on your computer.
- this feature requires an updated boxd client on your computer - the agent is older than the machine expects; update the CLI.
- client utilities are not available on org-shared VMs / … isolated VMs - by design; fork the shared machine to get a private copy.
Updating
Re-run the install command to upgrade theboxd CLI in place. The next time you run boxd, the agent restarts on the new version.