Route a captured Chrome through an upstream proxy, point bmc at a custom Chrome binary, and pass arbitrary flags straight to Chrome.
When bmc launches Chrome
These options only apply when bmc launches Chrome itself (the default). Chrome's proxy is a launch-time flag — not settable at runtime — so a Chrome you started yourself with bmc attach can't be re-routed or re-flagged after the fact. If you've configured an external proxy or extra flags but bmc is attaching to an existing Chrome, it warns you that it can't apply them.
Route through an external proxy
The upstream proxy is per-device and set in the dashboard, not on the command line. Open Devices → your device → settings, and configure its external proxy.
When that device starts, bmc launches Chrome with --proxy-server pointed at your proxy. Because it's read from live settings:
- Changing the proxy in the dashboard auto-restarts Chrome with the new route — no need to stop and re-run
bmc. - Turning the proxy off restarts Chrome direct (no proxy).
[bmc] config changed → relaunching Chrome via proxy proxy.example.com:8080…Authenticated proxies
Chrome can't carry credentials in --proxy-server, and we don't want it popping an auth dialog. So when your external proxy has a username and password, bmc starts a small local forwarder: Chrome is pointed at 127.0.0.1:<local-port>, and the forwarder relays to your real proxy while injecting the Proxy-Authorization header. No Chrome prompt, credentials never leave your machine.
[bmc] external proxy auth handled by local forwarder — no Chrome prompt.The forwarder is re-created whenever the proxy config changes, and torn down when capture stops.
Custom Chrome binary
bmc auto-detects Chrome, and falls back to Edge, Brave, or Chromium. To choose a specific binary:
bmc start "Dev" --chrome /path/to/chromium # explicit binary
CDP_CHROME_BIN=/path/to/chromium bmc start # via environment variablePrecedence is: --chrome <path> flag, then CDP_CHROME_BIN, then per-OS auto-detect. For named devices, pin the binary at creation time with bmc create "<name>" --chrome <path> or via bmc setup.
Heads up: If no Chrome can be found and you didn't pass one,
bmcstops with guidance — pass--chrome <path>, setCDP_CHROME_BIN, or launch Chrome yourself and usebmc attach.
Pass flags straight to Chrome
Everything after a bare -- is forwarded verbatim to Chrome:
bmc start "Dev" -- --lang=en-US --incognito --start-maximizedThis is how you set window size, language, incognito mode, or any other Chrome flag. If you pass your own --user-data-dir here, bmc respects it instead of the default (the folder you ran in).
bmc start "Dev" -- --user-data-dir=/tmp/custom-profileChoosing the Chrome profile
The profile directory defaults to the folder you run bmc in, so it's local and persists per project. Override it three ways (in order of precedence):
- A pass-through
-- --user-data-dir=…flag. - The
CDP_USER_DATA_DIRenvironment variable. - The default — the current folder.
CDP_USER_DATA_DIR=~/profiles/dev bmc start "Dev"Next
- Remote control — drive a captured Chrome from the dashboard, MCP, or BusyBro.
- Command reference — every command and flag.