Vol. 01 — 2026

Browser-Use AI Web Automation — 91k Stars

Browser-Use (91k stars, MIT) — makes any website accessible to AI agents. Click/type/navigate like human for GST/GeM portals without APIs.

Browser-Use AI Web Automation — 91k Stars: The Web Automation Infrastructure AI Agents Were Missing

Browser-Use is a Python framework that makes any website accessible to AI agents — letting LLMs see, click, type, and navigate like a human. With 91,422 stars and MIT license as of May 1 2026, it is the leading open-source web automation infrastructure for autonomous agents. If a portal has no API, Browser-Use is the bridge that lets your agent do the work anyway.

As founder of SaaS Next in Junagadh, Gujarat, I build automation for SMEs where the reality is simple: GST, GeM, Tally, bank and vendor portals rarely have usable APIs. I have automated Gujarat SME workflows that live entirely in browser tabs that were never designed for machines. Browser-Use is the infrastructure I reach for when n8n workflows and API connectors hit a wall — before the API exists, the browser is the API.

Who this is for: AI engineers, automation specialists, and SME operators who need reliable agent-driven browser automation that survives real-world DOM chaos — not a demo that breaks on the second login screen.

The Problem: The Indian Web Runs on Portals Without APIs

Every automation conversation in India eventually hits the same wall: the most critical business systems have no API, or an API that is incomplete, undocumented, or requires government empanelment.

In Gujarat, this is daily reality. A Rajkot manufacturing SME doing ₹4Cr annual turnover touches 6-8 portals daily: GST filing and reconciliation, GeM bidding and order tracking, e-way bill generation, vendor invoice portals, and legacy ERP that only exports PDFs. My team at SaaS Next audited 23 SMEs across Junagadh, Rajkot, and Ahmedabad in Q1 2026 — 78% of their core workflows had zero API access. The alternative was explicit: hire humans to copy-paste between tabs for 2-4 hours daily, or don't automate at all.

Traditional automation tools fail here for three reasons:

1. Selenium/Playwright scripts are brittle. A selector like #invoiceTable > tr:nth-child(3) breaks when the portal vendor ships a UI update overnight. You spend more time maintaining selectors than you saved automating. For government portals that change without changelog, this is fatal.

2. RPA tools are expensive and opaque. Enterprise RPA licenses start at $7k/seat/year, require attended bots, and still struggle with CAPTCHAs, OTPs, and dynamic content. They are not built for AI reasoning — they replay macros.

3. API-first automation assumes APIs exist. Tools like n8n are brilliant when APIs exist, but in the Indian SME stack, the API is often the missing piece. You need an agent that can see the page, understand intent, and act — not just call an endpoint.

This is precisely what Browser-Use solves. It does not give you a better Selenium wrapper. It gives your LLM eyes and hands inside the browser.

Why Browser-Use at 91k Stars Matters Now

Browser-Use crossed 91,422 stars on May 1, 2026, making it the dominant web automation infrastructure in the AI agent stack. Three market signals make this significant:

  • Infrastructure, not toy: Compared to Jackwener OpenCLI (a command-line focused agent runner), Browser-Use is purpose-built as web automation infrastructure. It is paired in production with Browserbase — the headless browser fleet — much like Playwright pairs with browser farms, but with native LLM perception.

  • Agent-native design: It was built from day one for LLM agents, not retrofitted. The core abstraction is an LLM that receives a structured representation of the page (accessibility tree + DOM + screenshots) and returns actions in a typed schema. This is fundamentally more robust than pixel-only or selector-only approaches.

  • Commoditization signal: As ChatGPT and Claude agents move to computer-use, Browser-Use gives you the same capability self-hosted, auditable, and free of per-step API tax. For Indian SMEs sensitive to dollar-denominated costs, this is not a preference — it is a requirement.

My take after shipping 11 portal automations with it: Browser-Use is not competing with Playwright. It is competing with hiring a junior operator to do browser work forever.

Architecture: How Browser-Use Lets Agents Use the Web Like Humans

Browser-Use architecture is elegant because it inverts the usual automation model. Instead of you writing selectors, you let the agent decide selectors at runtime based on what it sees.

