Provision named devices and let a background daemon keep them running across reboots — no folder required, no terminal tied up.
Two ways to run devices
The folder model is great for a quick capture: cd somewhere, run bmc start, Ctrl-C when done. But for devices you want to keep around — named, supervised, restarting after a reboot — there's the daemon.
A named device lives in a per-machine registry, maps to a Chrome binary, and is launched and supervised by a background daemon. You manage them by name from anywhere, without cd-ing into a folder.
Bring the daemon up
Run bmc with no arguments:
bmcThis starts the daemon in the background (releasing your terminal) and lists this machine's named devices. Run it again any time — it never starts a second daemon, so it's safe to repeat.
To stop the daemon (and every running device under it):
bmc stopProvision a named device
The interactive way is bmc setup — a small terminal UI to add, edit, rename, and remove named devices, mapping each to a Chrome binary (it auto-detects your installed browsers):
bmc setupOr do it directly:
bmc create "Staging" # auto port + profile
bmc create "Staging EU" --from "Staging" # clone binary/flags onto a fresh port + profile
bmc create "Canary" --chrome /path/to/chrome # pin a specific binarybmc create provisions the device (pairs its device JWT, allocates a port and profile) but does not start it.
Start, stop, list
bmc start "Staging" # launch the named device's Chrome via the daemon
bmc stop "Staging" # stop just that device
bmc ps # list named devices + which are running
bmc ps --json # machine-readablebmc start "<name>" is the same command you'd use for a folder device — when <name> matches a registered named device (and the daemon is up), it's routed to the daemon instead of creating a folder device. bmc ps works even when the daemon is down: it shows the registry, all marked stopped.
[bmc] daemon: running
NAME STATE PORT UUID
Staging running 9301 8f3c…
Canary stopped 9302 1a7e…Start automatically at login
Wire the daemon to launch when you log in, and start it now:
bmc autostart # install the login agent + start the daemon
bmc autostart --linger # also keep it running after logout (where supported)
bmc autostart off # remove the login agentThe mechanism is per-OS:
- macOS — a launchd LaunchAgent in
~/Library/LaunchAgents, tied to your GUI login session.--lingeris a no-op here (surviving logout would need a root LaunchDaemon). - Linux — a systemd
--userunit.--lingerrunsloginctl enable-lingerso the daemon survives logout. - Windows — a Scheduled Task that runs at logon.
--lingeris a no-op.
Note:
bmc autostartonly wires up the daemon;bmc autostart offremoves that. To bring the daemon up or down by hand, usebmcandbmc stop.
Folder devices vs. named devices
| Folder device | Named device | |
|---|---|---|
| Created by | bmc start in a folder | bmc create / bmc setup |
| Identity stored in | ./.bmc.json in the folder | per-machine registry |
| Started with | bmc start (foreground, in that folder) | bmc start "<name>" (via the daemon) |
| Survives reboot | no | yes, with bmc autostart |
| Terminal | holds the terminal until Ctrl-C | runs in the background |
Both stream into the same dashboard feed and show up under Devices — they're the same kind of device, just provisioned and supervised differently.
Next
- External proxy & custom Chrome — per-device upstream proxy and binary selection.
- Command reference — every command and flag.