Skip to main content
Live View allows you to watch your browser sessions in real-time as they execute, making it easy to debug and monitor automation.

Quick Start

Open a live viewer automatically when the session starts:
from notte_sdk import NotteClient

client = NotteClient()

# Live viewer opens automatically
with client.Session(open_viewer=True) as session:
    session.execute(type="goto", url="https://example.com")
    session.execute(type="click", selector="button.submit")
    # Watch it happen in your browser!

Manual Live View

Open the live viewer manually at any point during the session:
from notte_sdk import NotteClient

client = NotteClient()

with client.Session() as session:
    session.execute(type="goto", url="https://example.com")

    # Open live viewer
    session.viewer()

    # Continue automation while watching
    session.execute(type="click", selector="button.submit")

Viewer Types

Notte supports multiple viewer types:

Browser Viewer (Default)

Frame-by-frame replay in your browser:
with client.Session() as session:
    session.execute(type="goto", url="https://example.com")

    # Opens browser viewer
    session.viewer_browser()

CDP Viewer

Chrome DevTools Protocol debugger:
with client.Session() as session:
    session.execute(type="goto", url="https://example.com")

    # Opens CDP debugger
    session.viewer_cdp()

Jupyter Notebook Viewer

Display live view directly in Jupyter notebooks:
with client.Session() as session:
    session.execute(type="goto", url="https://example.com")

    # Display in notebook cell
    session.viewer_notebook()

Live View for Agents

Watch AI agents make decisions in real-time:
from notte_sdk import NotteClient

client = NotteClient()

with client.Session(open_viewer=True) as session:
    agent = client.Agent(session=session, max_steps=10)

    result = agent.run(
        task="Find the pricing page and extract all plan prices"
    )

    print(f"Agent completed: {result.answer}")

Sharing Live View

Share the viewer URL with your team for collaborative debugging:
from notte_sdk import NotteClient

client = NotteClient()

with client.Session() as session:
    session.execute(type="goto", url="https://example.com")

    # Get viewer URL
    debug_info = session.debug_info()
    print(f"Share this URL with your team: {debug_info.debug_url}")

    # Team can watch live while you continue
    session.execute(type="click", selector="button.submit")

Viewer Configuration

Set a default viewer type for all sessions:
from notte_sdk import NotteClient
from notte_sdk.endpoints.sessions import SessionViewerType

# Set default viewer to CDP
client = NotteClient(viewer_type=SessionViewerType.CDP)

with client.Session(open_viewer=True) as session:
    # Opens CDP viewer by default
    session.execute(type="goto", url="https://example.com")
Available viewer types:
  • SessionViewerType.BROWSER - Frame-by-frame browser viewer (default)
  • SessionViewerType.CDP - Chrome DevTools Protocol debugger
  • SessionViewerType.JUPYTER - Jupyter notebook display

Best Practices

1. Use for Development

Live view is ideal for development and debugging:
import os

# Only use live view in development
is_dev = os.getenv("ENV") == "development"

with client.Session(open_viewer=is_dev) as session:
    session.execute(type="goto", url="https://example.com")

2. Combine with Recordings

Use live view during development, recordings for later analysis:
with client.Session(open_viewer=True) as session:
    # Watch it live
    session.execute(type="goto", url="https://example.com")
    session.execute(type="click", selector="button.submit")

# Get recording after session ends
replay = session.replay()
replay.save("recording.mp4")

3. Multiple Viewers

Open multiple viewer types simultaneously:
with client.Session() as session:
    session.execute(type="goto", url="https://example.com")

    # Open both viewers
    session.viewer_browser()  # Frame-by-frame
    session.viewer_cdp()      # DevTools

Live View vs Recordings

FeatureLive ViewRecordings
TimingReal-time during executionAfter session ends
InteractivityCan observe as it happensPlayback only
Use CaseDebugging, monitoringArchiving, sharing
AvailabilityDuring session only24 hours after session

Next Steps