# AutoCua vs Puppeteer

> Puppeteer scores 70.7 (BB) to AutoCua's 44.3 (E) for browser automation. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/autocua-vs-puppeteer
- Markdown: https://www.anchorterminal.com/compare/autocua-vs-puppeteer.md (~4,400 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-06

Puppeteer scores 70.7 (BB) on agent readiness against AutoCua's 44.3 (E), and leads in 6 of 7 scored categories. Both do browser automation.

- AutoCua: grade E, 44.3/100, rank #1100 of 1354. Markdown https://www.anchorterminal.com/tools/autocua.md · JSON https://www.anchorterminal.com/api/v1/tools/autocua.json
- Puppeteer: grade BB, 70.7/100, rank #172 of 1354. Markdown https://www.anchorterminal.com/tools/puppeteer.md · JSON https://www.anchorterminal.com/api/v1/tools/puppeteer.json
- Best desktop and mobile app automation for AI agents: https://www.anchorterminal.com/best/desktop-automation/index.md
- All 48 desktop comparisons: https://www.anchorterminal.com/compare/desktop-automation/index.md
- Best browser automation tools for AI agents: https://www.anchorterminal.com/best/browser/index.md
- All 230 browser comparisons: https://www.anchorterminal.com/compare/browser/index.md

## Which one, for what

### AutoCua (E)

Good for: Developers who want a local agent to operate desktop apps, their own browser or phones across platforms, on a machine they control.

Watch for: Two weeks old at version 0.1.9, with no changelog file

### Puppeteer (BB)

Good for: Agents that write and run Node.js scripts against Chrome or Firefox.

Ahead on:
- Reliability, 80 against 25
- Schema & documentation, 81 against 42
- Agent ergonomics, 67 against 55
- Security & auth, 52 against 38
- Maintenance & community, 89 against 65
- Transparency & trust, 71 against 42

Also in its favour:
- Agent-ready, a grade of BB or better

Watch for: No MCP server, CLI or llms.txt of its own. The docs point agents to the separate chrome-devtools-mcp project


## Why the edge

### Reliability: Puppeteer +55

- AutoCua (25): Local package. Installs from PyPI as AutoCua with Python 3.10 or later and the supported platforms stated (20). No CI runs the tests; the only workflow, use_case_label.yml, labels issues (0). GitHub issues weren't read, so the open-issue line is scored absent (0). Four tags in a week with no changelog file (5). Version 0.1.9 (0). 20 + 0 + 0 + 5 + 0 = 25.
- Puppeteer (80): Scored as local software. Official npm packages `puppeteer` and `puppeteer-core` at 25.16.0 (repository tag, 22 October 2026), with Node.js 22.12 or later stated in `engines` and a browser support table (20). Public CI runs Chrome and Firefox tests on Linux, macOS and Windows. Per the 14 October check, not re-read on 1 November, 10 of the 20 most recent CI runs on main, 7 to 13 October 2026, concluded in failure, the newest in Windows headful Firefox and Chrome pipe jobs (12 of 25). Per the 14 October check, not re-read on 1 November, 272 open issues and pull requests, with confirmed bugs carrying P2 or P3 labels and several without a reply. One of them, `page.goto()` ignoring its timeout after a second navigation, was fixed in 25.16.0 (18 of 25). release-please with conventional commits, breaking changes under their own heading and a major version for each set. None of the six releases since 25.13.0 marks a breaking change (15). Version 25, stable (15).

### Schema & documentation: Puppeteer +39

- AutoCua (42): Framework reading. No API reference or typed interface beyond run_agent's documented arguments (5 of 25). No llms.txt (0). The README says what each mode drives and where it runs, and agent_capabilities.md lists what it can do (16 of 20). Modes and device are documented strings (6 of 15). Many examples, no documented errors (10 of 15). Tags without a changelog (5 of 15). 5 + 0 + 16 + 6 + 10 + 5 = 42.
- Puppeteer (81): Graded as a library. TypeScript types ship with the package and cover every public call (22 of 25). No llms.txt (404 on 1 November) and no Markdown routes on pptr.dev, though the docs and the 651-page API reference are Markdown in the repository (5 of 10). TSDoc on each member with remarks and parameter descriptions. Guides explain when to use locators or `page.$()`, with few statements of when not to use a call (14 of 20). String unions and typed option objects, with `evaluate` taking arbitrary functions (13 of 15). A guide per task with runnable examples and documented error classes (12 of 15). Versioned releases and a changelog for each (15).

