agent-browser, and it opens on this desktop, so you see every page they visit as it happens and can step in - enter a password, solve a captcha, fix a form - without stopping them.
Open it
- Console - on the Machines page, open a machine’s Open menu and choose Desktop. It opens in its own window, one per machine.
- CLI -
boxd machine desktop myboxprints the link and opens it in your browser. - Link -
https://app.boxd.sh/desktop/<machine-name>. An agent on the machine can hand you this link; it’s what they’re told to do when they start a browser session. - SDK - every machine carries it:
machine.access.desktopUrlin TypeScript,machine.access.desktop_urlin Python. Handy when a script creates a machine and wants to hand someone a way to watch it. - From inside the machine - there is no in-machine command for it, but every session carries the machine’s name and host, so the link is one line away:
Desktop needs the default machine image at a recent version. A machine on a custom image, or created before the desktop shipped, shows the entry greyed out: Desktop is not available for this machine. Create a new machine to use it. Forks and snapshot restores keep their source’s image, so create a fresh machine from the default image to get it.
Launch apps
Click Launch at the top, or press ⌘B (Ctrl+B). Type to filter; arrow keys move between tiles; Enter launches; Esc closes. Three apps are always there:
Anything else with a desktop entry on the machine - an editor, a design tool, a desktop app you installed - appears with its own icon and name. Terminal-type entries and other Chrome or Chromium installs are left out, since the built-ins cover them. Apps run as the machine’s user, with the same access a terminal has.
Work in it
- Windows - drag the title bar to move, drag the right edge, the bottom edge or the bottom-right grip to resize, click to bring to front, ✕ to close. Apps that draw their own title bar keep it.
- Keyboard - everything you type goes to the focused window, modifiers included. Only ⌘B/Ctrl+B is reserved. Switching to another window on your computer releases any held modifier on the machine, so nothing gets stuck.
- Right-click goes to the machine, not your browser.
- Clipboard - text copied on the machine pastes on your computer; text copied on your computer is available on the machine when you focus the desktop window again. Your browser may ask once for permission to read the clipboard.
- Screen size - the machine’s display follows the size of the window, up to 5K, so there’s no letterboxing. Resize the window and the desktop resizes with it.
Upload by drag and drop
Drag files - or whole folders - from your computer onto the desktop:- Dropped on the Files window, they land in the folder it currently has open.
- Dropped anywhere else, they land in the home directory.
boxd machine cp or the file manager’s own tools for that.
One viewer at a time
A desktop has one viewer. Opening it while it’s open elsewhere - another tab, another computer - takes over, and the other view shows Disconnected with a Reconnect button. Everyone who can open it has full control; there is no read-only mode.What persists
- Closing the window changes nothing on the machine. Windows and apps keep running, and are there when you open the desktop again.
- Pause/resume and hibernate/wake preserve the desktop and its windows.
- Stop or reboot ends every desktop window. The desktop comes back on demand - the next time you open the view, or an agent starts a browser - and files on disk are untouched.
- The browser’s profile persists - cookies and logins survive closing the browser, relaunching it, and crashes. The Browser tile, agents, and links opened from a terminal all share one profile.
Not included
No audio, microphone or webcam; no printing; no minimize/maximize or taskbar; mouse and keyboard only (no touch). Clipboard sync is text only.Drive it from code
browser.launch() in an automation opens a Playwright-controlled browser on this same desktop, so a script’s browsing is just as watchable as an agent’s. GUI apps of any kind can be started onto the desktop from a shell with boxd-desktop-launch '<command>'.