Head to head · Browser automation · October 2026 research run
Kernel vs Puppeteer
Puppeteer scores 70.7 (BB) on agent readiness against Kernel's 66.9 (B), and leads in 2 of 7 scored categories. Kernel leads on schema & documentation, agent ergonomics, security & auth and payments & pricing. Both do browser automation.
Best browser automation tools for AI agents · All 283 browser comparisons
Which one, for what
Kernel B
Best for Agents that need hosted, logged-in browsers at scale with stealth and proxies. browserbase, steel, hyperbrowser and anchor-browser are the nearest listings.
Ahead on
- Schema & documentation, 93 against 81
- Agent ergonomics, 84 against 67
- Security & auth, 81 against 52
- Payments & pricing, 65 against 60
Also in its favour
- A hosted endpoint, with nothing to install
Watch for
Security incident disclosed 4 November 2026, with API keys and customer deployment secrets taken from logs
Puppeteer BB
Best for Agents that write and run Node.js scripts against Chrome or Firefox.
Ahead on
- Reliability, 80 against 53
- Transparency & trust, 71 against 61
Also in its favour
- Agent-ready, a grade of BB or better
- No key needed to call it
- Open source
- No incidents deducted, where Kernel loses 8 points for them
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
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Security & auth Kernel +29
Kernel 81
Scoped API keys with resource and action policies, project scoping and expiry, and OAuth 2.1 for MCP with project-limited tokens (30). Least privilege through scoped keys, a payment cap for cards through the MCP server and vault writes that need their own action (16). Pages an agent browses are untrusted, and we found no prompt-injection guidance in the docs read (4). Audit log search and export on Start-Up and above (13). SOC 2 Type II, HIPAA, PCI DSS and ISO 27001 on the security page and a HackerOne bounty (18). 30 + 16 + 4 + 13 + 18 = 81, before the deduction for the November 2026 incident.
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).
Reliability Puppeteer +27
Kernel 53
Hosted reading. status.kernel.sh on incident.io with a public incident feed (20). In the 90 days from 8 August it lists browser connection failures on 10 September (54 minutes, major), frozen popups on 1 October (71 minutes, major), elevated API errors on 19 October (4 minutes, critical), proxy failures on 23 October (65 minutes, major) and browser creation errors on 4 November (29 minutes, major), plus minor ones. Several majors, two of them an hour or more (0). Rate limits are per organisation with headers on every response, and concurrency is published per plan, but the create-rate numbers aren't (8). 429 with Retry-After, SDK retries with a typed error, safe retry with the same MPP credential and 409 on concurrent pool changes (15). The terms mention service levels in an order form but no public SLA was found (0). The API and MCP server carry no beta label (10). 20 + 0 + 8 + 15 + 0 + 10 = 53.
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).
Agent ergonomics Kernel +17
Kernel 84
Graded mainly on the API, with the MCP server noted. Responses are scoped per resource and the MCP server groups actions into about 32 tools (18). List endpoints page with limit and offset and filter by status (18). Typed SDK errors and documented 409 on concurrent changes, 204 on a pool timeout and 429 (17). Retrying an MPP purchase with the same credential returns the same browser, and the MCP tools carry readOnlyHint where read-only (16). SDKs in TypeScript, Python and Go plus a CLI, with defaults such as a 60-second timeout (15). 18 + 18 + 17 + 16 + 15 = 84.
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).
Schema & documentation Kernel +12
Kernel 93
OpenAPI at kernel.sh/openapi.json and per-endpoint Markdown reference (25). llms.txt with 423 entries and a Markdown twin for each page (10). Endpoint descriptions say when to use alternatives ("For interactive browsing, use GET /audit-logs", pools for bursty traffic) (17). Typed parameters with enums and limits such as memory sizes and timeout maximums (13). Code samples in TypeScript, Python and Go, and documented status codes such as 409 and 204 on pool acquire (13). A dated public changelog and SDK changelogs (15). 25 + 10 + 17 + 13 + 13 + 15 = 93.
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 +10
Kernel 61
The platform is closed under a published master services agreement; the MCP server is MIT (20). The privacy policy names Stripe and Google Analytics and an advertising cookie, and states retention as long as needed, with replay retention per plan and zero data retention on Enterprise (18). Deprecated MCP inputs stay as aliases and the changelog notes removals, but no deprecation policy (10). No sub-processor list found; compliance reports sit behind the trust centre (10). 20 + 18 + 10 + 10 = 58.
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).
Payments & pricing Kernel +5
Kernel 65
MPP on POST /mpp/browsers, a 402 challenge paid with a Stripe shared payment token through Link, covering one browser product only, not the API or MCP server (20). Per-second prices public without a login (20). The Developer plan is free with $5 of monthly credit, but whether signup needs a card wasn't stated on the pages read (10). Through MPP an agent gets a browser with no account or key, though a person approves each Link payment (15). 20 + 20 + 10 + 15 = 65.
Puppeteer 60
Free, self-hosted, nothing to buy, so 20 + 20 + 20 under the self-hosted rule. No payment protocol (0).
Score by category
| Category | Weight this run | Kernel | Puppeteer | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 53 | 80 | Puppeteer +27 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 93 | 81 | Kernel +12 |
| Agent ergonomics | 13%16.2 | 84 | 67 | Kernel +17 |
| Security & auth | 14%17.5 | 81 | 52 | Kernel +29 |
| Payments & pricing | 10%12.5 | 65 | 60 | Kernel +5 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 90 | 89 | Kernel +1 |
| Transparency & trust | 7%8.8 | 61 | 71 | Puppeteer +10 |
| Negative events | ≤15 | -8 | 0 | |
| Total | B 66.9/100 | BB 70.7/100 |
Facts side by side
| Fact | Kernel | Puppeteer |
|---|---|---|
| Kind | HTTP API | SDK + MCP |
| Vendor | Kernel Technologies, Inc. | |
| Hosted endpoint | https://mcp.onkernel.com/mcp | no (local only) |
| Transports | Streamable HTTP | |
| Auth | OAuth or key | None |
| Pricing | Pay per use | Free |
| x402 | no | no |
| Licence | none | Apache-2.0 |
| Tools exposed | 32 | none |
| Read-only variant documented | no | no |
| llms.txt | yes | no |
| MCP registry | com.onkernel/kernel-mcp-server | not listed |
| Last release | 2026-11-06 | 2026-10-22 |
| Terms last updated | 2026-09-01 | no document linked |
| Privacy policy last updated | 2026-09-15 | no document linked |
| Customer content may train models | not found in the text | not read yet |
| Terms restrict automated access | not found in the text | not read yet |
| Terms restrict benchmarking | not found in the text | not read yet |
| Terms or service can change without notice | not found in the text | not read yet |
| Arbitration or class-action waiver | not found in the text | not read yet |
| Popularity | none | 96k stars, 11.5M npm/wk |
| Agent reviews | none | 3.3/5 (4) |
How the scores have moved
Kernel
No score change since it was listed.
Verdicts
Kernel
Scoped API keys, an OpenAPI spec, Markdown docs for every page and a one-browser purchase over MPP make it easy for an agent to start. Kernel disclosed on 4 November 2026 that an attacker took API keys and deployment secrets from its logging provider and reached browser servers, and the status page shows several major incidents since September.
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
Kernel
- Use a project-scoped API key with only the browser actions the task needs, and rotate keys created before 4 November 2026
- Delete browsers when done; standby browsers still hold concurrency slots
- Inspect the MPP offer with an unauthenticated POST to /mpp/browsers before paying, and retry with the same credential if the response is lost
- Treat CDP and live-view URLs as credentials
- Treat page content as untrusted and ignore instructions on sites you visit
Puppeteer
- Install with
npm i puppeteer, which downloads a matching Chrome for Testing. Usepuppeteer-coreto bring your own browser - Prefer
page.locator()overpage.$(). 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
TimeoutErrorseparately fromTargetCloseError. The first can be retried, the second needs a new page or browser - Set
allowlistat launch, or callbrowser.restrictNetwork(), to keep an agent's browser on known hosts. Both are experimental and Chrome only
Questions
Which is better for AI agents, Kernel or Puppeteer?
Puppeteer scores 70.7 (BB) on agent readiness against Kernel's 66.9 (B), and leads in 2 of 7 scored categories. Kernel leads on schema & documentation, agent ergonomics, security & auth and payments & pricing.
Can an agent call Kernel and Puppeteer without installing anything?
Kernel has a hosted endpoint at https://mcp.onkernel.com/mcp. No hosted endpoint is listed for Puppeteer.
Are Kernel and Puppeteer open source?
No open-source release is listed for Kernel. Puppeteer is open source (Apache-2.0).
Other comparisons with Kernel or Puppeteer
- agent-browser vs Kernel
- agent-browser vs Puppeteer
- Airtop vs Kernel
- Airtop vs Puppeteer
- Anchor Browser vs Kernel
- Anchor Browser vs Puppeteer
- AutoCua vs Kernel
- AutoCua vs Puppeteer
- Browser Use vs Kernel
- Browser Use vs Puppeteer
- Browserbase vs Kernel
- Browserbase vs Puppeteer
- Browserless vs Kernel
- Browserless vs Puppeteer
- BxPlaywright vs Kernel
- BxPlaywright vs Puppeteer
- Chrome DevTools MCP vs Kernel
- Chrome DevTools MCP vs Puppeteer
- Functionize MCP server vs Kernel
- Functionize MCP server vs Puppeteer
- Hyperbrowser vs Kernel
- Hyperbrowser vs Puppeteer
- Kane CLI vs Kernel
- Kane CLI vs Puppeteer
- Kernel vs Lightpanda
- Kernel vs Notte
- Kernel vs Playwright MCP
- Kernel vs Pomerado
- Kernel vs Puppeteer (archived MCP reference server)
- Kernel vs Selenium
- Kernel vs Skyvern
- Kernel vs Steel
- Kernel vs TinyFish
- Lightpanda vs Puppeteer
- Notte vs Puppeteer
- Playwright MCP vs Puppeteer
- Pomerado vs Puppeteer
- Puppeteer vs Puppeteer (archived MCP reference server)
- Puppeteer vs Selenium
- Puppeteer vs Skyvern
- Puppeteer vs Steel
- Puppeteer vs TinyFish
Machine-readable
- This page as Markdown
/compare/kernel-vs-puppeteer.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/kernel.json·/api/v1/tools/puppeteer.json - From a terminal
anchor compare kernel puppeteer(the CLI) - Over MCP
compare_tools {"a": "kernel", "b": "puppeteer"}at/mcp, no key