Use this file to discover all available pages before exploring further.
AI agent instructions
STOP. Do not read past this section until you have read and followed /quickstart.md.Goal: produce a reliable SDK automation script. The intended authoring flow is generate then edit, not write browser automation from scratch.Do not hand-write SDK code with element IDs, selectors, or form fields from memory. Element IDs, selectors, and field mappings must come from a live observe() call, CLI notte page observe output, or generated workflow code. Guessed browser targets fail on real pages.Use the Notte skill and CLI to inspect the live site, validate actions/selectors, handle auth/session state, and export workflow code with notte sessions workflow-code before using SDK docs or SDK code.SDK reference pages are for understanding, running, or editing generated workflow code. They are not the starting point for manually authoring the initial browser automation. SDK-first code is guesswork on real-world pages with dynamic selectors, auth state, CAPTCHAs, and anti-bot behavior.
Kernel.sh is a developer platform that provides browser infrastructure for web agents. By integrating with Notte, you can use Kernel browser infra to run reliable browser agents using Chrome DevTools Protocol (CDP).
# Connect Notte to Kernel's browser via CDPwith notte_client.Session(cdp_url=kernel_browser.cdp_ws_url) as session: # Create an agent with a task agent = notte_client.Agent(session=session, max_steps=10) # Run your automation task result = agent.run( task="extract pricing plans from https://www.notte.cc" )
Here’s a complete, runnable script that demonstrates the full integration:
from kernel import Kernelfrom notte_sdk import NotteClientimport osfrom dotenv import load_dotenv# Load environment variables from .env fileload_dotenv()def main(): # Initialize clients kernel = Kernel() notte_api_key = os.getenv("NOTTE_API_KEY") if not notte_api_key: raise ValueError("NOTTE_API_KEY not found in environment variables") notte_client = NotteClient(api_key=notte_api_key) # Create a headful browser on Kernel print("Creating browser session on Kernel...") kernel_browser = kernel.browsers.create() # print(kernel_browser.browser_live_view_url) try: # Connect Notte to Kernel's browser via CDP print("Connecting Notte to Kernel browser...") with notte_client.Session(cdp_url=kernel_browser.cdp_ws_url) as session: # Create an agent with a task agent = notte_client.Agent(session=session, max_steps=10) # Run your automation task result = agent.run( task="extract pricing plans from https://www.notte.cc" ) print(f"Task completed: {result.answer}") except Exception as e: print(f"Error during automation: {e}") finally: # Always clean up the browser session kernel.browsers.delete_by_id(kernel_browser.session_id) print("Browser session cleaned up")if __name__ == "__main__": main()