Skip to main content

Rapidly build reliable web automation agents

The web agent framework built for speed, cost-efficiency, scale, and reliability
→ Docs • Console • Anything API • Landing • Slack • X

Notte Logo

GitHub stars License: SSPL-1.0 PyPI Downloads npm version


Notte gives AI agents and developers cloud browsers. Drive them from your terminal, your coding agent or your code, deploy browser automations as APIs, and fetch structured data from any page.

Create a free API key in the Console 🔑, then pick where to start:

You want to... Use
Drive browsers from the terminal, scripts or CI Notte CLI
Give Claude Code, Codex or Cursor a browser Notte MCP
Run your own Playwright / Puppeteer code on stealth cloud browsers Browser Sessions
Ship a browser script as an API endpoint or a cron job Browser Functions
Describe a task in English and get a deployed API back Anything API
Turn a URL into clean, structured data Fetch

Notte CLI

Drive cloud browsers from your terminal, shell scripts or CI.

brew tap nottelabs/notte-cli https://github.com/nottelabs/notte-cli.git
brew install notte
notte auth login
notte sessions start
notte page goto "https://news.ycombinator.com"
notte page scrape --instructions "Top 3 posts with their points"
notte sessions stop

See the CLI repo for every command.

Let your coding agent set it up

Paste this into Claude Code, Codex or Cursor. It installs the Notte skill and CLI, signs you in and opens a live session:

Read https://notte.cc/skill.md and follow its setup instructions.

Notte MCP

Give your coding agent a cloud browser it can open, drive, observe and scrape, with saved logins.

claude mcp add --transport http notte https://api.notte.cc/mcp
npx skills add nottelabs/notte-skills -y    # optional: Notte agent skills

Run /mcp in Claude Code to sign in. Setup for Codex, Cursor and other clients is in the MCP docs.

Browser Sessions

Every session is a cloud Chrome with proxies, CAPTCHA solving, anti-detection, live view and recordings. Connect anything that speaks CDP: Playwright, Puppeteer, Stagehand, Browser Use.

pip install notte-sdk        # or: npm install notte-sdk playwright-core
from notte_sdk import NotteClient
from playwright.sync_api import sync_playwright

client = NotteClient()  # reads NOTTE_API_KEY

with client.Session(proxies=True, solve_captchas=True) as session:
    with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp(session.cdp_url())
        page = browser.contexts[0].pages[0]
        page.goto("https://example.com")
        print(page.title())
TypeScript
import { chromium } from 'playwright-core';
import { NotteClient } from 'notte-sdk';

const client = new NotteClient(); // reads NOTTE_API_KEY

await client.Session({ proxies: true, solve_captchas: true }).use(async (session) => {
  const { cdp_url } = await session.status();
  if (!cdp_url) throw new Error('Session did not return a cdp_url');
  const browser = await chromium.connectOverCDP(cdp_url);
  try {
    const page = browser.contexts()[0].pages()[0];
    await page.goto('https://example.com');
    console.log(await page.title());
  } finally {
    await browser.close();
  }
});

For logged-in workflows, attach a Vault (credentials and MFA the LLM never sees), a Browser Profile or a Persona.

Browser Functions

Deploy a browser script as a serverless endpoint. Call it over HTTP, schedule it with cron, or trigger it from your app.

import os

from notte_sdk import NotteClient

client = NotteClient()

# Deploy once with: client.Function(path="my_automation.py", name="My automation")
function = client.Function(function_id=os.environ["NOTTE_FUNCTION_ID"])
result = function.run(url="https://example.com")
print(result.result)

Anything API

Describe a web task in English. Notte explores the site, writes the automation, deploys it as a Function and runs it.

curl -N -X POST https://anything.notte.cc/api/anything/start \
  -H "Authorization: Bearer $NOTTE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "fetch the top 3 hacker news posts"}'

Or browse ready-made functions in the marketplace.

Fetch

