Skip to main content
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.
Claude Managed Agents run in Anthropic-hosted sandboxes. Those sandboxes have a shell but no browser, so give them the notte CLI and they can drive real browsers - many at once, one per subagent - while your API key stays in a vault the model never reads.

Prerequisites

  • An ANTHROPIC_API_KEY with Managed Agents access
  • A Notte API key (get one here)
  • Node 22 or later

1. Install the SDK

2. Create the environment and vault

The environment is the sandbox image. The vault holds your Notte key and substitutes it into outbound requests, so the key never appears in the model’s context.

3. Run an agent

Two networking planes

These are easy to confuse and they do different jobs. Environment networking is a firewall on the container. It decides which hosts the sandbox can reach at all, at build time and at run time. The Go module proxy belongs here: allow_package_managers covers npm and PyPI but not proxy.golang.org, so without those hosts the image builds with Go present and no notte binary. Credential networking decides where a secret may be substituted. Scope it to the hosts that actually consume the key, so a prompt injection cannot exfiltrate it to an attacker’s domain.
packages.go installs the binary into $(go env GOROOT)/bin, which is not on PATH - PATH carries /usr/local/go/bin while GOROOT is a versioned directory. Every shell command that calls notte has to prepend the fix shown above, or the agent will report that the command was not found.

Next steps

Claude Code

Use Notte from Claude Code instead

MCP Server

Connect over MCP rather than the CLI

Browser Agents

Hand a whole task to a Notte agent

Vaults

Notte’s own credential store