Local Browser
Run a Firefox browser on your own machine for maximum privacy
The built-in browser runs on your local machine using Camoufox — a Firefox fork patched for automation and anti-detection. All browsing activity stays on your machine.
Requirements
- macOS or Linux (Windows not yet supported)
- 4 GB RAM minimum, 8 GB recommended
Setup
Install Bun (v1.0+), then run:
bunx @ev3ry/camoufox-serverThe browser binary is downloaded automatically on first run. A local server starts on port 2026.
Options:
bunx @ev3ry/camoufox-server --port 9090 # Custom port
bunx @ev3ry/camoufox-server --no-tunnel # Disable Cloudflare tunnel
bunx @ev3ry/camoufox-server --token my-secret # Set an API tokenPull and run the pre-built image:
docker run -d -p 2026:2026 ghcr.io/baixianger/camoufox-serverWith optional environment variables:
docker run -d -p 2026:2026 \
-e CAMOUFOX_API_TOKEN=your-secret-token \
-e PROXY_SERVER=http://proxy:8080 \
ghcr.io/baixianger/camoufox-serverThe Docker image runs the browser headless inside a virtual display (Xvfb). Recommended for VPS and server deployments.
Connecting to Ev3ry
In the dashboard, go to Settings > Browser and set:
- Connection method: Built-in Browser
- Server URL:
http://localhost:2026
If you're running the server on a remote machine or through a tunnel, replace localhost:2026 with the appropriate address.
How it works
- Ev3ry sends a request to your local server to create a new browser session
- The agent controls the browser through an HTTP API
- Screenshots are polled every ~500ms for the live view
- All browsing data stays on your machine
- The session is closed and cleaned up after the run ends
Anti-detection
Camoufox patches Firefox at the binary level to resist fingerprinting:
- Browser fingerprint matches a real Firefox user profile
- Canvas, WebGL, and font fingerprints are normalized
- Bot-detection scripts (Cloudflare Turnstile, DataDome, PerimeterX) are significantly less likely to trigger than with standard Chromium
Troubleshooting
Port already in use — check lsof -i :2026 and stop the conflicting process, or use --port to pick a different port.
Browser won't start — ensure at least 2 GB of free RAM is available.
Live view appears slow — polling-based screenshots update every ~500ms by design. This does not affect extraction speed.