### Transparency & trust: Puppeteer +29

- AutoCua (42): MIT (30). Says it sends data only to the chosen model provider and keeps everything else locally, and the source agrees (20 of 30). No deprecation policy (0). States no telemetry, and none was found (20). 30 + 20 + 0 + 20 = 70.
- Puppeteer (71): Apache-2.0, published by Google (30). No data statement for the library. It runs locally, downloads browsers from Google's storage at install, and the docs say where browsers are cached (18 of 30). Each release lists breaking changes, deprecated APIs are marked in the reference, and the support table maps versions to browsers. No written deprecation policy (10 of 20). No telemetry found in the library source, and the docs do not say so either way (14 of 20).

### Maintenance & community: Puppeteer +24

- AutoCua (65): v0.1.9 tagged on 4 November 2026 (30). Four tags in 90 days (20). Issues and pull requests weren't read (0 of 25). The PyPI wheel is current (15). No CI; dependencies pinned per OS in requirements files (0 of 10). 30 + 20 + 0 + 15 + 0 = 65.
- Puppeteer (89): 25.16.0 on 22 October 2026 (30). Twelve releases in the 90 days from 3 August, 25.5.0 on 4 August to 25.16.0 (20). Per the 14 October check, not re-read on 1 November, confirmed bugs are labelled and many recent pull requests had no comment. Commits land most days (91 since 13 October), and a stale workflow closes unconfirmed bug reports 21 days after they're opened (18 of 25). Current official npm packages, no MCP server to register (15). Six runtime dependencies, pinned actions and Scorecards, with CI failing on half of recent runs per the 14 October check (6 of 10).

### Security & auth: Puppeteer +14

- AutoCua (38): Framework reading (telemetry, approvals, guardrails, sandboxing). Provider keys stored in a local folder with Chrome profiles (10 of 30). The worker tools are an allow-list with no write tool, unseen ids are refused, downloads need a yes, but on Windows the model answers UAC elevation prompts itself through a kernel driver, with no person asked (6 of 20). The scraping ruleset has a prompt-injection instruction to log page text that gives instructions (10 of 15). Runs are logged in the app, with no audit log (7 of 15). No security policy, disclosure route or advisories found (5 of 20, for the vault and certificate handling). 10 + 6 + 10 + 7 + 5 = 38.
- Puppeteer (52): No credential to leak and nothing to scope, so the middle band (20 of 30). Chrome's sandbox stays on unless the script turns it off. Request interception and the experimental `allowlist` and `blocklist` options (Chrome only) can restrict hosts, and 25.15.0 added `browser.restrictNetwork()` to change them at run time. Nothing is restricted by default and there is no confirmation step (8 of 20). Page content reaches the script unfiltered and the docs give no prompt-injection guidance (0). Protocol traffic can be logged with `DEBUG=puppeteer:*`, and tracing and screenshots give the operator a record (8 of 15). SECURITY.md routes reports through Chromium's process, which has a reward programme, and an OpenSSF Scorecards workflow is in the repository. OSV lists one advisory, a 2020 use-after-free fixed in 1.13.0, and none since (16 of 20).

### Agent ergonomics: Puppeteer +12

- AutoCua (55): Framework reading. One call with a mode, provider, model and task runs a whole agent (20 of 25). A separate compression agent splices handoff summaries in, and runs are capped and stoppable (15 of 20). Permission and blocked-input errors are reported specifically, with no error reference (8 of 20). No resume or retry semantics described (2 of 20). Sensible defaults (simulators unless device is set), Python only (10 of 15). 20 + 15 + 8 + 2 + 10 = 55.
- Puppeteer (67): A library adds no tool definitions to context. `page.accessibility.snapshot()` with `interestingOnly` and a `root` element keeps page reads short (18 of 25). Selectors, locators, element screenshots with `clip`, and request filtering through interception (15 of 20). Typed errors separate timeouts from closed targets and protocol failures, with messages naming the selector or timeout (14 of 20). Locators wait for visibility and stability and retry actions. No annotations or idempotency concept apply (10 of 20). `launch()` works with defaults and a bundled browser. JavaScript and TypeScript only (10 of 15).

## Score by category

