Control a real Chromium browser to navigate websites, fill forms, click buttons, extract content, and interact with web apps that require JavaScript.
browser-use is an open-source AI browser agent that controls a real Chromium browser.
Use it when you need to interact with websites that require JavaScript rendering, login flows,
form submissions, or dynamic content — things that a simple HTTP fetch cannot handle.
| Need | Use |
|---|---|
| Static page scraping / crawling | Firecrawl or fetch_url |
| Search-engine style queries | web_search or HyperBrowser |
| JS-heavy pages, SPAs, login walls | browser-use |
| Filling and submitting forms | browser-use |
| Taking screenshots of pages | browser-use |
| Clicking buttons, navigating flows | browser-use |
import asyncio, os
from browser_use import Agent as BrowserAgent
from browser_use.browser.browser import Browser, BrowserConfig
from langchain.chat_models import init_chat_model
async def browse(task: str, model_name: str = "mistralai:mistral-large-latest") -> str:
llm = init_chat_model(model_name)
# Pass --no-sandbox when running as root (required in Docker/Render)
browser = Browser(config=BrowserConfig(
extra_chromium_args=["--no-sandbox", "--disable-setuid-sandbox"]
))
agent = BrowserAgent(task=task, llm=llm, browser=browser)
result = await agent.run()
return str(result)
# Example
result = asyncio.run(browse("Go to https://example.com and return the page title"))
print(result)
browser-use requires Playwright + Chromium. Check availability: