
Browser Use
github.com/browser-use/browser-use- Category
- AI Agents
- Rank
- No. 19Tools index
- Listed in
- #5 Control a browser
- Pricing
- Open Source
- Type
- TOOL
- Builder
- browser-use
- GitHub
- 109.5k stars
- Latest release
- 0.13.8
- Added
- Apr 24, 2026
About
An open-source Python library that enables AI agents to interact with web browsers through natural language commands. Automates complex web tasks like form filling, shopping, and data extraction using LLMs to control browser actions.
What it does
Browser Use lets an AI agent operate a real Chrome browser. Rather than working from screenshots and pixel coordinates alone, it reads the browser's internal page structure and accessibility tree, numbers every interactive element, and hands the model that list alongside a screenshot; the model answers with actions such as click, type or scroll, which are replayed through Chrome's debugging protocol. It ships three ways: a Python library, a command line tool, and an MCP server that other agents can call.
Why it's ranked here
Driving a logged-in, JavaScript-heavy site from an agent is a problem people genuinely hit, and this library does the unglamorous part: serializing the page structure and accessibility tree instead of throwing a screenshot and pixel coordinates at the model. The MIT license covers the library, so the self-hosted path works without the commercial cloud. The repository shows visible engineering discipline, with exactly pinned dependencies, static type checking, linting, spell checking, and a test suite split into unit, integration and slow tiers.
What's good
The model interface is genuinely small: any client that implements one method counts as a valid model, so the bundled OpenAI, Anthropic, Google, Groq and Ollama clients are interchangeable at a single argument. The page-reading layer does work most browser wrappers skip: filtering by paint order, walking closed shadow roots and cross-origin iframes, and attaching per-frame hints that list hidden interactive elements and how many pages down they sit. Even the Chrome launch flags are individually commented, including a deliberate choice to keep scrollbars visible so the agent can tell more page exists.
Tradeoffs
Installing it pulls in 36 required dependencies, all pinned to exact versions and two platform-conditional, bundling five vendor model SDKs plus PDF and word-processing libraries whether you need them or not. Model handling relies on substring matching against the model name to pick request timeouts and the system-prompt template, so new model names silently fall through to defaults with no warning. And if you construct the agent without naming a model, you get the vendor's hosted one, which forces a fast mode that switches planning off.
How to use it well
Pass your own model explicitly rather than accepting the hosted default, and construct the browser session yourself, since the cloud and local configuration options are easy to mix by accident. Tune the element-list cap before anything else: the serialized list is hard-truncated at 40000 characters, and a truncated list is silently missing elements. If you already run a coding agent, the MCP server is a better entry point than embedding the library, but be aware it disables logging across the whole process to keep its output clean, and that analytics telemetry is a required dependency worth reviewing.
Technical notes+
The core loop lives in browser_use/agent/service.py, which sends serialized state plus a screenshot to any BaseChatModel and dispatches parsed actions as events onto the CDP session held in browser_use/browser/session.py. DOM serialization in browser_use/dom/service.py merges the CDP DOM, the full accessibility tree and a layout snapshot with required computed styles, walks shadow roots and cross-origin iframes above a ten-pixel size floor, and applies a viewport visibility threshold; browser_use/agent/prompts.py renders the numbered element list plus a page_stats block counting links, iframes, shadow hosts and text characters. The model seam is browser_use/llm/base.py, a runtime-checkable Protocol with a single ainvoke method. Request timeouts are chosen by substring tests for gemini, groq or claude in the model name, and browser_use/agent/prompts.py picks a system-prompt template by testing whether the name contains 4.5. Omitting llm constructs the vendor-hosted ChatBrowserUse, which forces flash mode and sets enable_planning to False. BrowserSession in browser_use/browser/session.py declares separate typed overloads for cloud and local mode; max_clickable_elements_length defaults to 40000 characters with hard truncation. The MCP server in browser_use/mcp/server.py exposes browser_navigate, browser_click, browser_get_state and browser_extract_content among others, calls logging.disable at CRITICAL and reassigns handlers on every logger in the process. browser_use/browser/profile.py carries the individually commented Chrome flag list. ProductTelemetry, backed by the required posthog dependency, is constructed by both the Agent and the MCP server. Console scripts browser-use, browseruse, bu and browser map to one CLI entry point.
Observed
- License
- MIT
- Language
- Python
- Interfaces
- Python library, command line tool with four command aliases, and an MCP server
- Browser protocol
- Chrome DevTools Protocol; Playwright is not in the dependency list
- Telemetry
- The posthog analytics client is a required dependency, instantiated by both the agent and the MCP server
Read from README.md, pyproject.toml, examples/simple.py, browser_use/README.md, browser_use/agent/service.py, browser_use/browser/session.py, browser_use/dom/service.py, browser_use/agent/prompts.py, browser_use/llm/base.py, browser_use/mcp/server.py, browser_use/browser/profile.py.
What it can do
Fill out web forms automatically
Natural language instructions and target web form → Completed web form with specified data
Automate online shopping tasks
Natural language shopping instructions and target e-commerce site → Completed shopping actions (search, add to cart, checkout steps)
Extract data from web pages
Natural language extraction instructions and target web pages → Structured data extracted from web content
Navigate websites through natural language commands
Natural language navigation instructions → Browser actions performed (clicks, scrolling, page navigation)
Control browser interactions via AI agents
Natural language task descriptions and target websites → Automated browser task execution results
Execute complex multi-step web workflows
Natural language workflow instructions → Completed sequence of web actions and interactions
Intel on Browser Use
Tags
Tech Stack
Media

Featured in Intel
Comments (0)
No comments yet
Indexed by a proprietary survey. Corrections welcome.