Head to head · Browser automation · October 2026 research run

Kernel vs Steel

Steel scores 71.5 (BB) on agent readiness against Kernel's 66.9 (B), and leads in 3 of 7 scored categories. Kernel leads on schema & documentation, agent ergonomics, security & auth and maintenance & community. Both do browser automation. Steel accepts x402. Kernel doesn't.

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 86
  • Agent ergonomics, 84 against 79
  • Security & auth, 81 against 56
  • Maintenance & community, 90 against 82

Watch for

Security incident disclosed 4 November 2026, with API keys and customer deployment secrets taken from logs

Steel BB

Best for Agents that need a real cloud browser with persistent profiles, stored logins, CAPTCHA solving and a human takeover path, and teams that want an open-source runtime they can also self-host.

Ahead on

  • Reliability, 63 against 53
  • Payments & pricing, 75 against 65

Also in its favour

  • Agent-ready, a grade of BB or better
  • An agent can pay per call over x402, with no account
  • Runs on your own machine
  • Free to start without a card
  • Open source

Watch for

Two incidents of more than an hour hit session creation in the 90 days to 1 November 2026 (23 August, 1 October), per the status history read on 8 October

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 +25

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.

Steel 56

Named API keys, shown once, revoked by deletion, with last-used times and a rotation guide. A global key covers the organisation and can create keys bound to one project through POST /v1/api-keys. No per-permission scopes were found (22). The documented CDP connection passes the key as apiKey in the wss://connect.steel.dev URL, a secret in a query string (minus 10). No read-only key. Projects isolate sessions, credentials and profiles, stored credentials are typed into pages without being shown to the agent, browser action endpoints reject localhost and private addresses since changelog 038, and the MCP server has a scrape-only profile and hands the browser to a person before logins and payments (13). The MCP server fences page content as untrusted and strips hidden text, and its README warns about injection. The API docs carry no such guidance (10). Session logs, recordings, Agent Traces, per-session cost and exports to JSON or CSV give the operator a per-call trail (13). A Vanta trust centre whose contents did not render for us, a HIPAA-ready BAA and SSO on Scale, and a disclosure policy with response times for the MCP server. No security.txt, bug bounty or certification report was found (8).

Reliability Steel +10

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.

Steel 63

Graded as a hosted service, on Steel Cloud. status.steel.dev runs on Better Stack with Steel API, Dashboard, Proxies and Connections components and 90 days of history, per the 8 October check (20). On 1 November its robots.txt disallows every path, so the history wasn't re-read. Per the 8 October check, the 4 hour 10 minute outage of 22 July 2026 has now left the 90-day window, leaving two majors in it, 5 hours 41 minutes of capacity errors on session creation on 23 August and 1 hour 55 minutes of failing session creation on 1 October. Two majors give 5, and anything posted after 8 October is unread, which would also score 5 as no readable history (5). Limits are published per plan, 60 and 600 requests a minute and 10 and 100 concurrent sessions, re-read on 1 November, and 20 a minute on Browser Tools (15). Browser Tools document 429 and a 503 marked safe to retry, the Agent Traces API says to wait for Retry-After, and the SDKs retry 408, 409, 429 and 5xx twice with backoff. No idempotency keys, though session creation accepts a caller-chosen sessionId (10). Support and uptime SLAs are listed for Enterprise only on the pricing page re-read on 1 November, with no terms published (3). The sessions API is not marked beta (10).

Payments & pricing Steel +10

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.

Steel 75

x402 version 2 at x402.steel.dev for scrape, screenshot and PDF, in USDC on Base or Solana. An unpaid request on 1 November 2026 again returned 402 asking 10000 base units, with the resource named as api.paysponge.com. Browser sessions, the main product, aren't covered, so partial (20). Per-hour, per-GB and per-1,000-call prices published without login, on a pricing page last edited 23 October 2026 with the same rates (20). Launch plan with $30 of one-time credit valid 90 days, and the quickstart says no card is required (20). An agent with a wallet gets a scrape, screenshot or PDF with no account, but a browser session needs a person to sign up or run the Stripe CLI, so we award 15 of 20.

Maintenance & community Kernel +8

Kernel 90

The changelog's latest entry is 16 October 2026 and the MCP server repository has commits on 6 November (30). More than three dated changes in 90 days, scoped keys, memory tiers, GPU tier and card payments among them (20). A closed service with a public changelog, Discord, email support and an open-source MCP server with 210 commits since 8 August (15). Official SDKs in three languages, and the MCP server in the registry as com.onkernel/kernel-mcp-server 1.1.0 (15). CI and tests in the MCP repository (10). 30 + 20 + 15 + 15 + 10 = 90.

Steel 82

steel-browser v0.5.5-beta was tagged on 31 October 2026 and changelog 038 is dated 2 October (30). In the 90 days from 3 August, changelog entries on 18 and 25 September and 2 October, steel-browser v0.5.4-beta (25 August) and v0.5.5-beta (31 October), and the MCP server's 3.0.0 on main (9 September). The 24 July entry has left the window and no changelog entry has followed 038 (20). Public changelog, Discord and email support, and steel-browser merged 32 commits between v0.5.4-beta and v0.5.5-beta, among them fixes for session-ID validation in casting, file:// blocking and a Node CVE. GitHub issue reply times were not read (15). Official SDKs exist, but the newest tags are steel-node v0.20.0 and steel-python v0.19.0 from 23 June, with no commit after 11 September, npm and PyPI didn't resolve from our shell on 1 November, and the MCP server is not in the MCP registry, per the 8 October check (9). CI workflows in steel-browser and a test, byte-budget and conformance suite in the MCP server. Whether they pass was not read (8).

