Nanobrowser 101: Multi-Agent Web Automation Without the $200/mo Subscription
Open-source Chrome extension with multi-agent architecture (Planner + Navigator + Validator). Bring your own LLM API key, zero subscription fees.
Introduction: Two Roads to AI Browser Agents
Since late 2024, AI browser agents have become one of the most active areas in automation. OpenAI's Operator demonstrated "controlling a browser with natural language," but the $200/month subscription puts it out of reach for many individual developers and small teams.
There is another dimension: when you hand over browser control to AI, where do your cookies, login sessions, and DOM data go?
Nanobrowser gives a clear answer on both fronts — fully open source, local-first, zero subscription fees, while matching commercial-grade automation through multi-agent architecture.
This article covers Nanobrowser's engineering architecture, installation, configuration, and practical examples in depth.
Architecture: Planner, Navigator, Validator
Three specialized agent roles collaborate to transform natural language into browser actions.
Planner
The Planner is the system's brain. It takes high-level instructions and decomposes them into ordered subtasks.
User input → Planner → [Subtask 1, Subtask 2, Subtask 3, ...]Example: "Find a waterproof bluetooth speaker under $50 on example.16yun.cn":
- Open example.16yun.cn
- Search "waterproof bluetooth speaker"
- Apply price filter under $50
- Examine each result
- Return matching products
The Planner handles core reasoning and typically needs a stronger model.
Navigator
The Navigator is the execution engine. It converts each subtask into concrete DOM interactions — clicking, filling forms, scrolling, reading text.
The Navigator does no high-level planning; it only handles execution. This separation gives precise control over context window usage per model call.
Validator (Self-Correction)
After each Navigator action, the Validator checks whether the expected state was reached. If a modal pops up, an element is hidden, or the action didn't work, the Validator triggers the Planner to reassess and adjust.
Navigator action → Validator check ✓ → Continue
Navigator action → Validator check ✗ → Planner replans → Navigator adjustsThis closed-loop feedback significantly improves success rates on dynamic pages, A/B tests, or unexpected modals.
Communication Flow
User instruction
│
▼
┌─────────────┐
│ Planner │ ← Reads DOM + state
│ │ Outputs: subtask list
└──────┬──────┘
│
▼
┌─────────────┐
│ Navigator │ ← Executes interactions
│ │ Outputs: action result
└──────┬──────┘
│
▼
┌─────────────┐
│ Validator │ ← Validates outcome
│ │ Outputs: success / failure
└──────┬──────┘
│
Failure/blocked
│
└──────→ Planner re-plansInstallation & Configuration
Install the Extension
Nanobrowser is a standard Chrome extension on the Chrome Web Store.
Method 1: Chrome Web Store (stable)
Search "Nanobrowser" and click "Add to Chrome." Web Store reviews may lag behind latest releases.
Method 2: Manual install (recommended for latest)
# 1. Download the latest nanobrowser.zip from the project's GitHub Releases page
# 2. Unzip
unzip nanobrowser.zip
# 3. Load in Chrome
# Open chrome://extensions/
# Enable "Developer mode"
# Click "Load unpacked"
# Select the unzipped folderMethod 3: Build from source
git clone <nanobrowser-repository-url>
cd nanobrowser
pnpm install
pnpm build
# Output in dist/
# Load dist/ at chrome://extensions/Configure LLM Models
Click the Nanobrowser toolbar icon, open the side panel, click settings (top right), and add your API keys.
Nanobrowser lets you assign different models to different agent roles:
| Role | Recommended Model | Rationale |
|---|---|---|
| Planner | Claude Sonnet 4 / GPT-4o | Needs strong reasoning for task decomposition |
| Navigator | Claude Haiku 3.5 / Gemini 2.5 Flash | Execution-focused, speed matters |
| Validator | Same as Navigator | Simple validation logic |
Supported providers: OpenAI, Anthropic, Gemini, Groq, Cerebras, Ollama, and any OpenAI-compatible endpoint.
Model Selection Guide
High-Performance Setup
| Role | Model | Per-call Cost | Best For |
|---|---|---|---|
| Planner | Claude Sonnet 4 | Medium | Complex multi-step tasks |
| Navigator | Claude Haiku 3.5 | Low | Fast execution |
| Validator | Claude Haiku 3.5 | Low | Validation checks |
Best for bank workflows, e-commerce comparison, data analysis.
Cost-Effective Setup
| Role | Model | Per-call Cost | Best For |
|---|---|---|---|
| Planner | GPT-4o / Gemini 2.5 Pro | Low-Medium | Daily automation |
| Navigator | Gemini 2.5 Flash | Very low | Simple interactions |
| Validator | Gemini 2.5 Flash | Very low | Basic validation |
Good for form filling, information gathering.
Local Model Setup
For strict data privacy, run local models via Ollama:
# Start Ollama
ollama pull qwen3-30b-a3b-instruct
ollama serve
# In Nanobrowser, add custom OpenAI-compatible provider
# API URL: http://localhost:11434/v1Local models cost nothing but are slower. Suitable for batch tasks.
Practical Examples
Task: Product Search on example.16yun.cn
Enter in the Nanobrowser side panel:
Search example.16yun.cn for "portable bluetooth speaker waterproof,"
list product name, price, and rating for top 5 results.Internal execution:
[Planner] Analyzes instruction, generates subtasks:
1. Open example.16yun.cn
2. Enter search keywords
3. Wait for results
4. Extract info from top 5
5. Format as structured list
[Navigator] Step 1:
→ Navigate to https://www.example.16yun.cn
→ Wait for load
[Navigator] Step 2:
→ Locate search box
→ Type "portable bluetooth speaker waterproof"
→ Press Enter
[Navigator] Step 3:
→ Wait for results to render
[Validator] Verifies:
→ Check if results exist
→ Confirm page loaded
[Navigator] Step 4:
→ Extract 5 result cards
→ Get name, price, rating
[Planner] Aggregates:
→ Returns structured listTask: Multi-Step Form
1. Go to example.16yun.cn/register
2. Fill the registration form
3. SubmitNanobrowser identifies form fields (email, password, confirm), fills them sequentially, and submits. If validation errors appear, the Validator detects the abnormal state, and the Planner adjusts strategy.
Security & Privacy Design
Key privacy differences from Operator:
- Local data routing: DOM goes directly to your LLM API, never through Nanobrowser servers
- No telemetry: Extension collects no usage data
- Self-chosen models: Use Anthropic, OpenAI, or local Ollama — you control the data flow
- Guardrails: Built-in filters prevent prompt injection and sensitive operations
Using Proxies
For scraping scenarios requiring IP rotation, configure at the browser or system level.
Method 1: Chrome startup with proxy flag
google-chrome --proxy-server=http://user:pass@proxy.16yun.cn:8888Method 2: Proxy extension
Install a proxy manager (e.g., SwitchyOmega) configured with Crawler Proxy rules. Nanobrowser inherits the browser's proxy automatically.
Method 3: System-level proxy
# macOS/Linux
export HTTP_PROXY=http://user:pass@proxy.16yun.cn:8888
export HTTPS_PROXY=http://user:pass@proxy.16yun.cn:8888
google-chrome| Scenario | Recommended Setup | Notes |
|---|---|---|
| Temporary IP change | Chrome startup flag | Good for one-off tasks |
| Multi-site rotation | Proxy extension + tunnel proxy | Auto-switching, compatible |
| Long-term persistent tasks | Dedicated proxy | Stable identity for logged-in sessions |
Limitations & Selection Guide
| Dimension | Constraint | Alternative |
|---|---|---|
| Runtime | Requires graphical desktop browser | Headless: Steel / agent-browser |
| Concurrency | Single browser instance, no parallel | High-concurrency: Steel / Camoufox cluster |
| Browser support | Chrome & Edge only | Cross-browser: Playwright |
| Model dependency | User supplies API keys | Zero-cost: Browy (Copilot subscription) |
| Speed | LLM inference per step, slower than scripts | Deterministic: use Puppeteer |
Selection guide:
- Personal daily automation (forms, prices, info) → Nanobrowser
- Large-scale concurrent extraction → Steel + Crawler Proxy
- High-stealth scraping → Camoufox
- Zero extra cost → Browy (existing Copilot subscription)
- Enterprise production → agent-browser + proxy
Summary
Nanobrowser represents a compelling direction: embedding AI agents into the user's existing browser environment via multi-agent collaboration. Its core advantages — zero subscription, local data privacy, flexible model configuration — make it a powerful free alternative to OpenAI Operator.
Beyond the practical benefits, Nanobrowser's architecture demonstrates a new engineering paradigm: replace brittle CSS selectors with a Planner's reasoning, a Navigator's execution, and a Validator's self-correction — building automation that is resilient to environmental changes.
The next article covers Browy — another Chrome extension that achieves zero marginal inference cost through its GitHub Copilot subscription integration.
Need an enterprise proxy plan?
We can tailor architecture to your target domains, concurrency, and reliability goals.