Mirror: Distributed Privacy Consistency
Run distributed browser sessions with synchronized actions and consistent fingerprint protection across multiple nodes.
Mirror is used for multi-node browser automation, cross-machine fingerprint consistency checks, and distributed validation workflows.
Prerequisites
- BotBrowser ENT Tier3 subscription.
- Two or more machines (physical or virtual) with BotBrowser installed.
- Network connectivity between the controller and all client nodes.
- A profile file (
.encfor production) available on each node.
Quick Start
1. Start the controller
On the machine that will control the session:
chromium-browser \
--bot-profile="/path/to/profile.enc" \
--bot-mirror-controller-endpoint=0.0.0.0:9333 \
--proxy-server=socks5://user:pass@proxy.example.com:10802. Start a client
On each machine that should mirror the controller’s actions:
chromium-browser \
--bot-profile="/path/to/profile.enc" \
--bot-mirror-client-endpoint=controller-ip:9333 \
--proxy-server=socks5://user:pass@proxy.example.com:10803. Interact with the controller
Navigate, click, and interact with the controller instance. All actions are replicated to every connected client in real time.
How It Works
Mirror provides remote browser control for distributed setups where multiple BotBrowser instances must maintain identical behavior:
-
Controller instance. One BotBrowser instance acts as the controller. It captures user interactions (navigation, clicks, keyboard input, scrolling) and broadcasts them to all connected clients.
-
Client instances. Each client receives the controller’s actions and replays them locally. Clients use the same profile, so fingerprint output is identical across all nodes.
-
Fingerprint consistency. Because every node loads the same profile and receives the same sequence of actions, all instances produce consistent fingerprint output. This is useful for verifying that privacy protection works identically across different platforms and networks.
-
Cross-platform verification. Run the controller on Windows, with clients on macOS and Ubuntu. Mirror confirms that the fingerprint protection produces consistent results regardless of the host operating system.
Common Scenarios
Team collaboration
Multiple team members can observe and interact with a shared browser session. The controller drives navigation while clients follow along in real time:
# Team lead (controller)
chromium-browser \
--bot-profile="/path/to/profile.enc" \
--bot-mirror-controller-endpoint=0.0.0.0:9333
# Team member 1 (client)
chromium-browser \
--bot-profile="/path/to/profile.enc" \
--bot-mirror-client-endpoint=lead-machine:9333
# Team member 2 (client)
chromium-browser \
--bot-profile="/path/to/profile.enc" \
--bot-mirror-client-endpoint=lead-machine:9333Cross-platform consistency verification
Verify that a profile produces identical fingerprints on different operating systems:
# Controller on Windows
chrome.exe --bot-profile="C:\profiles\profile.enc" --bot-mirror-controller-endpoint=0.0.0.0:9333
# Client on macOS
/Applications/Chromium.app/Contents/MacOS/Chromium --bot-profile="/profiles/profile.enc" --bot-mirror-client-endpoint=windows-machine:9333
# Client on Ubuntu
chromium-browser --bot-profile="/profiles/profile.enc" --bot-mirror-client-endpoint=windows-machine:9333Navigate to a fingerprint testing site on the controller. All clients display the same page with identical fingerprint values.
CDP-based Mirror control
Start and stop Mirror at runtime using Chrome DevTools Protocol:
// Puppeteer: start as controller via CDP
const cdpSession = await browser.target().createCDPSession();
await cdpSession.send("BotBrowser.startMirrorController", {
bindHost: "0.0.0.0",
port: 9333,
});Distributed testing across networks
Run clients on different networks to verify that proxy-based geo-lookup produces consistent results when combined with the same profile:
# Controller with US proxy
chromium-browser \
--bot-profile="/path/to/profile.enc" \
--bot-mirror-controller-endpoint=0.0.0.0:9333 \
--proxy-server=socks5://user:pass@us-proxy.example.com:1080
# Client with same US proxy on a different network
chromium-browser \
--bot-profile="/path/to/profile.enc" \
--bot-mirror-client-endpoint=controller-host:9333 \
--proxy-server=socks5://user:pass@us-proxy.example.com:1080Troubleshooting / FAQ
| Problem | Solution |
|---|---|
| Client cannot connect to controller | Verify the controller’s IP and port are reachable. Check firewall rules allow traffic on the Mirror port (default 9333). |
| Actions not replaying on client | Ensure both controller and client use the same profile version. Mismatched profiles may cause inconsistent behavior. |
| High latency in action replay | Mirror works best on low-latency networks. For high-latency connections, actions may appear delayed on clients. |
| Mirror endpoint already in use | Another process is using the port. Choose a different port or stop the existing process. |
| Feature not available | Mirror requires ENT Tier3 subscription. Verify your license tier. |
Next Steps
- Mirror Documentation . Complete setup instructions, CDP examples, and advanced configuration.
- Advanced Features. Mirror architecture and technical details.
- CLI Flags Reference. Mirror-related CLI flags.
- Docker Deployment. Run Mirror controller and clients in containers.
Related documentation: Per-Context Fingerprint | Playwright Guide
Legal Disclaimer & Terms of Use • Responsible Use Guidelines . BotBrowser is for authorized fingerprint protection and privacy research only.