Skip to main content

workload / Checked 2026-10-18

Notte vs Steel for reconnecting to browser work

The controller loses its socket and needs to continue work in a browser that may still be running. Compare Notte and Steel on the mechanism this job needs, the work that would move and a specific acceptance case.

The workflow decision

For reconnecting to browser work, the useful comparison is whether Notte or Steel can meet the following outcome: The application determines whether the original browser is still alive and either resumes the expected state or explicitly restarts the task.

Disconnecting a control socket, stopping a browser and restoring a saved profile are separate operations. A new connection may resume a live page or start a fresh browser, depending on the product.

A proposed acceptance case

A controller loses its connection midway through a safe task and attempts to continue. Starting a fresh browser is not always equivalent to reconnecting to a live page.

This is an evaluation design, not a claim that this workflow has been executed successfully on every provider.

Part of the testRequired observation
Controlled inputA page with unsaved in-memory state, a stored provider session reference and a controlled controller interruption.
Pass conditionThe application determines whether the original browser is still alive and either resumes the expected state or explicitly restarts the task.
Negative caseRepeat the reconnect after the browser has ended. The application must not treat a new session or restored profile as the original live page.
Evidence to retainOriginal session reference, page-state marker, connection interruption and resume-or-restart decision.

Documented mechanisms, side by side

These labels describe product mechanisms. The linked source and the acceptance case determine whether a mechanism meets this workflow's requirement.

RequirementNotteSteel
Browser controlDocumentedDocumented
Saved browser stateDocumentedDocumented
Live viewDocumentedDocumented
Deployment choiceEnterprise optionsDocumented

Sources: docs.notte.cc [1] ↗docs.notte.cc [2] ↗docs.notte.cc [3] ↗docs.notte.cc [4] ↗docs.steel.dev [5] ↗docs.steel.dev [6] ↗docs.steel.dev [7] ↗docs.steel.dev [8] ↗

What survives a session

Notte: Profiles save cookies, local storage and session storage. Sessions start with fresh state by default. Persisting a profile writes state back when the session ends; a running session can also save its state explicitly.

Steel: The Profiles API documents reusable browser context, cookies, extensions, credentials and browser settings. Steel also documents lighter auth-context reuse, which should not be confused with a complete profile.

Sources: docs.notte.cc [1] ↗docs.steel.dev [2] ↗

Website login

Notte: Vaults substitute credential placeholders in supported browser actions outside the model context. Managed Auth checks requested saved connections before automation. Personas supply an inbox and optional phone number for verification workflows.

Steel: Steel's Credentials API stores credentials for users or agents. Its cookbook demonstrates using stored credentials with Playwright, while profiles and auth contexts preserve signed-in browser state.

Sources: docs.notte.cc [1] ↗docs.steel.dev [2] ↗

Deployment ownership

Notte: Use a remote browser from your existing process or deploy the browser automation as a Notte Function. These choices put lifecycle, scheduling and monitoring responsibilities in different places.

Steel: Compare managed Steel with the documented self-hosted path explicitly. Self-hosting gives the team infrastructure responsibility that a hosted browser subscription would otherwise cover.

Sources: docs.notte.cc [1] ↗docs.steel.dev [2] ↗

Pricing model

Notte: The public usage rates are $0.01 per browser-hour, $0.05 per Function-hour and $10 per GB of managed proxy traffic. Paid plans return their price as usage credits. Price the relevant meters and plan eligibility for the workload.

Steel: Hosted browser plans and a self-hosted browser have different cost structures. For self-hosting, include the worker, compute, networking, storage and operations rather than assigning the open-source code a zero operating cost.

Sources: notte.cc [1] ↗docs.steel.dev [2] ↗

What should change the choice?

Evaluate Notte when browser ownership can be tracked independently of a transient controller socket. Confirm the supported reconnection path and distinguish it from loading a saved profile.

Steel: Steel's managed and self-hosted choices make infrastructure ownership a concrete deciding factor. Keep that option on the shortlist when operating the browser is intentional; evaluate Notte when owning fewer execution and authentication components is the actual goal.

A provider's documented reconnect product can be decisive for a workflow that depends on a live page. Do not replace it with profile persistence without changing the task's continuation design.

Sources: docs.notte.cc [1] ↗docs.notte.cc [2] ↗docs.notte.cc [3] ↗notte.cc [4] ↗docs.steel.dev [5] ↗docs.steel.dev [6] ↗docs.steel.dev [7] ↗docs.steel.dev [8] ↗

The cost boundary

Use the same attempted work and eligible account capacity in both estimates. The browser-hour rate does not include every proxy, execution or identity meter, and the cost of an incomplete job is still part of the workflow budget.

The workload evidence should include: Original session reference, page-state marker, connection interruption and resume-or-restart decision.

Sources: notte.cc [1] ↗docs.steel.dev [2] ↗

Make a bounded pilot

Interrupt the controller connection during a safe task, reconnect through the documented path, and inspect the page and account state before continuing.

Use the same authorized account, input and final-state check in each configuration. Treat a missing product contract as an open question; do not turn an undocumented capability into an unsupported claim or a successful test result.

  • Inventory which steps depend on unsaved page state.
  • Test the target session's documented connection path before moving continuation logic.
  • Retain a restart path for ended sessions and verify that cleanup still occurs.

Keep comparing

Put the workflow to the test.

Try Notte Read the quickstart ↗