Every bmc command and flag, transcribed from the CLI's built-in help. Run bmc help to see the same list with your installed version.
Commands
| Command | What it does |
|---|---|
bmc login | Sign in (opens the browser). One-time per machine. |
bmc start [name] | Capture in this directory. First run here asks for a device name (default: folder name) or pass one; pass a different name later to rename. Reuses ./.bmc.json after. |
bmc [name] | Same as bmc start [name]. |
bmc attach [name] | Attach to an already-running Chrome on the debug port — or wait for one to appear — then capture. Never launches Chrome itself; use when you start Chrome yourself. |
bmc list (bmc ls) | Devices configured on this machine — name, folder, CDP host:port, Chrome binary. --all for every device you own (+ live status/version); --json for scripts. |
bmc status | Show sign-in + this directory's device + Chrome. |
bmc remove [name] | Remove this directory's device, or a named daemon device, + all its captures. |
Named devices
A background daemon manages many Chromes by name.
| Command | What it does |
|---|---|
bmc setup | Interactively add / edit / rename / remove named devices (map each to a Chrome binary; auto-detects installs). |
bmc | With no arguments: bring the daemon up in the background (releases the terminal) and list this machine's devices. Run it again any time — it never starts a second daemon. |
bmc autostart | Launch the daemon automatically at login (--linger keeps it running after logout where supported); off to remove. |
bmc create <name> | Provision a new named device (auto port + profile). --from <existing> clones a device's binary/flags onto a fresh port + profile; --chrome <path> sets the binary. |
bmc start <name> | Start a named device via the daemon (launches its Chrome). |
bmc stop <name> | Stop a running named device. |
bmc stop | With no name: stop the daemon (and every running device). |
bmc ps | List named devices + which are running (--json). |
bmc update | Install the latest bmc + refresh this machine's devices' version shown in the dashboard. |
bmc logout | Sign out (clears the saved session; device files stay). |
bmc help | Show the help (also shown when no command is given). |
Options (for start)
| Flag | What it does |
|---|---|
--host <h> | Chrome host (default 127.0.0.1, or CDP_HOST). |
--port <p> | Chrome remote-debugging port (default 9222, or CDP_PORT). Without an explicit port, bmc auto-claims the next free port so multiple bmc instances each get their own Chrome. |
--chrome <path> | Chrome/Chromium binary to launch (or CDP_CHROME_BIN; auto-detected per-OS otherwise). |
--client <name> | Tag captured requests with this client label (or CDP_CLIENT). Internal marker shown as a dashboard badge; never sent upstream. Persisted; --client "" clears it. |
-- <chrome flags…> | Everything after a bare -- is passed verbatim to Chrome, e.g. bmc start "Dev" -- --lang=en-US --incognito. |
Chrome launch
If no Chrome is already listening on the debug port, bmc launches one itself so it can apply your device's external proxy + any -- flags. Its profile defaults to the directory you run bmc in (so it's local + persists per project; override with CDP_USER_DATA_DIR or -- --user-data-dir=…). If the device has an external proxy configured in the dashboard, Chrome starts with --proxy-server (auth proxies prompt once in Chrome); changing it in the dashboard auto-restarts Chrome. To attach to your own Chrome instead, launch it first with remote debugging (proxy/flags then ignored):
open -na "Google Chrome" --args --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-cdpEnvironment variables
All optional; sensible defaults are baked in.
| Variable | Meaning (default) |
|---|---|
CDP_HOST / CDP_PORT | Chrome debug endpoint default (127.0.0.1 / 9222). |
CDP_CHROME_BIN | Chrome/Chromium binary path (same as --chrome). |
CDP_CLIENT | Client tag for captured requests (same as --client). |
CDP_USER_DATA_DIR | Chrome profile dir (default: the directory you run in). |
CDP_AUTH_URL | Dashboard auth host (https://dash.busymate.net). |
SUPABASE_URL / SUPABASE_PUBLISHABLE_KEY | Backend URL + publishable key (defaults baked in; SUPABASE_URL defaults to https://api.busymate.net). |
CDP_USER_JWT | Headless sign-in (CI): a user access token. |
CDP_PAIR_EMAIL + CDP_PAIR_PASSWORD | Headless sign-in (CI): email + password for a full session. |
Note:
bmc createalso accepts--from <existing>and--chrome <path>;bmc autostartaccepts--lingerandoff;bmc list/bmc lsaccept--all(-a) and--json;bmc psaccepts--json;bmc removeaccepts--yes(-y). See Update & remove and Named devices & the daemon for details.