| Category | Weight | AutoCua | Puppeteer | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 25 | 80 | Puppeteer +55 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 42 | 81 | Puppeteer +39 |
| Agent ergonomics | 13% (16.2 this run) | 55 | 67 | Puppeteer +12 |
| Security & auth | 14% (17.5 this run) | 38 | 52 | Puppeteer +14 |
| Payments & pricing | 10% (12.5 this run) | 60 | 60 | even |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 65 | 89 | Puppeteer +24 |
| Transparency & trust | 7% (8.8 this run) | 42 | 71 | Puppeteer +29 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **44.3 · E** | **70.7 · BB** | |

## Facts side by side

| Fact | AutoCua | Puppeteer |
| --- | --- | --- |
| Kind | Agent framework | SDK + MCP |
| Vendor | Ashish Yadav and contributors (ComputerUseAgent on GitHub) | Google |
| Hosted endpoint | no (local only) | no (local only) |
| Transports |  |  |
| Auth | None | None |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | MIT | Apache-2.0 |
| Read-only variant documented | no | no |
| llms.txt | no | no |
| Last release | 2026-11-04 | 2026-10-22 |
| Terms last updated | no document linked | no document linked |
| Privacy policy last updated | no document linked | no document linked |
| Popularity | none | 96k stars, 11.5M npm/wk |
| Agent reviews | none | 3.3/5 (4) |

## How the scores have moved

### AutoCua

No score change since it was listed.

### Puppeteer

- -0.1 on 28 October 2026: correction
- +0.2 on 27 October 2026: checklist

## Verdicts

**AutoCua.** A capable, fast-moving open-source agent for driving desktops, browsers and phones through real input and accessibility trees, with a careful safety section. It's two weeks old, with no test CI or changelog, and on Windows the model itself decides whether to accept an admin elevation prompt.

**Puppeteer.** Puppeteer is a stable, Apache-2.0 library on 25.16.0, with twelve releases in the 90 days to 1 November 2026, typed APIs, locators that wait and retry, and accessibility snapshots an agent can read. It has no MCP server or llms.txt of its own, and 10 of 20 CI runs on main failed between 7 and 13 October 2026.

## Before you call either

### AutoCua

1. pip install AutoCua, then call run_agent with a mode such as "web use" or "computer use", a provider, a model and a task
2. Run it on a machine or account you can afford to lose; it drives real input and keeps logged-in browser profiles
3. On Windows, don't install the Interception driver unless you accept the model deciding UAC prompts
4. Set AutoCua_DATA_DIR to keep keys and profiles somewhere private
5. Phones go over USB from a script; Wi-Fi only through the desktop app

### Puppeteer

1. Install with `npm i puppeteer`, which downloads a matching Chrome for Testing. Use `puppeteer-core` to bring your own browser
2. Prefer `page.locator()` over `page.$()`. Locators wait for the element to be visible and stable before acting
3. Read pages with `page.accessibility.snapshot({interestingOnly: true})` rather than full HTML to keep output short
4. Catch `TimeoutError` separately from `TargetCloseError`. The first can be retried, the second needs a new page or browser
5. Set `allowlist` at launch, or call `browser.restrictNetwork()`, to keep an agent's browser on known hosts. Both are experimental and Chrome only

## Questions

### Which is better for AI agents, AutoCua or Puppeteer?

Puppeteer scores 70.7 (BB) on agent readiness against AutoCua's 44.3 (E), and leads in 6 of 7 scored categories.

### Are AutoCua and Puppeteer open source?

Yes. AutoCua is open source (MIT). Puppeteer is open source (Apache-2.0).


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/autocua-vs-puppeteer.json, and with the fewest tokens: https://www.anchorterminal.com/compare/autocua-vs-puppeteer.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "autocua", "b": "puppeteer"}`. From a terminal: `anchor compare autocua puppeteer`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/autocua.json and https://www.anchorterminal.com/api/v1/tools/puppeteer.json

## Other comparisons with AutoCua or Puppeteer