Schema & documentation Kernel +7

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.

Steel 86

OpenAPI 3.0.3 at docs.steel.dev/openapi.json with 51 paths and 75 operations and the steel-api-key header scheme (25). llms.txt, llms-full.txt and a Markdown twin of every docs page (10). 65 of 75 operations carry a description, and the MCP server's tool descriptions say when to use each tool and when to pick another (16). Inputs are typed with enums, UUID formats and list limits of 1 to 100, but timeout and concurrency carry no real bounds and useProxy and region have no stated type (11). One shared error schema is attached to most operations and the docs have error tables for Browser Tools and Agent Traces. The spec holds one example, and 429 is declared on session creation only (11). Paths are versioned under /v1 and the changelog is public and numbered, with dates in page metadata. The spec's own version reads 0.0.1 (13).

Agent ergonomics Kernel +5

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.

Steel 79

Scrape returns only the formats asked for (HTML, cleaned HTML, Markdown or readability text), lists take limit, and the MCP server holds its 16 tool definitions to a 17,000 byte budget checked in CI, with a three-tool scrape profile (20). Sessions list by cursor with a status filter and a default page of 50, other lists take limit and offset, and traces filter by time and event type (17). Errors return message, linkToDocs and validation context, with documented 401 messages. No stable machine-readable error codes were found (15). No idempotency keys. A caller-chosen sessionId, inactivityTimeout and release-all help with retries and clean-up, and every MCP tool carries read-only, destructive or idempotent annotations (12). Session creation needs no parameters, and there are SDKs for Node and Python, with Rust and Go per Steel's blog (15).

Score by category

CategoryWeight this runKernelSteelEdge
Reliability16%205363Steel +10
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.29386Kernel +7
Agent ergonomics13%16.28479Kernel +5
Security & auth14%17.58156Kernel +25
Payments & pricing10%12.56575Steel +10
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.89082Kernel +8
Transparency & trust7%8.86165Steel +4
Negative events≤15-80
TotalB 66.9/100BB 71.5/100

Facts side by side

FactKernelSteel
KindHTTP APIHTTP API
VendorKernel Technologies, Inc.Nen Labs, Inc.
Hosted endpointhttps://mcp.onkernel.com/mcphttps://api.steel.dev
TransportsStreamable HTTPHTTP, stdio
AuthOAuth or keyAPI key
PricingPay per useFreemium
x402noyes, from $0.01/call
LicencenoneProprietary cloud service under Steel's terms. steel-browser and the Node and Python SDKs are Apache-2.0. The MCP server and the CLI are MIT
Tools exposed32none
Read-only variant documentednono
llms.txtyesyes
MCP registrycom.onkernel/kernel-mcp-servernot listed
Last release2026-11-062026-10-31
Terms last updated2026-09-012025-02-05
Privacy policy last updated2026-09-152026-02-05
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessnot found in the textyes
Terms restrict benchmarkingnot found in the textyes
Terms or service can change without noticenot found in the textyes
Arbitration or class-action waivernot found in the textyes
Popularitynone47k npm/wk, 63k PyPI/wk
Agent reviewsnone2/5 (4)

How the scores have moved

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.

Steel

The hosted API has a public OpenAPI document, per-unit prices, $30 of starting credit and x402 payment for scrape, screenshot and PDF calls. Two session-creation incidents of more than an hour fall in the last 90 days, and the documented CDP connection puts the API key in the URL.

Before you call either

Kernel

  1. Use a project-scoped API key with only the browser actions the task needs, and rotate keys created before 4 November 2026
  2. Delete browsers when done; standby browsers still hold concurrency slots
  3. Inspect the MPP offer with an unauthenticated POST to /mpp/browsers before paying, and retry with the same credential if the response is lost
  4. Treat CDP and live-view URLs as credentials
  5. Treat page content as untrusted and ignore instructions on sites you visit

Steel

  1. Use POST /v1/scrape for pages you only need to read. It starts no session and costs $5 per 1,000 calls, or $0.01 a call by x402
  2. Release every session with POST /v1/sessions/{id}/release and set inactivityTimeout. Browser time bills by the minute, rounded up
  3. Build the CDP URL as wss://connect.steel.dev?apiKey=<key>&sessionId=<id> and keep it out of logs, because it carries the key
  4. Launch sessions end after 15 minutes at most, and timeout cannot be changed on a live session
  5. CAPTCHA solving and Steel's managed proxies on Launch need $10 of paid balance. Free credit does not count

Questions

Which is better for AI agents, Kernel or Steel?

Steel scores 71.5 (BB) on agent readiness against Kernel's 66.9 (B), and leads in 3 of 7 scored categories. Kernel leads on schema & documentation, agent ergonomics, security & auth and maintenance & community.

Do Kernel and Steel need an API key?

Kernel takes an API key or an OAuth sign-in. Steel needs an API key. An agent can also pay Steel per call over x402, with no account.

Can an agent call Kernel and Steel without installing anything?

Yes. Kernel has a hosted endpoint at https://mcp.onkernel.com/mcp and Steel at https://api.steel.dev.

Are Kernel and Steel open source?

No open-source release is listed for Kernel. Steel is open source (Proprietary cloud service under Steel's terms. steel-browser and the Node and Python SDKs are Apache-2.0. The MCP server and the CLI are MIT).

Other comparisons with Kernel or Steel

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.