graph TD
    A[User Task Prompt] --> B[Browser-Use Agent Loop]
    B --> C{LLM Brain - GPT-4o / Claude / Local}
    C --> D[Page State Extraction]
    D --> E[Accessibility Tree + DOM + Screenshot]
    E --> C
    C --> F[Action Schema - Click Type Scroll Navigate]
    F --> G[Browser Controller - Playwright]
    G --> H[Target Website - GST GeM Bank ERP]
    H --> I[New Page State]
    I --> D
    F --> J[Memory & History - Prior Actions]
    J --> C
    C --> K{Task Complete?}
    K -->|No| B
    K -->|Yes| L[Structured Output - JSON / Pydantic]
    L --> M[Downstream - n8n / DB / API]

    subgraph Hardening
      N[Human-in-Loop - OTP CAPTCHA Approval]
      O[Error Recovery - Retry & Re-plan]
      P[Audit Log - Screenshots & Actions]
    end
    B -.-> N
    G -.-> P
    C -.-> O

Key components explained:

1. Agent Loop + LLM Brain: The loop is see → think → act. You provide a task in natural language — "Download all GSTR-2B for March 2026 from GST portal and save to ./gst/" — and the LLM decides the sequence. It is model-agnostic: GPT-4o, Claude 3.5 Sonnet, Gemini, or local models via Ollama work. In production I default to Claude 3.5 Sonnet for portal work — it is more conservative with form submissions.

2. Page State Extraction: This is the innovation. Browser-Use does not send a raw screenshot. It sends a compressed, token-efficient representation: the accessibility tree (roles, names, states), DOM structure with interactive elements indexed, and an optional screenshot for vision models. This lets the LLM ground its actions — "click button with index 12 labeled 'Download'" — instead of guessing coordinates.

3. Typed Action Schema: Actions are not free-form text. They are validated against a schema: click, input_text, scroll, go_to_url, extract_content, wait, send_keys. This eliminates a whole class of hallucinations where the LLM invents an action the browser cannot execute.

4. Browser Controller (Playwright underneath): Browser-Use uses Playwright headless headed under the hood, so you get stealth, session persistence, cookie handling, and proxy support for free. Pair it with Browserbase for cloud fleet scaling.

5. Memory, Recovery, and HITL: Real portals throw OTPs, CAPTCHAs, and session timeouts. The architecture includes explicit human-in-the-loop hooks and error recovery — the agent can pause, ask for OTP via Telegram/Slack, and resume without losing context.

This is why it survives where Selenium scripts die: it replans after failure instead of crashing on a missing selector.

Implementation: From Demo to Gujarat GST/GeM Production

All code below is Python 3.11+, Browser-Use 0.1.4x. Install via pip install browser-use playwright && playwright install.

1. Minimal Agent — Your First 10 Lines

This is the hello-world that replaces 80 lines of Playwright boilerplate. It navigates, searches, and extracts — fully autonomous.

# pip install browser-use langchain-openai
import asyncio
from browser_use import Agent
from langchain_openai import ChatOpenAI

# Any LLM works — swap to ChatAnthropic for Claude
llm = ChatOpenAI(model="gpt-4o", temperature=0)

async def main():
    agent = Agent(
        task="Go to https://quotes.toscrape.com, search for Albert Einstein, and extract his first quote and author URL",
        llm=llm,
        max_steps=15,  # Budget control — prevents runaway loops
    )
    history = await agent.run()
    print(history.final_result())
    # history.urls() and history.screenshots() for audit trail

if __name__ == "__main__":
    asyncio.run(main())

What this teaches: You never wrote a selector. The LLM discovered the search input by reading the accessibility tree. Change the site to a real SME portal and the same pattern holds — only the task prompt changes.

2. Production Pattern — Authenticated Portal with OTP & Structured Output (GST/GeM)

For Gujarat SME portals, you need session persistence, OTP handling, and typed extraction. This is my production scaffold for GST portal automation — sanitized but structurally identical to what runs for two Junagadh clients.

import asyncio
from pydantic import BaseModel, Field
from browser_use import Agent, Controller
from langchain_anthropic import ChatAnthropic

# Define what success looks like — Pydantic guarantees shape
class GSTInvoice(BaseModel):
    gstin: str = Field(description="GSTIN of supplier")
    invoice_no: str
    invoice_date: str
    taxable_value: float
    tax_amount: float

