{
  "data": {
    "a": {
      "slug": "autocua",
      "name": "AutoCua",
      "vendor": "Ashish Yadav and contributors (ComputerUseAgent on GitHub)",
      "vendorUrl": "https://github.com/ComputerUseAgent/AutoCua",
      "kind": "framework",
      "category": "desktop-automation",
      "summary": "AutoCua is an open-source Python agent that operates a computer the way a person does, desktop apps, a terminal, your own Chrome and iOS or Android phones, with any of 60 models from ten providers.",
      "url": "https://www.anchorterminal.com/tools/autocua",
      "markdownUrl": "https://www.anchorterminal.com/tools/autocua.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/autocua.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/autocua.json",
      "dns": "autocua.grade.anchorterminal.com",
      "repo": "https://github.com/ComputerUseAgent/AutoCua",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "AutoCua"
        }
      ],
      "auth": "none",
      "authNotes": "No account. You bring an API key for the model provider you choose, kept with chats, Chrome profiles and a credential vault in a local AutoCua_data folder.",
      "pricing": "free",
      "pricingNotes": "Free and MIT-licensed. You pay your model provider for tokens. Nothing to buy from the project (checked 2026-11-06).",
      "priceSummary": "Free · OSS",
      "where": "library",
      "x402": {
        "level": "no",
        "evidence": "A local package with nothing to buy and no payment protocol (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://github.com/ComputerUseAgent/AutoCua#readme",
      "capabilities": [
        "browser.control",
        "agent.run"
      ],
      "tags": [
        "open-source",
        "mit",
        "python",
        "computer-use",
        "local",
        "new"
      ],
      "lastRelease": "2026-11-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.3,
        "grade": "E",
        "agentReady": false,
        "rank": 1100,
        "ranked": true,
        "rankOf": 1354,
        "categoryRank": 8,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 55,
          "maintenance": 65,
          "payments": 60,
          "reliability": 25,
          "schema": 42,
          "security": 38,
          "transparency": 42
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Developers who want a local agent to operate desktop apps, their own browser or phones across platforms, on a machine they control.",
        "strengths": [
          "One run_agent call drives the desktop, a terminal, your Chrome, or an iOS or Android device",
          "Element picking from accessibility trees and OCR instead of pixel coordinates",
          "Credentials typed from a vault so the model never sees them, in the browser and phone agents",
          "No telemetry, and nothing downloaded without a yes on the terminal",
          "MIT licence, a pip wheel per OS and architecture, and 60 models across ten providers"
        ],
        "weaknesses": [
          "Two weeks old at version 0.1.9, with no changelog file",
          "No CI running the tests; the only workflow labels issues",
          "On Windows the model answers UAC elevation prompts itself through a kernel input driver",
          "Keeps API keys and logged-in Chrome profiles in a local folder next to the checkout",
          "No API reference beyond the README"
        ],
        "agentNotes": [
          "pip install AutoCua, then call run_agent with a mode such as \"web use\" or \"computer use\", a provider, a model and a task",
          "Run it on a machine or account you can afford to lose; it drives real input and keeps logged-in browser profiles",
          "On Windows, don't install the Interception driver unless you accept the model deciding UAC prompts",
          "Set AutoCua_DATA_DIR to keep keys and profiles somewhere private",
          "Phones go over USB from a script; Wi-Fi only through the desktop app"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44.3
          }
        ],
        "editorialScores": {
          "ergonomics": 55,
          "maintenance": 65,
          "payments": 60,
          "reliability": 25,
          "schema": 42,
          "security": 38,
          "transparency": 70
        },
        "provenanceScore": 13,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install AutoCua\n# then, in Python:\n# from AutoCua.agent_launcher import run_agent\n# run_agent(mode=\"web use\", provider=\"openrouter\", model=\"gemini-3.8-flash\", task=\"Open wikipedia.org and summarise today's featured article.\")"
      },
      "letme": {
        "capability": "https://letme.dev/browser.control",
        "tool": "https://letme.dev/autocua"
      },
      "area": "developer",
      "provenance": {
        "legalEntity": "",
        "domain": "github.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The licence names Ashish Yadav as copyright holder; most commits are from the GitHub user FunctionFreak. No company, site or terms were found.",
          "github.com/AutoCua/AutoCua and github.com/ComputerUseAgent/AutoCua serve the same main branch, so one is a rename or mirror of the other."
        ],
        "score": 13
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/autocua.json"
    },
    "answer": "Puppeteer scores 70.7 (BB) on agent readiness against AutoCua's 44.3 (E), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "puppeteer",
      "name": "Puppeteer",
      "vendor": "Google",
      "vendorUrl": "https://pptr.dev",
      "kind": "sdk",
      "category": "browser",
      "summary": "Puppeteer is Google's open-source Node.js library for controlling Chrome and Firefox over the DevTools Protocol and WebDriver BiDi. An agent writes and runs scripts that navigate, click, type, read pages and take screenshots.",
      "url": "https://www.anchorterminal.com/tools/puppeteer",
      "markdownUrl": "https://www.anchorterminal.com/tools/puppeteer.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/puppeteer.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/puppeteer.json",
      "dns": "puppeteer.grade.anchorterminal.com",
      "repo": "https://github.com/puppeteer/puppeteer",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "puppeteer"
        },
        {
          "registry": "npm",
          "name": "puppeteer-core"
        }
      ],
      "auth": "none",
      "authNotes": "No account or key. The library runs on the owner's machine and launches or connects to a local browser. Site logins live in the browser profile or cookies the script sets. `puppeteer.connect()` to a remote browser uses whatever that endpoint requires.",
      "pricing": "free",
      "pricingNotes": "Free and open source under Apache-2.0, with nothing to buy and no hosted service from Google. `npm i puppeteer` downloads Chrome for Testing and chrome-headless-shell at install time (checked 2026-10-14).",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the docs or the source (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 95689,
        "npmWeekly": 11547242,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://pptr.dev",
      "capabilities": [
        "browser.control",
        "browser.debug"
      ],
      "tags": [
        "official",
        "local",
        "open-source",
        "browser",
        "sdk",
        "typescript",
        "no-auth"
      ],
      "lastRelease": "2026-10-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.7,
        "grade": "BB",
        "agentReady": true,
        "rank": 172,
        "ranked": true,
        "rankOf": 1354,
        "categoryRank": 6,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 89,
          "payments": 60,
          "reliability": 80,
          "schema": 81,
          "security": 52,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Agents that write and run Node.js scripts against Chrome or Firefox.",
        "strengths": [
          "Twelve releases from 25.5.0 on 4 August to 25.16.0 on 22 October 2026, each with a changelog generated by release-please",
          "TypeScript types for the whole API and a generated reference of 651 Markdown pages in the repository",
          "`page.accessibility.snapshot()` and the Locator API, which waits for elements and retries actions, suit scripted agent use",
          "Each release pins a tested Chrome for Testing and Firefox version, listed in a public support table",
          "Typed errors such as `TimeoutError`, `TargetCloseError` and `ConnectionClosedError` let a script tell timeouts from a closed browser"
        ],
        "weaknesses": [
          "No MCP server, CLI or llms.txt of its own. The docs point agents to the separate chrome-devtools-mcp project",
          "10 of the 20 most recent CI runs on main, 7 to 13 October 2026, concluded in failure, per the 14 October check",
          "Page content reaches the agent unfiltered, and the docs have no prompt-injection or untrusted-content guidance",
          "JavaScript and TypeScript only, with Node.js 22.12 or later required since 25.0.0",
          "A stale workflow marks unconfirmed bug reports after 14 days and closes them 7 days later"
        ],
        "agentNotes": [
          "Install with `npm i puppeteer`, which downloads a matching Chrome for Testing. Use `puppeteer-core` to bring your own browser",
          "Prefer `page.locator()` over `page.$()`. Locators wait for the element to be visible and stable before acting",
          "Read pages with `page.accessibility.snapshot({interestingOnly: true})` rather than full HTML to keep output short",
          "Catch `TimeoutError` separately from `TargetCloseError`. The first can be retried, the second needs a new page or browser",
          "Set `allowlist` at launch, or call `browser.restrictNetwork()`, to keep an agent's browser on known hosts. Both are experimental and Chrome only"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.7
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 89,
          "payments": 60,
          "reliability": 80,
          "schema": 81,
          "security": 52,
          "transparency": 72
        },
        "provenanceScore": 70,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-10-28",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm i puppeteer"
      },
      "letme": {
        "capability": "https://letme.dev/browser.control",
        "tool": "https://letme.dev/puppeteer"
      },
      "area": "developer",
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "pptr.dev",
        "domainRegistered": "2018-05-23",
        "domainNote": "pptr.dev is the documentation site for Puppeteer, with a footer reading Copyright 2026 Google, Inc. RDAP gives a registration date of 23 May 2018. The repository is in the puppeteer organisation on GitHub. pptr.dev answers 404 for /.well-known/security.txt.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/puppeteer/puppeteer/blob/main/packages/puppeteer-core/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "No terms or privacy document governs this software beyond the Apache-2.0 licence, so `terms` and `privacy` are left out. The pptr.dev footer links Google's cookie policy for the site itself."
        ],
        "score": 70
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/puppeteer.json",
      "live": {
        "slug": "puppeteer",
        "versions": [
          {
            "registry": "github",
            "name": "puppeteer/puppeteer",
            "version": "browsers-v3.2.6",
            "released": "2026-10-22",
            "seenAt": "2026-11-05T22:00:37.735631871Z"
          },
          {
            "registry": "npm",
            "name": "puppeteer",
            "version": "25.16.0",
            "seenAt": "2026-11-05T22:00:35.4955176Z"
          },
          {
            "registry": "npm",
            "name": "puppeteer-core",
            "version": "25.16.0",
            "seenAt": "2026-11-05T22:00:35.7542161Z"
          }
        ],
        "githubStars": 95807,
        "npmWeekly": 15378894,
        "securityTxt": {
          "url": "https://pptr.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-05T15:55:24.713061207Z"
        },
        "domain": {
          "domain": "pptr.dev",
          "registered": "2018-05-23",
          "source": "https://pubapi.registry.google/rdap/domain/pptr.dev",
          "checkedAt": "2026-11-01T14:08:02.366811309Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/puppeteer/puppeteer/main/packages/puppeteer-core/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-05T13:07:00.442773302Z",
            "changedAt": "2026-10-23T01:57:02.726852313Z",
            "fingerprint": "4a9af542fec3"
          }
        ],
        "github": {
          "repo": "puppeteer/puppeteer",
          "checkedAt": "2026-11-02T09:19:12.157007412Z",
          "stars": 95789,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-01T11:56:31Z",
          "openIssues": 163,
          "openPRs": 56,
          "issuesOpened90d": 41,
          "issuesClosed90d": 127,
          "prsMerged90d": 273,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 46,
            "failure": 3,
            "other": 1,
            "latest": "success",
            "latestAt": "2026-10-30T15:16:55Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 1,
            "medianDays": 2.3
          }
        },
        "updatedAt": "2026-11-05T22:00:37.735631871Z"
      }
    },
    "edges": [
      {
        "by": 55,
        "category": "reliability",
        "leads": "puppeteer",
        "name": "Reliability",
        "reasons": {
          "a": "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.",
          "b": "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)."
        },
        "scores": {
          "a": 25,
          "b": 80
        }
      },
      {
        "by": 39,
        "category": "schema",
        "leads": "puppeteer",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "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)."
        },
        "scores": {
          "a": 42,
          "b": 81
        }
      },
      {
        "by": 29,
        "category": "transparency",
        "leads": "puppeteer",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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.",
          "b": "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)."
        },
        "scores": {
          "a": 42,
          "b": 71
        }
      },
      {
        "by": 24,
        "category": "maintenance",
        "leads": "puppeteer",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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.",
          "b": "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)."
        },
        "scores": {
          "a": 65,
          "b": 89
        }
      },
      {
        "by": 14,
        "category": "security",
        "leads": "puppeteer",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "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)."
        },
        "scores": {
          "a": 38,
          "b": 52
        }
      },
      {
        "by": 12,
        "category": "ergonomics",
        "leads": "puppeteer",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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.",
          "b": "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)."
        },
        "scores": {
          "a": 55,
          "b": 67
        }
      }
    ],
    "facts": [
      {
        "a": "Agent framework",
        "b": "SDK + MCP",
        "name": "Kind"
      },
      {
        "a": "Ashish Yadav and contributors (ComputerUseAgent on GitHub)",
        "b": "Google",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "None",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-04",
        "b": "2026-10-22",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "none",
        "b": "96k stars, 11.5M npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Puppeteer scores 70.7 (BB) on agent readiness against AutoCua's 44.3 (E), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, AutoCua or Puppeteer?"
      },
      {
        "answer": "Yes. AutoCua is open source (MIT). Puppeteer is open source (Apache-2.0).",
        "question": "Are AutoCua and Puppeteer open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Developers who want a local agent to operate desktop apps, their own browser or phones across platforms, on a machine they control.",
        "slug": "autocua",
        "watchFor": "Two weeks old at version 0.1.9, with no changelog file"
      },
      {
        "aheadOn": [
          "Reliability, 80 against 25",
          "Schema \u0026 documentation, 81 against 42",
          "Agent ergonomics, 67 against 55",
          "Security \u0026 auth, 52 against 38",
          "Maintenance \u0026 community, 89 against 65",
          "Transparency \u0026 trust, 71 against 42"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "Agents that write and run Node.js scripts against Chrome or Firefox.",
        "slug": "puppeteer",
        "watchFor": "No MCP server, CLI or llms.txt of its own. The docs point agents to the separate chrome-devtools-mcp project"
      }
    ],
    "history": {
      "autocua": null,
      "puppeteer": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 70.8,
          "fromGrade": "BB",
          "to": 70.7,
          "toGrade": "BB"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 70.6,
          "fromGrade": "BB",
          "to": 70.8,
          "toGrade": "BB"
        }
      ]
    },
    "job": {
      "capability": "browser.control",
      "name": "Browser automation"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-browser-vs-autocua.json",
        "title": "agent-browser vs AutoCua",
        "url": "https://www.anchorterminal.com/compare/agent-browser-vs-autocua"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agent-browser-vs-puppeteer.json",
        "title": "agent-browser vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/agent-browser-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airtop-vs-autocua.json",
        "title": "Airtop vs AutoCua",
        "url": "https://www.anchorterminal.com/compare/airtop-vs-autocua"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airtop-vs-puppeteer.json",
        "title": "Airtop vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/airtop-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anchor-browser-vs-autocua.json",
        "title": "Anchor Browser vs AutoCua",
        "url": "https://www.anchorterminal.com/compare/anchor-browser-vs-autocua"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anchor-browser-vs-puppeteer.json",
        "title": "Anchor Browser vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/anchor-browser-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-browser-use.json",
        "title": "AutoCua vs Browser Use",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-browser-use"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-browserless.json",
        "title": "AutoCua vs Browserless",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-browserless"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-bx-playwright.json",
        "title": "AutoCua vs BxPlaywright",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-bx-playwright"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-chrome-devtools-mcp.json",
        "title": "AutoCua vs Chrome DevTools MCP",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-chrome-devtools-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-functionize-mcp.json",
        "title": "AutoCua vs Functionize MCP server",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-functionize-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-hyperbrowser.json",
        "title": "AutoCua vs Hyperbrowser",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-hyperbrowser"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-kane-cli.json",
        "title": "AutoCua vs Kane CLI",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-kane-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-lightpanda.json",
        "title": "AutoCua vs Lightpanda",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-lightpanda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-notte.json",
        "title": "AutoCua vs Notte",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-notte"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-playwright-mcp.json",
        "title": "AutoCua vs Playwright MCP",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-playwright-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-pomerado.json",
        "title": "AutoCua vs Pomerado",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-pomerado"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-puppeteer-reference-server-archived.json",
        "title": "AutoCua vs Puppeteer (archived MCP reference server)",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-puppeteer-reference-server-archived"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-robocorp.json",
        "title": "AutoCua vs Robocorp",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-robocorp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-selenium.json",
        "title": "AutoCua vs Selenium",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-skyvern.json",
        "title": "AutoCua vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-skyvern"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-steel.json",
        "title": "AutoCua vs Steel",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-steel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/autocua-vs-tinyfish.json",
        "title": "AutoCua vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/autocua-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browser-use-vs-puppeteer.json",
        "title": "Browser Use vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/browser-use-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserbase-vs-puppeteer.json",
        "title": "Browserbase vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/browserbase-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserless-vs-puppeteer.json",
        "title": "Browserless vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/browserless-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bx-playwright-vs-puppeteer.json",
        "title": "BxPlaywright vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/bx-playwright-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-puppeteer.json",
        "title": "Chrome DevTools MCP vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/functionize-mcp-vs-puppeteer.json",
        "title": "Functionize MCP server vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/functionize-mcp-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperbrowser-vs-puppeteer.json",
        "title": "Hyperbrowser vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/hyperbrowser-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kane-cli-vs-puppeteer.json",
        "title": "Kane CLI vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/kane-cli-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lightpanda-vs-puppeteer.json",
        "title": "Lightpanda vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/lightpanda-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/notte-vs-puppeteer.json",
        "title": "Notte vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/notte-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/playwright-mcp-vs-puppeteer.json",
        "title": "Playwright MCP vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/playwright-mcp-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pomerado-vs-puppeteer.json",
        "title": "Pomerado vs Puppeteer",
        "url": "https://www.anchorterminal.com/compare/pomerado-vs-puppeteer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-vs-puppeteer-reference-server-archived.json",
        "title": "Puppeteer vs Puppeteer (archived MCP reference server)",
        "url": "https://www.anchorterminal.com/compare/puppeteer-vs-puppeteer-reference-server-archived"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-vs-selenium.json",
        "title": "Puppeteer vs Selenium",
        "url": "https://www.anchorterminal.com/compare/puppeteer-vs-selenium"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-vs-skyvern.json",
        "title": "Puppeteer vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/puppeteer-vs-skyvern"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-vs-steel.json",
        "title": "Puppeteer vs Steel",
        "url": "https://www.anchorterminal.com/compare/puppeteer-vs-steel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-vs-tinyfish.json",
        "title": "Puppeteer vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/puppeteer-vs-tinyfish"
      }
    ],
    "panel": null,
    "scores": [
      {
        "autocua": 25,
        "by": 55,
        "edge": "puppeteer",
        "key": "reliability",
        "name": "Reliability",
        "puppeteer": 80,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "autocua": 42,
        "by": 39,
        "edge": "puppeteer",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "puppeteer": 81,
        "weight": 13
      },
      {
        "autocua": 55,
        "by": 12,
        "edge": "puppeteer",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "puppeteer": 67,
        "weight": 13
      },
      {
        "autocua": 38,
        "by": 14,
        "edge": "puppeteer",
        "key": "security",
        "name": "Security \u0026 auth",
        "puppeteer": 52,
        "weight": 14
      },
      {
        "autocua": 60,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "puppeteer": 60,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "autocua": 65,
        "by": 24,
        "edge": "puppeteer",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "puppeteer": 89,
        "weight": 7
      },
      {
        "autocua": 42,
        "by": 29,
        "edge": "puppeteer",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "puppeteer": 71,
        "weight": 7
      }
    ],
    "summary": "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.",
    "tasks": null,
    "tutorials": [],
    "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/autocua-vs-puppeteer",
    "json": "https://www.anchorterminal.com/compare/autocua-vs-puppeteer.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/autocua-vs-puppeteer.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/autocua-vs-puppeteer.min.md"
  },
  "markdown": "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.\n\n- 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\n- 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\n- Best desktop and mobile app automation for AI agents: https://www.anchorterminal.com/best/desktop-automation/index.md\n- All 48 desktop comparisons: https://www.anchorterminal.com/compare/desktop-automation/index.md\n- Best browser automation tools for AI agents: https://www.anchorterminal.com/best/browser/index.md\n- All 230 browser comparisons: https://www.anchorterminal.com/compare/browser/index.md\n\n## Which one, for what\n\n### AutoCua (E)\n\nGood for: Developers who want a local agent to operate desktop apps, their own browser or phones across platforms, on a machine they control.\n\nWatch for: Two weeks old at version 0.1.9, with no changelog file\n\n### Puppeteer (BB)\n\nGood for: Agents that write and run Node.js scripts against Chrome or Firefox.\n\nAhead on:\n- Reliability, 80 against 25\n- Schema \u0026 documentation, 81 against 42\n- Agent ergonomics, 67 against 55\n- Security \u0026 auth, 52 against 38\n- Maintenance \u0026 community, 89 against 65\n- Transparency \u0026 trust, 71 against 42\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: No MCP server, CLI or llms.txt of its own. The docs point agents to the separate chrome-devtools-mcp project\n\n\n## Why the edge\n\n### Reliability: Puppeteer +55\n\n- 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.\n- 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).\n\n### Schema \u0026 documentation: Puppeteer +39\n\n- 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.\n- 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).\n\n### Transparency \u0026 trust: Puppeteer +29\n\n- 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.\n- 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).\n\n### Maintenance \u0026 community: Puppeteer +24\n\n- 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.\n- 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).\n\n### Security \u0026 auth: Puppeteer +14\n\n- 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.\n- 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).\n\n### Agent ergonomics: Puppeteer +12\n\n- 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.\n- 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).\n\n## Score by category\n\n| Category | Weight | AutoCua | Puppeteer | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 25 | 80 | Puppeteer +55 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 42 | 81 | Puppeteer +39 |\n| Agent ergonomics | 13% (16.2 this run) | 55 | 67 | Puppeteer +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 38 | 52 | Puppeteer +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 60 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 65 | 89 | Puppeteer +24 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 42 | 71 | Puppeteer +29 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **44.3 · E** | **70.7 · BB** | |\n\n## Facts side by side\n\n| Fact | AutoCua | Puppeteer |\n| --- | --- | --- |\n| Kind | Agent framework | SDK + MCP |\n| Vendor | Ashish Yadav and contributors (ComputerUseAgent on GitHub) | Google |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  |  |\n| Auth | None | None |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-11-04 | 2026-10-22 |\n| Terms last updated | no document linked | no document linked |\n| Privacy policy last updated | no document linked | no document linked |\n| Popularity | none | 96k stars, 11.5M npm/wk |\n| Agent reviews | none | 3.3/5 (4) |\n\n## How the scores have moved\n\n### AutoCua\n\nNo score change since it was listed.\n\n### Puppeteer\n\n- -0.1 on 28 October 2026: correction\n- +0.2 on 27 October 2026: checklist\n\n## Verdicts\n\n**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.\n\n**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.\n\n## Before you call either\n\n### AutoCua\n\n1. pip install AutoCua, then call run_agent with a mode such as \"web use\" or \"computer use\", a provider, a model and a task\n2. Run it on a machine or account you can afford to lose; it drives real input and keeps logged-in browser profiles\n3. On Windows, don't install the Interception driver unless you accept the model deciding UAC prompts\n4. Set AutoCua_DATA_DIR to keep keys and profiles somewhere private\n5. Phones go over USB from a script; Wi-Fi only through the desktop app\n\n### Puppeteer\n\n1. Install with `npm i puppeteer`, which downloads a matching Chrome for Testing. Use `puppeteer-core` to bring your own browser\n2. Prefer `page.locator()` over `page.$()`. Locators wait for the element to be visible and stable before acting\n3. Read pages with `page.accessibility.snapshot({interestingOnly: true})` rather than full HTML to keep output short\n4. Catch `TimeoutError` separately from `TargetCloseError`. The first can be retried, the second needs a new page or browser\n5. Set `allowlist` at launch, or call `browser.restrictNetwork()`, to keep an agent's browser on known hosts. Both are experimental and Chrome only\n\n## Questions\n\n### Which is better for AI agents, AutoCua or Puppeteer?\n\nPuppeteer scores 70.7 (BB) on agent readiness against AutoCua's 44.3 (E), and leads in 6 of 7 scored categories.\n\n### Are AutoCua and Puppeteer open source?\n\nYes. AutoCua is open source (MIT). Puppeteer is open source (Apache-2.0).\n\n\n## For agents\n\n- 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\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"autocua\", \"b\": \"puppeteer\"}`. From a terminal: `anchor compare autocua puppeteer`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/autocua.json and https://www.anchorterminal.com/api/v1/tools/puppeteer.json\n\n## Other comparisons with AutoCua or Puppeteer\n\n- [agent-browser vs AutoCua](https://www.anchorterminal.com/compare/agent-browser-vs-autocua.md)\n- [agent-browser vs Puppeteer](https://www.anchorterminal.com/compare/agent-browser-vs-puppeteer.md)\n- [Airtop vs AutoCua](https://www.anchorterminal.com/compare/airtop-vs-autocua.md)\n- [Airtop vs Puppeteer](https://www.anchorterminal.com/compare/airtop-vs-puppeteer.md)\n- [Anchor Browser vs AutoCua](https://www.anchorterminal.com/compare/anchor-browser-vs-autocua.md)\n- [Anchor Browser vs Puppeteer](https://www.anchorterminal.com/compare/anchor-browser-vs-puppeteer.md)\n- [AutoCua vs Browser Use](https://www.anchorterminal.com/compare/autocua-vs-browser-use.md)\n- [AutoCua vs Browserless](https://www.anchorterminal.com/compare/autocua-vs-browserless.md)\n- [AutoCua vs BxPlaywright](https://www.anchorterminal.com/compare/autocua-vs-bx-playwright.md)\n- [AutoCua vs Chrome DevTools MCP](https://www.anchorterminal.com/compare/autocua-vs-chrome-devtools-mcp.md)\n- [AutoCua vs Functionize MCP server](https://www.anchorterminal.com/compare/autocua-vs-functionize-mcp.md)\n- [AutoCua vs Hyperbrowser](https://www.anchorterminal.com/compare/autocua-vs-hyperbrowser.md)\n- [AutoCua vs Kane CLI](https://www.anchorterminal.com/compare/autocua-vs-kane-cli.md)\n- [AutoCua vs Lightpanda](https://www.anchorterminal.com/compare/autocua-vs-lightpanda.md)\n- [AutoCua vs Notte](https://www.anchorterminal.com/compare/autocua-vs-notte.md)\n- [AutoCua vs Playwright MCP](https://www.anchorterminal.com/compare/autocua-vs-playwright-mcp.md)\n- [AutoCua vs Pomerado](https://www.anchorterminal.com/compare/autocua-vs-pomerado.md)\n- [AutoCua vs Puppeteer (archived MCP reference server)](https://www.anchorterminal.com/compare/autocua-vs-puppeteer-reference-server-archived.md)\n- [AutoCua vs Robocorp](https://www.anchorterminal.com/compare/autocua-vs-robocorp.md)\n- [AutoCua vs Selenium](https://www.anchorterminal.com/compare/autocua-vs-selenium.md)\n- [AutoCua vs Skyvern](https://www.anchorterminal.com/compare/autocua-vs-skyvern.md)\n- [AutoCua vs Steel](https://www.anchorterminal.com/compare/autocua-vs-steel.md)\n- [AutoCua vs TinyFish](https://www.anchorterminal.com/compare/autocua-vs-tinyfish.md)\n- [Browser Use vs Puppeteer](https://www.anchorterminal.com/compare/browser-use-vs-puppeteer.md)\n- [Browserbase vs Puppeteer](https://www.anchorterminal.com/compare/browserbase-vs-puppeteer.md)\n- [Browserless vs Puppeteer](https://www.anchorterminal.com/compare/browserless-vs-puppeteer.md)\n- [BxPlaywright vs Puppeteer](https://www.anchorterminal.com/compare/bx-playwright-vs-puppeteer.md)\n- [Chrome DevTools MCP vs Puppeteer](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-puppeteer.md)\n- [Functionize MCP server vs Puppeteer](https://www.anchorterminal.com/compare/functionize-mcp-vs-puppeteer.md)\n- [Hyperbrowser vs Puppeteer](https://www.anchorterminal.com/compare/hyperbrowser-vs-puppeteer.md)\n- [Kane CLI vs Puppeteer](https://www.anchorterminal.com/compare/kane-cli-vs-puppeteer.md)\n- [Lightpanda vs Puppeteer](https://www.anchorterminal.com/compare/lightpanda-vs-puppeteer.md)\n- [Notte vs Puppeteer](https://www.anchorterminal.com/compare/notte-vs-puppeteer.md)\n- [Playwright MCP vs Puppeteer](https://www.anchorterminal.com/compare/playwright-mcp-vs-puppeteer.md)\n- [Pomerado vs Puppeteer](https://www.anchorterminal.com/compare/pomerado-vs-puppeteer.md)\n- [Puppeteer vs Puppeteer (archived MCP reference server)](https://www.anchorterminal.com/compare/puppeteer-vs-puppeteer-reference-server-archived.md)\n- [Puppeteer vs Selenium](https://www.anchorterminal.com/compare/puppeteer-vs-selenium.md)\n- [Puppeteer vs Skyvern](https://www.anchorterminal.com/compare/puppeteer-vs-skyvern.md)\n- [Puppeteer vs Steel](https://www.anchorterminal.com/compare/puppeteer-vs-steel.md)\n- [Puppeteer vs TinyFish](https://www.anchorterminal.com/compare/puppeteer-vs-tinyfish.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-06",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "AutoCua vs Puppeteer",
        "url": ""
      }
    ],
    "description": "Puppeteer scores 70.7 (BB) to AutoCua's 44.3 (E) for browser automation. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "AutoCua E 44.3",
      "Puppeteer BB 70.7",
      "scores"
    ],
    "h1": "AutoCua vs Puppeteer",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/autocua-vs-puppeteer",
    "published": "2026-10-01",
    "section": "tools",
    "title": "AutoCua vs Puppeteer for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-06",
    "url": "https://www.anchorterminal.com/compare/autocua-vs-puppeteer"
  },
  "tokens": {
    "markdown": 4400,
    "slim": 2230
  },
  "version": 1
}
