{
  "data": {
    "a": {
      "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",
      "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-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70.6,
        "grade": "BB",
        "agentReady": true,
        "rank": 154,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 89,
          "payments": 60,
          "reliability": 80,
          "schema": 81,
          "security": 52,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Puppeteer is a stable, Apache-2.0 library on 25.13.0, with ten releases since 27 July 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 the 20 most recent 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": [
          "Ten releases from 25.4.0 on 27 July to 25.13.0 on 8 October 2026, each with a changelog generated by release-please",
          "TypeScript types for the whole API and a generated reference of 643 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, the newest in Windows Chrome and Firefox jobs",
          "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",
          "Packages are ESM only since 25.0.0. Use `import puppeteer from 'puppeteer'` rather than `require`"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70.6
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 89,
          "payments": 60,
          "reliability": 80,
          "schema": 81,
          "security": 52,
          "transparency": 72
        },
        "provenanceScore": 68
      },
      "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": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/puppeteer.json"
    },
    "answer": "Puppeteer scores 70.6 (BB) on agent readiness against Skyvern's 63.1 (B), and leads in 3 of 7 scored categories. Skyvern leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth.",
    "b": {
      "slug": "skyvern",
      "name": "Skyvern",
      "vendor": "Ikonomos Inc. (Skyvern)",
      "vendorUrl": "https://www.skyvern.com",
      "kind": "http-api",
      "category": "browser",
      "summary": "Skyvern is a browser agent that completes multi-step web workflows from natural-language goals using language models and computer vision. It runs as an AGPL-3.0 open-source server or a hosted cloud with a REST API and MCP server.",
      "url": "https://www.anchorterminal.com/tools/skyvern",
      "markdownUrl": "https://www.anchorterminal.com/tools/skyvern.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/skyvern.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/skyvern.json",
      "repo": "https://github.com/Skyvern-AI/skyvern",
      "license": "AGPL-3.0 for the open-source server, SDKs and MCP server. Skyvern Cloud is a proprietary service under Skyvern's terms, and its anti-bot measures aren't in the repository",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.skyvern.com/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "skyvern"
        },
        {
          "registry": "npm",
          "name": "@skyvern/client"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. Sign up at app.skyvern.com and copy the organisation API key from Settings, sent as `x-api-key`. MCP clients can use OAuth 2.0 with browser sign-in, PKCE and dynamic client registration, with no client ID to configure. Both credentials carry full authority over the organisation. OAuth scopes are identity claims, and there are no read-only or per-endpoint keys (https://www.skyvern.com/docs/developers/api/authentication-and-permissions.md).",
      "pricing": "freemium",
      "pricingNotes": "Free with 5,000 one-time credits and 1 concurrent run, no card and no contract. Hobby $29 a month with 30,000 credits and 10 concurrent runs. Pro $149 with 150,000 credits and 25 concurrent runs. Enterprise is custom. Extra credits can be bought from the Billing page at a price that isn't published. The billing docs count one credit a browser action, while the pricing page puts 5,000 credits at about 170 actions. Self-hosting the AGPL-3.0 server is free with your own model keys (https://www.skyvern.com/pricing, https://www.skyvern.com/docs/cloud/account-settings/billing-usage.md, checked 2026-10-08).",
      "priceSummary": "$29 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs (llms-full.txt), llms.txt or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 114,
      "popularity": {
        "githubStars": 23155,
        "npmWeekly": 3193,
        "pypiWeekly": 1636,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.skyvern.com/docs",
      "llmsTxt": "https://www.skyvern.com/docs/llms.txt",
      "openapi": "https://www.skyvern.com/docs/api-reference/openapi.json",
      "registryName": "io.github.Skyvern-AI/skyvern",
      "capabilities": [
        "browser.control",
        "browser.hosted",
        "web.extract",
        "automation.workflows",
        "browser.debug"
      ],
      "tags": [
        "official",
        "hosted",
        "open-source",
        "freemium",
        "no-card",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "python",
        "typescript",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.1,
        "grade": "B",
        "agentReady": false,
        "rank": 435,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 14,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 76,
          "maintenance": 85,
          "payments": 32,
          "reliability": 57,
          "schema": 88,
          "security": 59,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-06-30. A public issue reports non-blind SSRF from workflow `http_request` and file download blocks to loopback, private and metadata addresses in version 1.0.39, with a reproduction (https://github.com/Skyvern-AI/skyvern/issues/6915). The issue is still open on 8 October 2026 and no advisory is published, but the 1.0.55 source routes these requests through an SSRF-guarded resolver, so we deduct 3 and not more. We didn't reproduce it, and whether Skyvern Cloud was exposed isn't stated."
        ],
        "verdict": "The hosted MCP server annotates every tool as read-only or destructive and can advertise a 29 or 32-tool subset in place of 114, and the API has a written six-month deprecation policy. Every key and OAuth token carries full organisation authority, with no read-only or scoped credential, and no request rate limits are documented.",
        "bestFor": "Agents that must finish a multi-step job on sites with logins, 2FA and forms, where stored credentials, saved workflows and cached scripts matter more than raw browser time.",
        "strengths": [
          "Every MCP tool carries readOnlyHint, destructiveHint and openWorldHint annotations, 117 registrations in the 1.0.55 source",
          "Hosted MCP scopes cut the advertised tools from 114 to 29 (`operate`) or 32 (`lean`) by URL or `X-Skyvern-Scope` header",
          "Written deprecation policy with six months' notice, 12 for a major version, and `Deprecation` and `Sunset` response headers",
          "OpenAPI 3.1.0 with 94 operations, llms.txt, Markdown twins of every docs page and a weekly dated changelog",
          "Stored passwords, cards and TOTP secrets are injected into the browser and replaced by placeholders in prompts, recordings and logs, per the docs"
        ],
        "weaknesses": [
          "Every API key and OAuth token has full organisation authority. The docs state there are no read-only, per-endpoint or per-resource keys",
          "No request rate limits in the docs. Responses carry `ratelimit-policy: \"submit-run\";q=50;w=60`, and only plan concurrency is published",
          "What a credit buys is stated three ways (one credit an action, 5,000 credits for about 170 or about 200 actions, by run complexity)",
          "An SSRF report against 1.0.39 from 30 June 2026 is still open with no advisory, though 1.0.55 source has SSRF guards",
          "Retention is \"as long as necessary\", anonymised data may train models unless you opt out by email, and no subprocessor list was readable"
        ],
        "agentNotes": [
          "Connect to https://api.skyvern.com/mcp/x/lean or /x/operate, or send `X-Skyvern-Scope`, so the client loads 32 or 29 tools. The scope filters the list and does not limit permissions",
          "Use a separate Skyvern organisation for each blast radius. Any key or OAuth token can read and write stored credentials and delete workflows",
          "Never pass passwords to `skyvern_act` or `skyvern_type`. Store them as credentials and call `skyvern_login`",
          "Set `max_steps` on tasks, or `x-max-steps-override` on agent runs, to cap credits. A run that reaches the cap ends as `timed_out`",
          "On 503 from POST /v1/run/agents, wait `Retry-After` seconds. No run was created, so resubmitting is safe"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.1
          }
        ],
        "editorialScores": {
          "ergonomics": 76,
          "maintenance": 85,
          "payments": 32,
          "reliability": 57,
          "schema": 88,
          "security": 59,
          "transparency": 66
        },
        "provenanceScore": 78
      },
      "connect": {
        "install": "pip install skyvern",
        "http": "curl -X POST \"https://api.skyvern.com/v1/run/tasks\" -H \"x-api-key: YOUR_API_KEY\" -H \"Content-Type: application/json\" -d '{ \"url\": \"https://example.com\", \"prompt\": \"Extract the pricing table\" }'",
        "claudeCode": "claude mcp add --transport http skyvern https://api.skyvern.com/mcp/ --scope user",
        "config": {
          "mcpServers": {
            "Skyvern": {
              "headers": {
                "x-api-key": "YOUR_SKYVERN_API_KEY"
              },
              "type": "streamable-http",
              "url": "https://api.skyvern.com/mcp/"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/browser.control",
        "tool": "https://letme.dev/skyvern"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Hobby plan",
          "unit": "month",
          "usd": 29,
          "note": "30,000 credits, 10 concurrent runs"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 149,
          "note": "150,000 credits, 25 concurrent runs"
        },
        {
          "item": "Skyvern SMS number, Pro plan",
          "unit": "month",
          "usd": 10,
          "note": "per number, for SMS 2FA codes"
        }
      ],
      "provenance": {
        "legalEntity": "Ikonomos Inc.",
        "domain": "skyvern.com",
        "domainRegistered": "2023-10-16",
        "endpointOnVendorDomain": true,
        "terms": "https://www.skyvern.com/terms",
        "privacy": "https://www.skyvern.com/privacy",
        "statusPage": "https://status.skyvern.com",
        "changelog": "https://www.skyvern.com/docs/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms (last modified 27 February 2026) and privacy policy (last modified 1 October 2026) name Ikonomos Inc., doing business as Skyvern, with Delaware law governing the terms.",
          "The API and the hosted MCP server answer at api.skyvern.com. OAuth is issued through clerk.skyvern.com, backed by Clerk.",
          "www.skyvern.com/.well-known/security.txt and api.skyvern.com/.well-known/security.txt both return 404. SECURITY.md in the repository sends reports to GitHub private advisories.",
          "RDAP for skyvern.com gives a registration date of 2023-10-16.",
          "docs.skyvern.com redirects to www.skyvern.com/docs."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/skyvern.json",
      "live": {
        "slug": "skyvern",
        "probe": {
          "target": "https://api.skyvern.com/v1",
          "method": "get",
          "lastAt": "2026-10-14T10:00:05.260027832Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 275,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 262,
          "p95ms24h": 380,
          "samples24h": 248,
          "samples30d": 1435,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 103,
              "ok": 103
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.skyvern.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-14T09:53:29.623399681Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Skyvern-AI/skyvern",
            "version": "v1.0.55",
            "released": "2026-10-01",
            "seenAt": "2026-10-13T23:25:06.08704063Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.Skyvern-AI/skyvern",
            "version": "1.0.23",
            "seenAt": "2026-10-14T04:18:30.41681267Z"
          },
          {
            "registry": "npm",
            "name": "@skyvern/client",
            "version": "1.0.55",
            "seenAt": "2026-10-13T23:25:04.615917993Z"
          },
          {
            "registry": "pypi",
            "name": "skyvern",
            "version": "1.0.55",
            "released": "2026-10-01",
            "seenAt": "2026-10-13T23:25:04.427713905Z"
          }
        ],
        "githubStars": 23193,
        "npmWeekly": 4765,
        "pypiWeekly": 1629,
        "securityTxt": {
          "url": "https://skyvern.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-13T15:46:07.19644158Z"
        },
        "llmsTxt": {
          "url": "https://www.skyvern.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-13T14:12:34.848851367Z"
        },
        "domain": {
          "domain": "skyvern.com",
          "registered": "2023-10-16",
          "source": "https://rdap.verisign.com/com/v1/domain/skyvern.com",
          "checkedAt": "2026-10-11T13:15:25.842496232Z"
        },
        "pages": [
          {
            "url": "https://www.skyvern.com/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-13T20:32:13.61028178Z",
            "changedAt": "2026-10-13T20:32:13.61028178Z",
            "fingerprint": "07dd2c7be8bc"
          },
          {
            "url": "https://www.skyvern.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-13T20:32:16.100803238Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "60620adf4132"
          },
          {
            "url": "https://www.skyvern.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-13T20:32:17.872945399Z",
            "changedAt": "2026-10-12T20:07:26.989069239Z",
            "fingerprint": "e095b9aa11c7"
          },
          {
            "url": "https://www.skyvern.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-13T20:32:19.878661945Z",
            "changedAt": "2026-10-09T18:54:24.947760898Z",
            "fingerprint": "a8309500f1f7"
          }
        ],
        "updatedAt": "2026-10-14T10:00:05.260027832Z"
      }
    },
    "facts": [
      {
        "a": "SDK + MCP",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Google",
        "b": "Ikonomos Inc. (Skyvern)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.skyvern.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "AGPL-3.0 for the open-source server, SDKs and MCP server. Skyvern Cloud is a proprietary service under Skyvern's terms, and its anti-bot measures aren't in the repository",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "114",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.Skyvern-AI/skyvern",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-08",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-02-27",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-10-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "96k stars, 11.5M npm/wk",
        "b": "23k stars, 3.2k npm/wk, 1.6k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Puppeteer scores 70.6 (BB) on agent readiness against Skyvern's 63.1 (B), and leads in 3 of 7 scored categories. Skyvern leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth.",
        "question": "Which is better for AI agents, Puppeteer or Skyvern?"
      },
      {
        "answer": "No hosted endpoint is listed for Puppeteer. Skyvern has a hosted endpoint at https://api.skyvern.com/v1.",
        "question": "Can an agent call Puppeteer and Skyvern without installing anything?"
      },
      {
        "answer": "Yes. Puppeteer is open source (Apache-2.0). Skyvern is open source (AGPL-3.0 for the open-source server, SDKs and MCP server. Skyvern Cloud is a proprietary service under Skyvern's terms, and its anti-bot measures aren't in the repository).",
        "question": "Are Puppeteer and Skyvern open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 57",
          "Payments \u0026 pricing, 60 against 32"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "No key needed to call it",
          "No incidents deducted, where Skyvern loses 3 points for them"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 88 against 81",
          "Agent ergonomics, 76 against 67",
          "Security \u0026 auth, 59 against 52"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "Agents that must finish a multi-step job on sites with logins, 2FA and forms, where stored credentials, saved workflows and cached scripts matter more than raw browser time.",
        "slug": "skyvern",
        "watchFor": "Every API key and OAuth token has full organisation authority. The docs state there are no read-only, per-endpoint or per-resource keys"
      }
    ],
    "job": {
      "capability": "browser.control",
      "name": "Browser automation"
    },
    "others": [
      {
        "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/agent-browser-vs-skyvern.json",
        "title": "agent-browser vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/agent-browser-vs-skyvern"
      },
      {
        "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/airtop-vs-skyvern.json",
        "title": "Airtop vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/airtop-vs-skyvern"
      },
      {
        "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/anchor-browser-vs-skyvern.json",
        "title": "Anchor Browser vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/anchor-browser-vs-skyvern"
      },
      {
        "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/browser-use-vs-skyvern.json",
        "title": "Browser Use vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/browser-use-vs-skyvern"
      },
      {
        "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/browserless-vs-skyvern.json",
        "title": "Browserless vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/browserless-vs-skyvern"
      },
      {
        "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/chrome-devtools-mcp-vs-skyvern.json",
        "title": "Chrome DevTools MCP vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-skyvern"
      },
      {
        "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/hyperbrowser-vs-skyvern.json",
        "title": "Hyperbrowser vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/hyperbrowser-vs-skyvern"
      },
      {
        "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/notte-vs-skyvern.json",
        "title": "Notte vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/notte-vs-skyvern"
      },
      {
        "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/playwright-mcp-vs-skyvern.json",
        "title": "Playwright MCP vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/playwright-mcp-vs-skyvern"
      },
      {
        "json": "https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-skyvern.json",
        "title": "Puppeteer (archived MCP reference server) vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-skyvern"
      },
      {
        "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-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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/selenium-vs-skyvern.json",
        "title": "Selenium vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/selenium-vs-skyvern"
      },
      {
        "json": "https://www.anchorterminal.com/compare/skyvern-vs-steel.json",
        "title": "Skyvern vs Steel",
        "url": "https://www.anchorterminal.com/compare/skyvern-vs-steel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/skyvern-vs-tinyfish.json",
        "title": "Skyvern vs TinyFish",
        "url": "https://www.anchorterminal.com/compare/skyvern-vs-tinyfish"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browserbase-vs-skyvern.json",
        "title": "Browserbase vs Skyvern",
        "url": "https://www.anchorterminal.com/compare/browserbase-vs-skyvern"
      }
    ],
    "scores": [
      {
        "by": 23,
        "edge": "puppeteer",
        "key": "reliability",
        "name": "Reliability",
        "puppeteer": 80,
        "skyvern": 57,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "skyvern",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "puppeteer": 81,
        "skyvern": 88,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "skyvern",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "puppeteer": 67,
        "skyvern": 76,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "skyvern",
        "key": "security",
        "name": "Security \u0026 auth",
        "puppeteer": 52,
        "skyvern": 59,
        "weight": 14
      },
      {
        "by": 28,
        "edge": "puppeteer",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "puppeteer": 60,
        "skyvern": 32,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "puppeteer",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "puppeteer": 89,
        "skyvern": 85,
        "weight": 7
      },
      {
        "by": 2,
        "edge": "skyvern",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "puppeteer": 70,
        "skyvern": 72,
        "weight": 7
      }
    ],
    "summary": "Puppeteer scores 70.6 (BB) on agent readiness against Skyvern's 63.1 (B), and leads in 3 of 7 scored categories. Skyvern leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth. Both do browser automation.",
    "verdicts": {
      "puppeteer": "Puppeteer is a stable, Apache-2.0 library on 25.13.0, with ten releases since 27 July 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 the 20 most recent CI runs on main failed between 7 and 13 October 2026.",
      "skyvern": "The hosted MCP server annotates every tool as read-only or destructive and can advertise a 29 or 32-tool subset in place of 114, and the API has a written six-month deprecation policy. Every key and OAuth token carries full organisation authority, with no read-only or scoped credential, and no request rate limits are documented."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/puppeteer-vs-skyvern",
    "json": "https://www.anchorterminal.com/compare/puppeteer-vs-skyvern.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/puppeteer-vs-skyvern.md",
    "slim": "https://www.anchorterminal.com/compare/puppeteer-vs-skyvern.min.md"
  },
  "markdown": "Puppeteer scores 70.6 (BB) on agent readiness against Skyvern's 63.1 (B), and leads in 3 of 7 scored categories. Skyvern leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth. Both do browser automation.\n\n- Puppeteer: grade BB, 70.6/100, rank #154 of 1076. Markdown https://www.anchorterminal.com/tools/puppeteer.md · JSON https://www.anchorterminal.com/api/v1/tools/puppeteer.json\n- Skyvern: grade B, 63.1/100, rank #435 of 1076. Markdown https://www.anchorterminal.com/tools/skyvern.md · JSON https://www.anchorterminal.com/api/v1/tools/skyvern.json\n- Best browser automation tools for AI agents: https://www.anchorterminal.com/best/browser/index.md\n- All 120 browser comparisons: https://www.anchorterminal.com/compare/browser/index.md\n\n## Which one, for what\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 57\n- Payments \u0026 pricing, 60 against 32\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- No key needed to call it\n- No incidents deducted, where Skyvern loses 3 points for them\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### Skyvern (B)\n\nGood for: Agents that must finish a multi-step job on sites with logins, 2FA and forms, where stored credentials, saved workflows and cached scripts matter more than raw browser time.\n\nAhead on:\n- Schema \u0026 documentation, 88 against 81\n- Agent ergonomics, 76 against 67\n- Security \u0026 auth, 59 against 52\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: Every API key and OAuth token has full organisation authority. The docs state there are no read-only, per-endpoint or per-resource keys\n\n\n## Score by category\n\n| Category | Weight | Puppeteer | Skyvern | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 57 | Puppeteer +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 81 | 88 | Skyvern +7 |\n| Agent ergonomics | 13% (16.2 this run) | 67 | 76 | Skyvern +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 52 | 59 | Skyvern +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 32 | Puppeteer +28 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 89 | 85 | Puppeteer +4 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 72 | Skyvern +2 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **70.6 · BB** | **63.1 · B** | |\n\n## Facts side by side\n\n| Fact | Puppeteer | Skyvern |\n| --- | --- | --- |\n| Kind | SDK + MCP | HTTP API |\n| Vendor | Google | Ikonomos Inc. (Skyvern) |\n| Hosted endpoint | no (local only) | `https://api.skyvern.com/v1` |\n| Transports |  | HTTP, Streamable HTTP, stdio |\n| Auth | None | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 | AGPL-3.0 for the open-source server, SDKs and MCP server. Skyvern Cloud is a proprietary service under Skyvern's terms, and its anti-bot measures aren't in the repository |\n| Tools exposed | none | 114 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `io.github.Skyvern-AI/skyvern` |\n| Last release | 2026-10-08 | 2026-10-01 |\n| Terms last updated | no document linked | 2026-02-27 |\n| Privacy policy last updated | no document linked | 2026-10-01 |\n| Customer content may train models |  | yes, with an opt-out |\n| Terms restrict automated access |  | not found in the text |\n| Terms restrict benchmarking |  | not found in the text |\n| Terms or service can change without notice |  | not found in the text |\n| Arbitration or class-action waiver |  | yes |\n| Popularity | 96k stars, 11.5M npm/wk | 23k stars, 3.2k npm/wk, 1.6k PyPI/wk |\n\n## Verdicts\n\n**Puppeteer.** Puppeteer is a stable, Apache-2.0 library on 25.13.0, with ten releases since 27 July 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 the 20 most recent CI runs on main failed between 7 and 13 October 2026.\n\n**Skyvern.** The hosted MCP server annotates every tool as read-only or destructive and can advertise a 29 or 32-tool subset in place of 114, and the API has a written six-month deprecation policy. Every key and OAuth token carries full organisation authority, with no read-only or scoped credential, and no request rate limits are documented.\n\n## Before you call either\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. Packages are ESM only since 25.0.0. Use `import puppeteer from 'puppeteer'` rather than `require`\n\n### Skyvern\n\n1. Connect to https://api.skyvern.com/mcp/x/lean or /x/operate, or send `X-Skyvern-Scope`, so the client loads 32 or 29 tools. The scope filters the list and does not limit permissions\n2. Use a separate Skyvern organisation for each blast radius. Any key or OAuth token can read and write stored credentials and delete workflows\n3. Never pass passwords to `skyvern_act` or `skyvern_type`. Store them as credentials and call `skyvern_login`\n4. Set `max_steps` on tasks, or `x-max-steps-override` on agent runs, to cap credits. A run that reaches the cap ends as `timed_out`\n5. On 503 from POST /v1/run/agents, wait `Retry-After` seconds. No run was created, so resubmitting is safe\n\n## Questions\n\n### Which is better for AI agents, Puppeteer or Skyvern?\n\nPuppeteer scores 70.6 (BB) on agent readiness against Skyvern's 63.1 (B), and leads in 3 of 7 scored categories. Skyvern leads on schema \u0026 documentation, agent ergonomics and security \u0026 auth.\n\n### Can an agent call Puppeteer and Skyvern without installing anything?\n\nNo hosted endpoint is listed for Puppeteer. Skyvern has a hosted endpoint at https://api.skyvern.com/v1.\n\n### Are Puppeteer and Skyvern open source?\n\nYes. Puppeteer is open source (Apache-2.0). Skyvern is open source (AGPL-3.0 for the open-source server, SDKs and MCP server. Skyvern Cloud is a proprietary service under Skyvern's terms, and its anti-bot measures aren't in the repository).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/puppeteer-vs-skyvern.json, and with the fewest tokens: https://www.anchorterminal.com/compare/puppeteer-vs-skyvern.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"puppeteer\", \"b\": \"skyvern\"}`. From a terminal: `anchor compare puppeteer skyvern`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/puppeteer.json and https://www.anchorterminal.com/api/v1/tools/skyvern.json\n\n## Other comparisons with Puppeteer or Skyvern\n\n- [agent-browser vs Puppeteer](https://www.anchorterminal.com/compare/agent-browser-vs-puppeteer.md)\n- [agent-browser vs Skyvern](https://www.anchorterminal.com/compare/agent-browser-vs-skyvern.md)\n- [Airtop vs Puppeteer](https://www.anchorterminal.com/compare/airtop-vs-puppeteer.md)\n- [Airtop vs Skyvern](https://www.anchorterminal.com/compare/airtop-vs-skyvern.md)\n- [Anchor Browser vs Puppeteer](https://www.anchorterminal.com/compare/anchor-browser-vs-puppeteer.md)\n- [Anchor Browser vs Skyvern](https://www.anchorterminal.com/compare/anchor-browser-vs-skyvern.md)\n- [Browser Use vs Puppeteer](https://www.anchorterminal.com/compare/browser-use-vs-puppeteer.md)\n- [Browser Use vs Skyvern](https://www.anchorterminal.com/compare/browser-use-vs-skyvern.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- [Browserless vs Skyvern](https://www.anchorterminal.com/compare/browserless-vs-skyvern.md)\n- [Chrome DevTools MCP vs Puppeteer](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-puppeteer.md)\n- [Chrome DevTools MCP vs Skyvern](https://www.anchorterminal.com/compare/chrome-devtools-mcp-vs-skyvern.md)\n- [Hyperbrowser vs Puppeteer](https://www.anchorterminal.com/compare/hyperbrowser-vs-puppeteer.md)\n- [Hyperbrowser vs Skyvern](https://www.anchorterminal.com/compare/hyperbrowser-vs-skyvern.md)\n- [Notte vs Puppeteer](https://www.anchorterminal.com/compare/notte-vs-puppeteer.md)\n- [Notte vs Skyvern](https://www.anchorterminal.com/compare/notte-vs-skyvern.md)\n- [Playwright MCP vs Puppeteer](https://www.anchorterminal.com/compare/playwright-mcp-vs-puppeteer.md)\n- [Playwright MCP vs Skyvern](https://www.anchorterminal.com/compare/playwright-mcp-vs-skyvern.md)\n- [Puppeteer (archived MCP reference server) vs Skyvern](https://www.anchorterminal.com/compare/puppeteer-reference-server-archived-vs-skyvern.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 Steel](https://www.anchorterminal.com/compare/puppeteer-vs-steel.md)\n- [Puppeteer vs TinyFish](https://www.anchorterminal.com/compare/puppeteer-vs-tinyfish.md)\n- [Selenium vs Skyvern](https://www.anchorterminal.com/compare/selenium-vs-skyvern.md)\n- [Skyvern vs Steel](https://www.anchorterminal.com/compare/skyvern-vs-steel.md)\n- [Skyvern vs TinyFish](https://www.anchorterminal.com/compare/skyvern-vs-tinyfish.md)\n- [Browserbase vs Skyvern](https://www.anchorterminal.com/compare/browserbase-vs-skyvern.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-14",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Puppeteer vs Skyvern",
        "url": ""
      }
    ],
    "description": "Puppeteer scores 70.6 (BB) to Skyvern's 63.1 (B) for browser automation. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Puppeteer BB 70.6",
      "Skyvern B 63.1",
      "scores"
    ],
    "h1": "Puppeteer vs Skyvern",
    "image": "https://www.anchorterminal.com/assets/og/compare-puppeteer-vs-skyvern.png",
    "path": "/compare/puppeteer-vs-skyvern",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Puppeteer vs Skyvern for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/puppeteer-vs-skyvern"
  },
  "tokens": {
    "markdown": 2650,
    "slim": 780
  },
  "version": 1
}
