Install and requirements
Requires Node 22.14.0 or newer and an installed stable Google Chrome on Linux or macOS. Linux needs a graphical display and a working Chrome sandbox. Windows browser hosting and secure file/secret output are not supported. Install the current 0.3.7 CLI release:Start and pair
Multiple local browsers
Each browser needs a different profile name. You can run separatebrowser start
commands in separate terminals today:
--profile flags to start two or more browsers in one foreground command:
status, pause, resume or stop with one --profile to control only that
browser. Closing or stopping one browser leaves the others running. Ctrl-C in the
group’s terminal closes every browser launched by that command. The command
stays running until all its browsers stop. A launch/runtime failure cancels the
group and waits for cleanup; an existing profile owner is never taken over.
--server, --chrome-path, --ephemeral and --live-view apply to every profile
in a grouped launch. For different options or independent CLI lifetimes, use
separate terminals. With --ephemeral, each logical name still selects its own
pairing and local controls, but its Chrome data is throw-away. No --profile
means default. Repeated names are rejected; a busy profile requires a different
name, not deleting its lock. Local control and recovery commands accept only one
profile at a time.
Visible local controls
Use another local terminal with the same profile:stop closes its Chrome. Signal handlers are active from the beginning of startup. Ctrl-C during startup cancels remaining work, waits for an in-progress bounded Chrome launch, and then closes resources already acquired. Repeated Ctrl-C or other termination signals wait for the same cleanup instead of bypassing it. Pairing waits are cancelled. If one cleanup stage fails, the other independent safe stages are still attempted and the errors are reported afterwards.
There is no detach/reattach mode, and a restart creates a new runtime instance rather than attaching to an old Chrome process. Stop before replacing CLI binaries, then restart the same named profile to retain sign-ins. Live view requires explicit local --live-view on browser start and is off by default.
Relay reconnect, CLI restart and Chrome restart are different events. A reconnect never authorizes replaying uncertain clicks, form submissions, scripts or file attachments. Stale document refs/choosers must be reacquired. Forwarding and bulk streams do not transparently resume after disconnect. Read status and inspect results before retrying.
Explicit crash-artifact recovery
A crash can leave a named profile’s runtime lock and local control socket behind. They are deliberately not removed automatically, and startup will not delete or take over an existing path. First stop the prior CLI and its dedicated Chrome and prevent concurrent startup or manual artifact changes. Then run the operator command with the logical profile name, never a filesystem path:MCP client setup
Create an expiring token for the connected browser in the dashboard. Store the token in your client’s secret settings and use its Streamable HTTP transport:browser_list_tabs, then a temporary tab on https://example.com. File staging and secret export are separate explicit capabilities; see data and secrets.
Update safely
The dashboard shows native version, protocol, advertised capabilities and an update-required indicator. Protocol 3 is the native contract; unsupported commands fail closed. Stop the runtime, install a compatible CLI version, then restart the same named profile. Do not delete credentials or profiles as an update mechanism. There is no silent unrestricted auto-updater. Chrome itself should be maintained through its normal trusted update channel.Troubleshooting
- Offline: check local status, approval, exact server URL, TLS and proxy WebSocket support.
- Update required: use a verified compatible CLI/server pair; do not bypass capability checks.
- Profile busy: use a different
--profileto launch another browser, or stop the owning runtime; do not delete locks or another process’s files blindly. - Control-plane or privileged page rejected: expected; use an ordinary website that you are authorized to access.
- Unknown action outcome: inspect before deciding any next action; never blindly replay.
- Clipboard/live view unavailable: these are capability/platform dependent and require local permission/opt-in, not automatic fallback.