class GSTExtraction(BaseModel):
    period: str
    invoices: list[GSTInvoice]
    total_invoices: int

controller = Controller(output_model=GSTExtraction)
llm = ChatAnthropic(model="claude-3-5-sonnet-20241022", temperature=0)

# Human-in-loop for OTP — pauses agent until you provide code
@controller.action("Request OTP from human operator")
async def request_otp():
    otp = input("Enter OTP received on registered mobile: ")
    return otp

async def run_gst_automation():
    agent = Agent(
        task="""
        1. Go to https://services.gst.gov.in/services/login
        2. Login with username from env GST_USER and password GST_PASS
        3. If OTP is requested, call request_otp action
        4. Navigate to Returns > GSTR-2B > March 2026
        5. Download and extract all invoices into structured JSON
        6. Do NOT submit or file anything — extraction only
        """,
        llm=llm,
        controller=controller,
        use_vision=True,  # Needed for CAPTCHA-aware portals
        save_conversation_path="logs/gst_run.json",
        max_steps=30,
    )
    result: GSTExtraction = await agent.run()
    
    # Validate before downstream — zero hallucination downstream
    assert result.total_invoices == len(result.invoices)
    result.model_dump_json(indent=2)
    return result

asyncio.run(run_gst_automation())

Production notes from the field:

  • Set use_vision=True only for portals with CAPTCHA/images — it doubles token cost. For GeM, I keep it off for list pages, on for login.
  • Always constrain the task: "Do NOT submit" prevents the agent from filing a return when you only wanted extraction. I learned this the hard way in staging.
  • Pair with python-dotenv and never hardcode credentials. For OTP, wire to Telegram Bot or Slack webhook instead of input() for unattended runs.

3. Fleet + Hardening — Browserbase + n8n Orchestration

For scale, run browsers in the cloud and orchestrate via n8n. This is how I run daily 6 AM GST reconciliations without a local machine.

# browserbase + browser-use — cloud headless fleet
import os
from browser_use.browser.browser import Browser, BrowserConfig
from browser_use import Agent
from langchain_anthropic import ChatAnthropic

# Browserbase provides stealth, proxy, and session replay
browser = Browser(
    config=BrowserConfig(
        cdp_url=os.getenv("BROWSERBASE_CDP_URL"),  # wss://connect.browserbase.com?apiKey=...
        headless=True,
    )
)

agent = Agent(
    task="Login to GeM portal, go to Orders > My Orders, extract pending orders for last 7 days as JSON with order_id, buyer, value, status",
    llm=ChatAnthropic(model="claude-3-5-sonnet-20241022"),
    browser=browser,
    max_steps=25,
)

# Trigger this Python as an n8n Execute Command or via MCP
# n8n then takes the JSON output -> Postgres -> Slack alert

Cost reality: Browserbase + Claude costs ~$0.40-0.90 per GST extraction run (15-25 steps). Compared to 45 minutes of operator time at ₹300/hour, ROI is positive by day 3. For high-frequency flows, swap to local Qwen2-VL or GPT-4o-mini to cut cost 60%.

Quality Audit: Is Browser-Use Production-Ready?

I audit every library on five axes before recommending to SME clients. Here is my May 2026 audit for Browser-Use.

Axis Verdict Evidence
Robustness 8.5/10 Accessibility-tree grounding beats selector-only. Recovery via replanning handles portal layout shifts. Still fails on <200ms dynamic overlays without explicit wait — add 1-2s waits for GST portal transitions.
Security 7.5/10 MIT, self-hosted, no data leaves your LLM provider. Risks: credential exposure in prompts/logs. Mitigation: use env vars, redact screenshots, enforce save_conversation_path encryption. Never log OTPs.
Cost Control 7/10 15 steps × ~2k tokens = 30k tokens/run. Without max_steps, runaway loops burn budget. Always set max_steps and max_tokens. Vision mode doubles cost — use selectively.
Observability 9/10 Excellent: history.urls(), history.screenshots(), save_conversation_path, and action logs give full replay. Pair with PostHog or Langfuse for trace.
Maintainability 8/10 91k stars = fast fixes, but breaking changes ship monthly. Pin version in requirements.txt and test portal flows weekly via CI.

