Open-source browser automation API with anti-detection — Undetectable Chrome for AI agents, web scraping, and automation. REST API + MCP server + VNC debugging. Selenium/Playwright alternative that bypasses Cloudflare.
Use the managed cloud version - no installation required:
docker run -d -p 18080:18080 --name airbrowser ghcr.io/ifokeev/airbrowser-mcp:latest
# With NVIDIA GPU (recommended for anti-detection)
docker run -d -p 18080:18080 --gpus all --device /dev/dri:/dev/dri --name airbrowser ghcr.io/ifokeev/airbrowser-mcp:latestDownload and run - no Docker knowledge required:
| Platform | Download | Requirements |
|---|---|---|
| Linux | airbrowser-linux.tar.gz | uidmap package or Docker |
| macOS | airbrowser-mac.tar.gz | Colima, Docker Desktop, or Podman |
| Windows | airbrowser-windows.zip | Docker Desktop or Podman |
# Linux/macOS
tar -xzf airbrowser-*.tar.gz && cd airbrowser-* && ./airbrowser
# Windows: Extract zip and double-click airbrowser.batgit clone https://github.com/ifokeev/airbrowser-mcp.git
cd airbrowser-mcp
docker compose up --build
# With NVIDIA GPU
docker compose -f compose.gpu.yml up --buildRun natively without a container — zero container fingerprint for maximum anti-detection stealth. Tested on Ubuntu/Debian.
git clone https://github.com/ifokeev/airbrowser-mcp.git
cd airbrowser-mcp
uv run python run_local.py # auto-installs deps + system packages
uv run python run_local.py --vnc # with VNC viewer at http://localhost:6080/vnc.htmlRequires Chrome installed on the host. See python run_local.py --help for options.
| Service | URL | Description |
|---|---|---|
| Dashboard | http://localhost:8000/dashboard |
Browser pool management UI |
| Swagger Docs | http://localhost:8000/docs/ |
Interactive API documentation |
| REST API | http://localhost:8000/api/v1/ |
Browser automation endpoints |
| MCP Server | http://localhost:3099/mcp |
Model Context Protocol for AI agents |
| VNC | vnc://localhost:5900 |
Remote desktop (with --vnc flag) |
| noVNC | http://localhost:6080/vnc.html |
Web-based VNC viewer (with --vnc flag) |
Open http://localhost:18080 - all services available:
| Service | Path |
|---|---|
| Dashboard | / |
| API Docs | /docs/ |
| REST API | /api/v1/ |
| MCP Server | /mcp |
| VNC Viewer | /vnc/ |
- Undetected Chrome (SeleniumBase UC)
- 100+ concurrent browsers
- Persistent profiles & cookies
- Tab management
- Proxy per browser (DataImpulse recommended)
- MCP for AI agents
- AI vision tools (optional)
GPU passthrough enables hardware-accelerated WebGL rendering via Vulkan, making the browser fingerprint match a real desktop machine. Without it, Chrome falls back to software rendering (SwiftShader) which is easily detected by anti-bot systems.
Requirements: NVIDIA GPU + NVIDIA Container Toolkit
# Docker Compose (recommended)
docker compose -f compose.gpu.yml up
# Docker run
docker run -d -p 18080:18080 \
--gpus all \
--device /dev/dri:/dev/dri \
-e NVIDIA_VISIBLE_DEVICES=all \
-e NVIDIA_DRIVER_CAPABILITIES=all \
ghcr.io/ifokeev/airbrowser-mcp:latest
# Portable launcher
./airbrowser --gpuWithout a GPU, Chrome uses --use-gl=swiftshader automatically. With GPU passthrough, it uses --use-gl=angle --use-angle=vulkan for real GPU rendering.
Enable AI-powered vision tools (what_is_visible, detect_coordinates) with any OpenAI-compatible vision backend. Vision turns on only when VISION_API_BASE_URL, VISION_API_KEY, and VISION_MODEL are all set.
When smart targeting is enabled per request, detect_coordinates can validate a raw vision point, optionally snap to a nearby clickable target, and return both the original click_point and a resolved_click_point with an outcome_status that tells you whether the result was confirmed, corrected, or needs inspection before clicking. Pair that with gui_click or MCP-compatible gui_click_xy to re-check coordinate clicks and request post-click feedback.
# Docker run
docker run -d -p 18080:18080 \
-e VISION_API_BASE_URL=https://your-openai-compatible-endpoint/v1 \
-e VISION_API_KEY=your-api-key \
-e VISION_MODEL=your-vision-model \
ghcr.io/ifokeev/airbrowser-mcp:latest
# Docker compose
VISION_API_BASE_URL=https://your-openai-compatible-endpoint/v1 \
VISION_API_KEY=your-api-key \
VISION_MODEL=your-vision-model \
docker compose upAdd airbrowser to your AI coding assistant:
Claude Code
claude mcp add airbrowser --transport http http://localhost:18080/mcpCursor
Go to Cursor Settings → MCP → Add new MCP Server:
{
"mcpServers": {
"airbrowser": {
"url": "http://localhost:18080/mcp",
"transport": "http"
}
}
}VS Code / Copilot
Add to your MCP settings:
{
"mcpServers": {
"airbrowser": {
"url": "http://localhost:18080/mcp",
"transport": "http"
}
}
}Cline
Follow Cline MCP guide with:
{
"mcpServers": {
"airbrowser": {
"url": "http://localhost:18080/mcp",
"transport": "http"
}
}
}Windsurf
Follow the Windsurf MCP guide with the config above.
Navigate to https://example.com and take a screenshot
Your AI assistant should create a browser, navigate to the URL, and return a screenshot.
Auto-generated from OpenAPI spec:
# Python
pip install airbrowser-client
# TypeScript
npm install airbrowser-clientJoin our Discord server for support, feature requests, and discussion.
Fair Source - Free for up to 10 users. Cannot be offered as a hosted service. Commercial license required for larger deployments.