Drive a captured Chrome remotely — navigate, evaluate JavaScript, take screenshots, snapshot the page — from the dashboard, MCP, or BusyBro.
What it does
A captured Chrome isn't just a traffic source. With remote control on, you can send Chrome DevTools Protocol commands to it from anywhere Busymate runs — tell it to navigate to a URL, run a script, capture a screenshot, or snapshot the DOM — and get the result back. The browser stays right where it is on your machine; the commands ride a Realtime channel.
This powers the browser_* tools in MCP and the browser-driving BusyBro capabilities, as well as remote-control actions in the dashboard.
It's off by default
Remote control is a per-device opt-in. Until you enable it, bmc refuses every incoming command before it ever touches Chrome — so a device just streaming traffic can't be driven by anyone.
To turn it on, open Devices → your device, and enable Browser Control (the per-device cdpControlEnabled setting). The toggle pushes live over Realtime — no need to restart bmc. Only the device's owner (or an admin) can flip it, and the captured Chrome only accepts commands while it's on.
Heads up: Enabling Browser Control lets the dashboard, MCP, and BusyBro run arbitrary CDP commands against that Chrome — navigation, script evaluation, screenshots. Leave it off for devices you only want to observe.
How it flows
Dashboard / MCP / BusyBro ──cdp-command──▶ bmc ──▶ Chrome
◀──cdp-result── bmc ◀──Commands arrive on the device's private Realtime channel as cdp-command messages and the results come back as cdp-result, correlated by id. Each command is gated by the opt-in and by ownership before it runs.
What you can do
Commands are Chrome DevTools Protocol methods, forwarded verbatim. The common ones the higher-level tools use:
- Navigate — open a URL in the captured page.
- Evaluate — run JavaScript in the page and read the result.
- Screenshot — capture the rendered page as a PNG.
- Snapshot — capture the page's structure (DOM / accessibility tree).
There's also a small connector-side helper namespace for discovering what to drive:
bmc.targets— list the attached page targets.bmc.activePage— resolve the page to drive.
Large results (a screenshot, a PDF) are too big for a single Realtime frame, so bmc uploads them to storage and returns a short-lived signed URL instead of giant inline data — so a screenshot comes back as a renderable link in the dashboard, in MCP, or in a Telegram reply from BusyBro.
Using it
You don't send raw commands by hand — you use the surfaces built on top:
- Dashboard — remote-control actions on a device under Devices.
- MCP — the
browser_*tools at MCP tools. - BusyBro — ask it to navigate or screenshot a device; see BusyBro capabilities.
In every case, the same gate applies: the device must have Browser Control enabled, and you must own it (or be an admin).
Next
- Update & remove — keep
bmccurrent and tidy up devices. - Command reference — every
bmccommand and flag.