My hardening checklist before production:

  1. Pin browser-use==0.1.44 (or latest tested). Do not auto-upgrade.
  2. Run in Docker with playwright:headless base image, not bare metal.
  3. Add explicit human approval for any click with text "Submit", "File", or "Pay".
  4. Log every action to Postgres with screenshots — you need an audit trail for financial portals.

For a deeper multi-agent quality pattern, see my AI Development services and the zero-hallucination RAG blueprint.

Results: What Automating Pre-API Portals Actually Returns

Browser-Use is not magic, but the measured impact with two Junagadh SMEs (anonymized) over 60 days is concrete:

Before (human operator): 12 hours/week on GST reconciliation + GeM order tracking. Error rate ~3% on manual data entry. Operator cost ₹14,400/month. Scale limited to one person's speed.

After (Browser-Use + n8n + Postgres): 2 hours/week human review. Extraction runs daily at 6 AM via cron, posts JSON to n8n, which updates Postgres and sends Slack digest. Error rate <0.5% after Pydantic validation. Monthly infra cost ~$28 (Claude + Browserbase). Time saved: 10 hours/week reallocated to sales.

Key outcome: One client closed GeM order follow-ups 2.3 days faster because pending orders were visible daily, not when someone remembered to check. That is not an AI story — it is a cashflow story.

Compared to Jackwener OpenCLI, which excels at CLI and local file automation, Browser-Use wins wherever the task lives in a browser tab with no CLI equivalent. Pair it with automation expertise for n8n orchestration and with AI Swarms for Indian SMEs — 30 Day ROI for the broader agent fleet pattern.

If you have a portal that still requires a human to log in — that is Browser-Use's exact job. Start with one read-only extraction flow, harden it, then expand.

Frequently Asked Questions

Is Browser-Use better than Selenium or Playwright for web automation in 2026?

For static, stable sites with APIs, Playwright is faster and cheaper. For dynamic portals without APIs where selectors break weekly, Browser-Use is better because the LLM replans based on the live accessibility tree instead of failing on a missing CSS selector. Think: Playwright for your own product, Browser-Use for everyone else's portal. In my SME stack I use both — Playwright for scraping our own dashboards, Browser-Use for government portals.

How do you handle OTPs, CAPTCHAs, and logins securely with Browser-Use?

Browser-Use has explicit HITL actions — the agent can pause and call a function that requests OTP via Telegram/Slack or input(). For CAPTCHAs, vision mode helps with simple ones, but for reCAPTCHA/hCaptcha you should use a CAPTCHA solving service or keep a human approval gate. Never store credentials in the task prompt — use environment variables and a secrets manager, and redact screenshots before logging.

Can I run Browser-Use fully local without OpenAI or Anthropic?

Yes. Browser-Use is model-agnostic and works with Ollama (Qwen2-VL, LLaVA) and LM Studio. For portal work I recommend Claude 3.5 Sonnet or GPT-4o for highest success rate, but for cost-sensitive batch extraction, Qwen2-7B-VL via Ollama achieves ~78% success on structured extraction at zero API cost. Test locally first, then promote to cloud LLM for critical flows.

What is the difference between Browser-Use and Browserbase or OpenCLI?

Browser-Use is the open-source agent that decides what to click — the brain. Browserbase is the cloud browser fleet that provides where to run — the hands at scale, with stealth and proxies. They are complementary, not competitors — most production stacks use both. OpenCLI is a different category focused on automating command-line tasks, not browser tabs.

Bottom Line

Browser-Use at 91k stars is the most proven way to automate websites that were never built to be automated. If your SME or team still has a human logging into GST, GeM, or legacy vendor portals daily because there is no API, this library turns that portal into an API your agents can call. Start with one read-only extraction, add Pydantic validation and HITL for OTPs, and orchestrate via n8n — you will reclaim 10 hours/week before you need a second flow.

Curated by Deepak Bagada — Leading AI Expert, founder SaaS Next, Junagadh Gujarat. I ship sovereign browser automation for Gujarat SMEs where portals have no API. Need help hardening a portal flow? See Automation Expert and AI Development.

← All Open-Source Skills All Architecture Blueprints → Discuss Custom Architecture →