Open source browser automation tools, installed and run

Browser automation tools you can run yourself. The list is ordered by whether each project came up when Argusic installed it fresh, with the recording of that attempt one click away.

Tested between and . Each row shows its own test date; a project can change after that day.

30 of 31 tested projects run. 52 more waiting for a test.

In short: 17 of the 31 tested projects started as-is on a fresh machine: invisible_dots, page-agent, browser-harness, camofox-browser, steel-browser, ferret, playwright-go, and browser-control, and 9 more. 13 more started once a stand-in replaced a service they expect, such as a database: dots, ego-lite, GenericAgent, pinchtab, llm-scraper, js-reverse-mcp, brightdata-mcp, and actionbook, and 5 more. 1 could not be verified: OpenBot; the log shows where it stopped.

Measured by Argusic on a fresh machine every time. Every number links to its evidence.

#projectverdictArgusic Scorelanguagestarstested on
1invisible_dotsRuns100 / 100TypeScript31,843

Open-source, self-hosted alternative to OpenAI Dots, Grok Bot. Built to be undetectable by anti-bot systems.

What the test found: npm ci installs 428 packages without error; npm run build produces the CLI binary (apps/cli/dist/invisible-dots.mjs) and the server binary (apps/web/.next/standalone/apps/web/server.js). The test suite passes 2103 tests across 150 files (0 failures, 3 skipped). The server starts, creates its PGlite database, applies... 49 minutes.

2page-agentRuns100 / 100TypeScript29,359

JavaScript in-page GUI agent. Control web interfaces with natural language.

What the test found: Install, sequential build, typecheck, lint, and all 69 unit tests pass. The project is fully functional with Node v22. via nvm. 27 minutes.

3browser-harnessRuns100 / 100Python18,350

Browser Harness | Self-healing harness that enables LLMs to complete any task.

What the test found: The package installs, builds, passes all 283 tests, and the CLI drives a real headless Chrome via CDP (navigate, page_info) when pointed at a running browser with BU_CDP_WS. 5 minutes.

4camofox-browserRuns100 / 100JavaScript11,480

Stealth headless browser for AI agents, bypass Cloudflare, bot detection, and anti-scraping. Drop-in Puppeteer/Playwright replacement.

What the test found: Server starts with Camoufox browser under Xvfb, responds on port 9377, creates browser tabs that navigate to real URLs, returns accessibility snapshots with element refs, and processes click interactions correctly. All API endpoints function end-to-end. 4 minutes.

5steel-browserRuns100 / 100TypeScript7,754

🔥 Open Source Browser API for AI Agents & Apps. Steel Browser is a batteries-included browser sandbox that lets you automate the web without worrying about...

What the test found: With a user-local Node 22 and Chrome for Testing plus DISABLE_CHROME_SANDBOX=true, the dev-mode API runs on port 3000, /v1/health returns 200 with live Chrome, and sessions/scrape/screenshot/pdf plus external CDP client connections all worked with real results. 11 minutes.

6ferretRuns100 / 100Go6,012

Declarative data automation language and Go runtime for structured extraction workflows.

What the test found: Go 1.27.1 installed, all dependencies resolved, all 68 test packages pass with race detection, CLI binary compiles and runs FQL queries end-to-end. 7 minutes.

7playwright-goRuns100 / 100Go3,515

Playwright for Go a browser automation library to control Chromium, Firefox and WebKit with a single API.

What the test found: Playwright for Go is installed and functional: Playwright driver v1.62.1 launches Chromium 151.0.7922.34 in headless mode, all package tests (0 failures) and all integration test groups (0 failures) pass with real browser interactions including page navigation, DOM queries, locators, assertions, network interception... 42 minutes.

8browser-controlRuns100 / 100Rust3,147

A tiny, fast Rust CLI that drives a real browser over the Chrome DevTools Protocol, built for coding agents.

What the test found: The browser-control CLI builds and passes all 10 unit tests; the binary connects to Chromium 127 over CDP and successfully executes open, snapshot, eval, cdp, text, and inspect commands against real web pages. 10 minutes.

9atomic-agentRuns100 / 100TypeScript3,049

Atomic Agent is a local-first AI agent. Runs open-weight models on your own machine via llama.cpp.