One call, no session to manage. Get markdown, or data in your schema.

from notte_sdk import NotteClient
from pydantic import BaseModel


class Article(BaseModel):
    title: str
    content: str


client = NotteClient()
article = client.scrape(url="https://example.com", response_format=Article)
print(article)

Open source or Notte Cloud

This repo contains the open source agent framework (notte) and the cloud SDKs (notte-sdk for Python, notte-sdk on npm).

Open source Notte Cloud
Install pip install notte pip install notte-sdk
Browser Local Chromium Managed cloud Chrome
LLM Your own keys Notte-managed or your own keys
Proxies, CAPTCHA, anti-detection Bring your own Built in
Vaults, profiles, personas - Built in
Functions, Anything API, Browser MCP - Built in
Run the open source agent locally
pip install notte
patchright install --with-deps chromium
import notte
import os

with notte.Session(headless=False) as session:
    model = os.getenv("NOTTE_EXAMPLE_MODEL", "gemini/gemini-3.5-flash")
    agent = notte.Agent(session=session, reasoning_model=model, max_steps=10)
    response = agent.run(task="Find three cat memes on Google Images and describe them")

Resources

License

This project is licensed under the Server Side Public License v1.

Citation
@software{notte2025,
  author = {Pinto, Andrea and Giordano, Lucas and {nottelabs-team}},
  title = {Notte: Software suite for internet-native agentic systems},
  url = {https://github.com/nottelabs/notte},
  year = {2025},
  publisher = {GitHub},
  license = {SSPL-1.0},
}

Copyright © 2025-2026 Notte Labs, Inc.

Metadata

Release files for notte 1.9.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for notte 1.9.7
File Size Uploaded
notte-1.9.7.tar.gz 54.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for notte 1.9.7
File Interpreter ABI Platform
notte-1.9.7-py3-none-any.whl Python 3 none any Details

Total release size: 54.6 MB

Release files / notte-1.9.7.tar.gz

Download URL notte-1.9.7.tar.gz
Size 54.6 MB
Tags Source
SHA-256 checksum
How to use checksums
d8b38816c4e293cd491071c8a5a6ab086c8d8a29a08da055658e8a2056c0b792
BLAKE2b-256 checksum
How to use checksums
ab5346c0418a896442d5a27a217f0b7aa2ea1155db696b015005b54f9702ab0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / notte-1.9.7-py3-none-any.whl

Download URL notte-1.9.7-py3-none-any.whl
Size 15.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
db55b064ff84ed210bceb834ecbde667f9ce65077f0e380ee39bb2008ab7fb7b
BLAKE2b-256 checksum
How to use checksums
ca9f383313bae0f5a8ee7faa71073c48de45d9cd4cafefa59571fe3054c6ee4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.9.7 This release

2 release files

1.9.6

2 release files

1.9.5

2 release files

1.9.4

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.28

2 release files

1.8.27

2 release files

1.8.24

2 release files

1.8.23

2 release files

1.8.20

2 release files

1.8.19

2 release files

1.8.18

2 release files

1.8.17

2 release files

1.8.16

2 release files

1.8.15

2 release files

1.8.13

2 release files

1.8.12

2 release files

1.8.11

2 release files

1.8.10

2 release files

1.8.9

2 release files

1.8.8

2 release files

1.8.7

2 release files

1.8.6

2 release files

1.8.5

2 release files

1.8.4

2 release files

1.8.3

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.17

2 release files

1.7.16

2 release files

1.7.15

2 release files

1.7.14

2 release files

1.7.13

2 release files

1.7.12

2 release files

1.7.10

2 release files

1.7.9

2 release files

1.7.8

2 release files

1.7.7

2 release files

1.7.6

2 release files

1.7.5

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.9

2 release files

1.6.8

2 release files

1.6.7

2 release files

1.6.6

2 release files

1.6.5

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.8

2 release files

1.5.7

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.1

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.13

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

0.1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page