Notte on Steel: Browser Infrastructure for Agents

Notte on Steel: Browser Infrastructure for Agents

Feb 17, 2026

Feb 17, 2026

/

San Francisco

/

Dane Wilson

Nikola Balic

Nikola Balic

Our friends at Notte published an integration guide showing how to run Notte agents on Steel browsers. We're excited to see this—Notte brings intelligent task planning and execution, and Steel provides the browser infrastructure underneath.

How It Works

Steel creates a browser session and exposes a CDP endpoint. Notte connects to it and takes control. Your automation code stays the same—just point it at Steel's infrastructure instead of a local browser.

from steel import Steel
from notte_sdk import NotteClient

# Create Steel browser session
steel = Steel(api_key=os.getenv("STEEL_API_KEY"))
session = steel.sessions.create()

# Connect Notte to Steel via CDP
notte = NotteClient()
with notte.Session(cdp_url=session.websocket_url) as s:
    agent = notte.Agent(session=s)
    agent.run(task="extract pricing from example.com")
from steel import Steel
from notte_sdk import NotteClient

# Create Steel browser session
steel = Steel(api_key=os.getenv("STEEL_API_KEY"))
session = steel.sessions.create()

# Connect Notte to Steel via CDP
notte = NotteClient()
with notte.Session(cdp_url=session.websocket_url) as s:
    agent = notte.Agent(session=s)
    agent.run(task="extract pricing from example.com")
from steel import Steel
from notte_sdk import NotteClient

# Create Steel browser session
steel = Steel(api_key=os.getenv("STEEL_API_KEY"))
session = steel.sessions.create()

# Connect Notte to Steel via CDP
notte = NotteClient()
with notte.Session(cdp_url=session.websocket_url) as s:
    agent = notte.Agent(session=s)
    agent.run(task="extract pricing from example.com")
from steel import Steel
from notte_sdk import NotteClient

# Create Steel browser session
steel = Steel(api_key=os.getenv("STEEL_API_KEY"))
session = steel.sessions.create()

# Connect Notte to Steel via CDP
notte = NotteClient()
with notte.Session(cdp_url=session.websocket_url) as s:
    agent = notte.Agent(session=s)
    agent.run(task="extract pricing from example.com")

One parameter (cdp_url) and your Notte agents run on Steel's cloud browsers.

What Each Layer Provides

From Notte

From Steel

Task planning and execution

Browser provisioning

Navigation and form filling

Session state and persistence

Anti-detection logic

Built-in CAPTCHA solving

Agent orchestration

Traces and session replay

Notte handles the "what"—planning tasks, navigating pages, filling forms. Steel handles the "where"—provisioning browsers, maintaining state, capturing traces.

Get the Full Guide

Notte's blog post walks through the complete integration with production patterns, error handling, and environment setup. Their docs cover the Steel-specific configuration details.

The Broader Pattern

CDP is the interface between automation frameworks and browser infrastructure. Notte demonstrates one integration—the same pattern works with Playwright, Puppeteer, or custom agents. You bring the control layer, Steel provides the browser.

When you connect via CDP, Steel automatically captures your agent's actions. Preview any session in the Steel Dashboard and you'll see a complete agent log—every navigation, click, and form fill, replayable step by step.

Ship Something Cool

Humans use Chrome. Agents use Steel.

Ready to

Build with Steel?

Ready to

Build with Steel?

Ready to

Build with Steel?

Ready to Build with Steel?

A better way to take your LLMs online.

© Steel · Inc. 2025.

All Systems Operational

Platform

Join the community