What the test found: Build compiles, CLI binary runs and responds to --version/--help, 594 of ~600+ test files pass with 1 genuine test-logic failure in sidecar send-message concurrency, and all 22 eval-memory test files pass. 58 minutes.

10webcmdRuns100 / 100TypeScript2,661

Self-learning agent browser

What the test found: Webcmd 0.8.4 is installed, builds from source, runs unit tests (3571 passed), connects to Cloak browser daemon, and responds to CLI commands. 5 minutes.

11stealth-browser-mcpRuns100 / 100Python2,216

Stealth browser automation for AI agents over MCP and the Chrome DevTools Protocol: navigation, network hooks, DOM extraction, and pixel-accurate UI cloning.

What the test found: Stealth Browser MCP server runs on stdio transport, spawns a headless Chromium 157.0.8086.0, navigates to data URLs, extracts page HTML content, and closes cleanly -- all via MCP protocol over stdio. 15 minutes.

12MinkRuns100 / 100PHP1,608

PHP web browser emulator abstraction

What the test found: PHP 8.4.26 and Composer 2.10.3 are installed locally, all 38 dependencies are in vendor/, the Mink test suite passes 520 tests with 1165 assertions, composer.json validates, phpstan reports no errors, and a stub-driver script using the Mink library successfully found the Downloads link with href /download. 12 minutes.

13nanobrowserRuns90.7 / 100TypeScript14,006

Open-Source Chrome extension for AI-powered web automation. Run multi-agent workflows using your own LLM API key. Alternative to OpenAI Operator.

What the test found: Dependencies installed, project builds to dist/ (background.iife.js 1,848.81 kB, manifest.json), TypeScript type-check passes across all 15 packages, unit tests pass (14/14). 15 minutes.

14ArchiveBoxRuns86.7 / 100Python28,706

🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc. saves HTML, JS, PDFs, media, and more...

What the test found: ArchiveBox 0.9.65rc24 is installed with Python deps, initialized with SQLite DB and migrations, supports adding/list URLs via CLI, and serves HTTP on port 5797; missing system binaries (chromium, wget, unzip) cannot be installed without root access. 23 minutes.

15OpenAdaptRuns80 / 100Python1,762

Compiles a demonstrated GUI task into a program that reports VERIFIED only if an independent check agrees. pip install openadapt; openadapt flow tutorial...

What the test found: Package installs and all 288 tests pass; CLI, doctor, version commands work; recording generates valid artifacts; compile is CPU-bound by onnxruntime in this container but eventually produces bundles. 20 minutes.

16browser-useRuns66.7 / 100Python117,466

Agents that use the browser.

What the test found: browser-use v0.13.10 installed in a Python 3.12 venv with uv, Chromium headless installed via playwright, and all 563 CI tests pass (529 passed, 34 skipped) after fixing 2 test identity comparison bugs in test_beta_agent.py that only manifest under xdist worker parallelism. 75 minutes.

17OpenCLIRuns66.7 / 100JavaScript29,931

Make Any Website into CLI & Use your logged-in browser by AI agent.

What the test found: OpenCLI 1.8.8 builds and runs on Node 22.14.0; 632 test files pass (7325 tests, 3 skipped) across unit, extension, adapter, smoke projects; CLI binary answers version 1.8.8 and lists 1366 registered commands. 27 minutes.

18dotsRuns with mocks92 / 100TypeScript31,843

Open-source, self-hosted alternative to OpenAI Dots, Grok Bot. Built to be undetectable by anti-bot systems.

What the test found: All 4 pytest tests pass, the CLI help displays correctly, and the app launches a server on port 9876 with the stealth Firefox engine downloaded and ready. 9 minutes.

19ego-liteRuns with mocks92 / 100JavaScript16,941

The fastest browser for AI agents to run browser automation, built for sharing your logged-in browser state with your AI agents, like Codex or Claude Code...

What the test found: The ego-browser package installs, builds, and passes 494 unit tests on Node 22; the CLI reads JS from stdin and executes it. 2 minutes.

20GenericAgentRuns with mocks92 / 100Python14,288

Self-evolving agent: grows skill tree from 3.3K-line seed, achieving full system control with 6x less token consumption

What the test found: GenericAgent v0.1.0 (commit e86ca72) installed with all dependencies, all 275 tests passing, Streamlit web UI serving HTTP 200, and ga CLI reporting version successfully. 3 minutes.

