Skip to main content
boxd client tools run on your Mac (Windows support coming soon) and bridge local resources into your VMs. Once enabled, you can paste images into Claude Code, read files from your local filesystem, and control a local Chrome browser — all from inside a VM.

Enable

The client utilities are built into the boxd CLI from the Quickstart — there’s no separate download. They’re off by default; turn them on once per machine with:
This installs a small background agent (a launchd agent on macOS) and registers this device with boxd. Manage it any time with:
Currently available for macOS (Apple Silicon) only.

How it works

boxd config set client-utils.enable true registers your machine under a device id and starts a background agent that keeps a connection open to boxd. Every VM you enter with boxd connect or ssh <vm>.boxd carries that device id, so the boxd local commands inside the VM route back to your machine through boxd — no per-connection setup, and it keeps working across reconnects. Run boxd config get client-utils.enable to confirm it’s enabled and running.

Clipboard and image pasting

With client tools enabled, you can paste images from your Mac’s clipboard directly into Claude Code running inside a VM. This works via an xclip shim that intercepts clipboard reads and routes them through boxd to your Mac’s clipboard. This is especially useful for sharing screenshots, diagrams, or UI mockups with Claude Code without manually transferring files.

Reading local files

List and read files on your local machine from inside a VM:
Output from ls shows absolute paths with type and size:
All commands accept --json for structured output.

Path access

For security, only files under your home directory are accessible. Paths outside it are blocked.

Browser

Launch and control a Chrome instance on your Mac, with the Chrome DevTools Protocol (CDP) forwarded into the VM. This lets tools like Puppeteer or Playwright running inside a VM control a real browser on your local machine.

Connecting via CDP

boxd local browser open (and boxd local browser info) print the CDP WebSocket URL — it points at boxd’s device ingress (…/device/<id>/browser/ws) and is forwarded to the Chrome instance on your machine. Pass that URL to Puppeteer or Playwright. Connect from Puppeteer:
Or from Playwright:
Or straight from chrome using the pre-installed and pre-configured chrome-devtools-mcp:

Session persistence

The browser uses a fixed session directory on your Mac (~/.boxd/browser-sessions/default/). Cookies, localStorage, and login state persist across open/close cycles. Only one browser instance runs at a time. Calling open when a browser is already running returns the existing session.

Updating

Re-run the boxd install command to update — it upgrades the boxd CLI in place. The next time you run boxd, the client agent automatically restarts on the new version. If boxd local commands inside a VM show a message about updating, it means the agent on your machine is missing features available in the latest version.