# Kernel vs Puppeteer (slim)

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

- Full: https://www.anchorterminal.com/compare/kernel-vs-puppeteer.md (~4,850 tokens) · this version ~2,680 tokens · JSON https://www.anchorterminal.com/compare/kernel-vs-puppeteer.json · canonical https://www.anchorterminal.com/compare/kernel-vs-puppeteer
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-07
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

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.

- Kernel: B 66.9, rank #351 of 1486 · https://www.anchorterminal.com/tools/kernel.min.md
- Puppeteer: BB 70.7, rank #188 of 1486 · https://www.anchorterminal.com/tools/puppeteer.min.md
- Kernel, good 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 A hosted endpoint, with nothing to install.
- Puppeteer, good 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 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.

| Category | Kernel | Puppeteer |
| --- | --- | --- |
| Reliability (16%) | 53 | 80 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 93 | 81 |
| Agent ergonomics (13%) | 84 | 67 |
| Security & auth (14%) | 81 | 52 |
| Payments & pricing (10%) | 65 | 60 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 90 | 89 |
| Transparency & trust (7%) | 61 | 71 |

| Fact (where they differ) | Kernel | Puppeteer |
| --- | --- | --- |
| Kind | HTTP API | SDK + MCP |
| Vendor | Kernel Technologies, Inc. | Google |
| Hosted endpoint | `https://mcp.onkernel.com/mcp` | no (local only) |
| Transports | Streamable HTTP |  |
| Auth | OAuth or key | None |
| Pricing | Pay per use | Free |
| Licence | none | Apache-2.0 |
| Tools exposed | 32 | none |
| 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) |

Why the edge:
- 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).)