21pinchtabRuns with mocks92 / 100Go10,349

High-performance browser automation bridge and multi-instance orchestrator with advanced stealth injection and real-time dashboard.

What the test found: Pinchtab builds from source, 53 of 54 Go test packages pass (1 pre-existing handlers failure), and the bridge serves HTTP 200 health checks with Chrome 131 headless. 41 minutes.

22llm-scraperRuns with mocks92 / 100TypeScript6,936

Turn any webpage into structured data using LLMs

What the test found: The project installs and builds without errors; 8/8 test cases pass with a mocked OpenAI Responses API endpoint. 24 minutes.

23js-reverse-mcpRuns with mocks92 / 100TypeScript2,910

AI Agent-first JS 逆向 MCP Server:有头 Chrome 调试、断点、网络/WebSocket 分析、Patchright 反检测,可选 CloakBrowser。

What the test found: The js-reverse-mcp v4.0.5 TypeScript project compiles to JavaScript, its full test suite of 114 tests passes, and the MCP server binary responds to JSON-RPC initialize on stdin/stdout. A Node.js v22.12.0 upgrade was applied (portable) and the cloakbrowser optional dependency was installed. Google Chrome is not... 4 minutes.

24brightdata-mcpRuns with mocks92 / 100JavaScript2,661

A powerful Model Context Protocol (MCP) server that provides an all-in-one solution for public web access.

What the test found: The Bright Data MCP server installs and all 21 unit tests pass under Node.js v22.12.0; the server starts listening when API_TOKEN is set. 4 minutes.

25actionbookRuns with mocks92 / 100Rust1,612

Let your AI agent get the sources behind logins and paywalls.

What the test found: Actionbook monorepo builds and all test suites pass (js-sdk 78/78, mcp 45/45, tools-ai-sdk 7/7, openclaw-plugin 39/39, cli 482/483), MCP server starts on stdio listing 5 tools, Rust CLI reports version 1.6.0, and json-ui renders reports, with the only gap being lsof not in the container and the remote API returning a... 13 minutes.

26scrapy-playwrightRuns with mocks92 / 100Python1,454

🎭 Playwright integration for Scrapy

What the test found: scrapy-playwright 0.0.48 installed and builds; chromium handler works end-to-end (73 tests pass); firefox works standalone but 3 firefox test classes hang in pytest-twisted; webkit tests correctly skip on Linux; missing `file` system command patched in test. 61 minutes.

27WebAI2APIRuns with mocks92 / 100JavaScript1,383

WebAI2API: 基于 Camoufox 的网页 AI 转 API 工具,支持 LMArena/Gemini等,多窗口并发与账号隔离。 | Web AI to OpenAI API via Camoufox. Supports LMArena/Gemini and more, multi-window...

What the test found: The WebAI2API server starts on port 3000 with a Camoufox browser instance, serving OpenAI-compatible /v1/models, WebUI, and /v1/cookies endpoints, all returning HTTP 200, though chat completions require real AI website credentials via the browser adapter and cannot produce output without logging in. 7 minutes.

28HolyClaudeRuns with mocks86 / 100JavaScript2,580

AI coding workstation: Claude Code + web UI + 8 AI CLIs + headless browser + 50+ tools

What the test found: All 285 Node.js unit tests, 5 Python notification tests, and the CLI persistence shell test pass. Repository structure is validated end to end with product facts contracts, security policy, documentation, and patch scripts all verified. 2 minutes.

29web-uiRuns with mocks80.6 / 100Python16,606

🖥️ Run AI Agent in your browser.

What the test found: browser-use-web-ui installed and launches: Gradio webui responds HTTP 200 on / and /gradio_api/info, displaying 'Browser Use WebUI' title with agent/browser/run tabs; 7 of 11 LLM API provider tests pass against a mock OpenAI-compatible server. 16 minutes.

30ekoRuns with mocks80 / 100TypeScript4,960

Eko (Eko Keeps Operating) - Build Production-ready Agentic Workflow with Natural Language - eko.fellou.ai

What the test found: All 4 packages build successfully. 12 of 14 test suites pass (14 of 16 individual tests) in eko-core with a mock LLM server. Remaining failures: test/llm/utils.test.ts has a pre-existing unhandled rejection for an intentional timeout scenario; test/llm/mcp.test.ts requires an external MCP SSE server on localhost:8083... 27 minutes.