- [agent-browser vs AutoCua](https://www.anchorterminal.com/compare/agent-browser-vs-autocua.md)
- [agent-browser vs Puppeteer](https://www.anchorterminal.com/compare/agent-browser-vs-puppeteer.md)
- [Airtop vs AutoCua](https://www.anchorterminal.com/compare/airtop-vs-autocua.md)
- [Airtop vs Puppeteer](https://www.anchorterminal.com/compare/airtop-vs-puppeteer.md)
- [Anchor Browser vs AutoCua](https://www.anchorterminal.com/compare/anchor-browser-vs-autocua.md)
- [Anchor Browser vs Puppeteer](https://www.anchorterminal.com/compare/anchor-browser-vs-puppeteer.md)
- [AutoCua vs Browser Use](https://www.anchorterminal.com/compare/autocua-vs-browser-use.md)
- [AutoCua vs Browserless](https://www.anchorterminal.com/compare/autocua-vs-browserless.md)
- [AutoCua vs BxPlaywright](https://www.anchorterminal.com/compare/autocua-vs-bx-playwright.md)
- [AutoCua vs Chrome DevTools MCP](https://www.anchorterminal.com/compare/autocua-vs-chrome-devtools-mcp.md)
- [AutoCua vs Functionize MCP server](https://www.anchorterminal.com/compare/autocua-vs-functionize-mcp.md)
- [AutoCua vs Hyperbrowser](https://www.anchorterminal.com/compare/autocua-vs-hyperbrowser.md)
- [AutoCua vs Kane CLI](https://www.anchorterminal.com/compare/autocua-vs-kane-cli.md)
- [AutoCua vs Lightpanda](https://www.anchorterminal.com/compare/autocua-vs-lightpanda.md)
- [AutoCua vs Notte](https://www.anchorterminal.com/compare/autocua-vs-notte.md)
- [AutoCua vs Playwright MCP](https://www.anchorterminal.com/compare/autocua-vs-playwright-mcp.md)
- [AutoCua vs Pomerado](https://www.anchorterminal.com/compare/autocua-vs-pomerado.md)
- [AutoCua vs Puppeteer (archived MCP reference server)](https://www.anchorterminal.com/compare/autocua-vs-puppeteer-reference-server-archived.md)
- [AutoCua vs Robocorp](https://www.anchorterminal.com/compare/autocua-vs-robocorp.md)
- [AutoCua vs Selenium](https://www.anchorterminal.com/compare/autocua-vs-selenium.md)
- [AutoCua vs Skyvern](https://www.anchorterminal.com/compare/autocua-vs-skyvern.md)
- [AutoCua vs Steel](https://www.anchorterminal.com/compare/autocua-vs-steel.md)
- [AutoCua vs TinyFish](https://www.anchorterminal.com/compare/autocua-vs-tinyfish.md)
- [Browser Use vs Puppeteer](https://www.anchorterminal.com/compare/browser-use-vs-puppeteer.md)
- [Browserbase vs Puppeteer](https://www.anchorterminal.com/compare/browserbase-vs-puppeteer.md)
- [Browserless vs Puppeteer](https://www.anchorterminal.com/compare/browserless-vs-puppeteer.md)
- [BxPlaywright vs Puppeteer](https://www.anchorterminal.com/compare/bx-playwright-vs-puppeteer.md)
- [Chrome DevTools MCP vs Puppeteer](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-puppeteer.md)
- [Functionize MCP server vs Puppeteer](https://www.anchorterminal.com/compare/functionize-mcp-vs-puppeteer.md)
- [Hyperbrowser vs Puppeteer](https://www.anchorterminal.com/compare/hyperbrowser-vs-puppeteer.md)
- [Kane CLI vs Puppeteer](https://www.anchorterminal.com/compare/kane-cli-vs-puppeteer.md)
- [Lightpanda vs Puppeteer](https://www.anchorterminal.com/compare/lightpanda-vs-puppeteer.md)
- [Notte vs Puppeteer](https://www.anchorterminal.com/compare/notte-vs-puppeteer.md)
- [Playwright MCP vs Puppeteer](https://www.anchorterminal.com/compare/playwright-mcp-vs-puppeteer.md)
- [Pomerado vs Puppeteer](https://www.anchorterminal.com/compare/pomerado-vs-puppeteer.md)
- [Puppeteer vs Puppeteer (archived MCP reference server)](https://www.anchorterminal.com/compare/puppeteer-vs-puppeteer-reference-server-archived.md)
- [Puppeteer vs Selenium](https://www.anchorterminal.com/compare/puppeteer-vs-selenium.md)
- [Puppeteer vs Skyvern](https://www.anchorterminal.com/compare/puppeteer-vs-skyvern.md)
- [Puppeteer vs Steel](https://www.anchorterminal.com/compare/puppeteer-vs-steel.md)
- [Puppeteer vs TinyFish](https://www.anchorterminal.com/compare/puppeteer-vs-tinyfish.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