31OpenBotCould not verify38.6 / 100TypeScript6,200

Open-source AI coworkers that each get a computer of their own: a browser, files and tools, with every action decided before it happens and recorded after...

What the test found: bun install and all 3985 non-integration unit tests pass. The 69 failures are all infrastructure-gated (no PostgreSQL for integration tests, no Docker for compose tests, 2 pre-existing Mastra .env leakage failures). 49 minutes.

-moliNot yet tested-Rust13,400-
-AIPexNot yet tested-TypeScript1,261-
-Gemini-NexusNot yet tested-JavaScript1,116-
-ClawBenchNot yet tested-Python977-
-beachpatrolNot yet tested-JavaScript925-
-rustwrightNot yet tested-Python912-
-auto-browserNot yet tested-Python904-
-puppetryNot yet tested-JavaScript888-
-gemini-skillNot yet tested-JavaScript832-
-dsh-browserNot yet tested-TypeScript785-
-lcuNot yet tested-Python767-
-dsh-antibrowNot yet tested-JavaScript700-
-vmprintNot yet tested-JavaScript673-
-Prism-Browser-CommunityNot yet tested-TypeScript670-
-terminalNot yet tested-Rust651-
-surf-cliNot yet tested-TypeScript632-
-invisible_puppeteerNot yet tested-Python573-
-readerNot yet tested-TypeScript558-
-parchiNot yet tested-TypeScript551-
-ocNot yet tested-JavaScript533-
-browser-searchNot yet tested-JavaScript528-
-flyto-coreNot yet tested-Python484-
-html2imageNot yet tested-Python455-
-buxNot yet tested-Python453-
-jarvis-assistant-vocalNot yet tested-Python449-
-ash-agentsNot yet tested-Python448-
-wmuxNot yet tested-TypeScript415-
-camofox-browserNot yet tested-JavaScript411-
-graspNot yet tested-Go395-
-reinsNot yet tested-Python392-
-open-browser-useNot yet tested-JavaScript361-
-herdr-browserNot yet tested-TypeScript357-
-nuphus-mcpNot yet tested-Rust322-
-bladebroNot yet tested-Rust305-
-CatGPT-GatewayNot yet tested-Python295-
-login-machineNot yet tested-TypeScript292-
-teracrawlNot yet tested-TypeScript285-
-openbrowser-aiNot yet tested-Python274-
-Uni-CLINot yet tested-TypeScript274-
-pi-desktopNot yet tested-TypeScript259-
-advai-cliNot yet tested-Python253-
-advai-cliNot yet tested-Python253-
-playwrightNot yet tested-PHP251-
-kane-cliNot yet tested-JavaScript248-
-agent-browser-mcpNot yet tested-Python245-
-dorabotNot yet tested-TypeScript245-
-dsh-deepseek-web-loginNot yet tested-JavaScript238-
-pi-agent-browser-nativeNot yet tested-TypeScript231-
-safari-mcpNot yet tested-JavaScript211-
-Boterdrop-SolverNot yet tested-Python205-
-opensteerNot yet tested-Python203-
-blueboxNot yet tested-Python202-

runs installed and started with its real dependencies. runs with mocks started after stand-ins replaced external services such as a database or a third-party API. could not verify neither the standard agent nor the stronger one got it running within the time limit; the log shows where it stopped.

How we tested

On this list as of the latest test: 17 projects ran as-is, 13 with mocks, 1 could not be verified, 52 still waiting. Languages tested: Go, JavaScript, PHP, Python, Rust, TypeScript. Every attempt used a clean single-use machine, the subject at a pinned version, and a 45-minute limit; the complete procedure is on the methodology page.

Frequently asked questions (FAQs)

How is this list ranked?

By measurement, not opinion: projects Argusic installed and launched on a fresh machine come first, then those that ran with mocks in place of external services, then those it could not verify. Ties go to the Argusic Score, then how popular it is on its own source.

Why are some projects unranked?

52 projects are still waiting for a test or for a finished attempt. They are listed without a rank until Argusic has measured them.

Where is the evidence?

Every row links to the project's Argusic page, where each run has a full log and a terminal recording stored with a sha256 fingerprint. The same pages exist for every one of the tested projects, on this list or not.

More lists in this category

All lists: Best. All tested projects: subjects.