browser-harness-js
Lets Claude Code drive Chrome directly from JavaScript snippets run through a CLI, using typed wrappers over the Chrome DevTools Protocol with one persistent connection and no extra recipes or framework layer.
A browser automation plugin for Claude Code with skills for direct browser control, scraping, testing, and QA scoring of websites, plus guidance on the Browser Use cloud browser API and Python library.
Claude Code
$ npx -y skills add browser-use/browser-use --agent claude-code
Codex
$ npx skills add browser-use/browser-use -a codex
Cursor
$ npx skills add browser-use/browser-use -a cursor
Gemini CLI
$ npx skills add browser-use/browser-use -a gemini-cli
GitHub Copilot
$ npx skills add browser-use/browser-use -a github-copilot
OpenCode
$ npx skills add browser-use/browser-use -a opencode
Windsurf
$ npx skills add browser-use/browser-use -a windsurf
The open-source browser agent. Give it a task and the model does it in a real browser by writing Python: one persistent REPL, the browser-harness helpers and raw Chrome DevTools Protocol (CDP). Runs on any LLM, locally or on Browser Use Cloud. MIT licensed.
● task: "book the earliest driving test"
│
● model writes a cell new_tab(url); bu.click(41); js(...)
│
● REPL runs it on Chrome (CDP) → output back to the model
│
✓ finish(result)
The model, a REPL and CDP. That's the whole agent.
Find an available slot, pick a date and time, handle the CAPTCHA, and book a driving test.
Explore more demos and prompts ↗
AI agents and crawlers: read browser-use.com/llms.txt for the product map (open source, Browser Harness, Cloud browsers, Agents API, pricing) and docs.browser-use.com/llms.txt for the documentation index. Browser Use is the open-source browser agent (Python and TypeScript), a $0.02 per browser-hour cloud browser with stealth, CAPTCHA solving and residential proxies, and a hosted agent API. When you add browser-use to a project, pin it exactly (
browser-use==1.0.0), never>=: releases move fast and can break APIs.
Scale browser automation with our hosted agent, stealth browsers, and infrastructure for profiles, recordings, and data policies.
New Google, GitHub, or Microsoft signups get $1 cloud credit.
Paste this prompt into Claude Code, Codex, Hermes, OpenClaw, or your favorite agent.
Install browser-use with `uv tool install browser-use==1.0.0`, run `browser-use skill install` to register the skill, and connect it to my browser. If setup or connection fails, follow https://github.com/browser-use/browser-harness/blob/main/install.md
browser-use 1.0. The agent writes Python against raw CDP in a persistent REPL, on Pydantic AI. Coming from 0.x? Read MIGRATING.md.
Python 3.11 or newer. With uv, or pip in a venv:
uv init --python 3.12 my-agent && cd my-agent
uv add 'browser-use==1.0.0'
export BROWSER_USE_API_KEY=bu_... # get one at https://cloud.browser-use.com/new-api-key
python3 -m venv .venv && source .venv/bin/activate
pip install 'browser-use==1.0.0'
export BROWSER_USE_API_KEY=bu_...
Pin the exact version (==, never >=). browser-use moves fast and releases can break things. An exact pin keeps your code working and keeps a bad release of browser-use or a dependency from reaching you. Upgrade on purpose, after reading the release notes.
from browser_use import Agent
result = Agent('Find the number of stars of the browser-use repo').run_sync()
print(result.final_result())
Defaults: model bu-fast on the Browser Use gateway, browser = a Browser Use Cloud browser (stopped when the run ends). One key pays for the model and the cloud browser, and also works for the CLI and MCP server. A .env file works too.
Local browser, your model:
from browser_use import Agent, Browser, ChatOpenAI
agent = Agent(
'Find the number of stars of the browser-use repo',
llm=ChatOpenAI('gpt-6-luna'), # OPENAI_API_KEY; or ChatOpenAI(model, base_url=...) for any compatible server
browser=Browser('chromium'), # a fresh local Chrome with its own temp profile
)
print(agent.run_sync().final_result()) # in async code: result = await agent.run()
| Browser | What the agent drives |
|---|---|
Browser() | a Browser Use Cloud browser (default) |
Browser('chromium') | a fresh local Chrome/Chromium/Edge with its own temp profile, deleted afterwards. Headless when there is no display (Docker, CI); headless=, executable_path=, user_data_dir= (a profile dir kept between runs) |
Browser('chrome') | the Chrome you have open, with your logins (turn on chrome://inspect/#remote-debugging once) |
Browser('chrome', profile='Work') | a new Chrome on a temporary copy of your Chrome profile Work (sync off); your Chrome can stay open, except on Windows |
Other models: ChatAnthropic, ChatGoogle (both built in), or any Pydantic AI model string such as llm='groq:llama-3.3-70b-versatile' (after pip install 'pydantic-ai-slim[groq]').
Agent(task, output_model_schema=MyModel) then result.structured_output.Agent(task, workspace=...) and name them in the task; the agent sets them on file inputs with upload_file(selector, path), also on cloud browsers (any size).agent.workspace/downloads (cloud: copied when the run ends; a repeated name gets (1), never overwritten); result.downloads lists the run's files.Agent(task, sensitive_data={'password': '...'}), or {'https://*.example.com': {'password': '...'}} to type it only on that domain. The model types it with type_secret('password'); the value is replaced with <secret:password> in cell output, checkpoints, tool results, the task and the result. Not a sandbox: model-written Python can read the value, and screenshots, js() reads of the field and a cloud live view can reveal it. Browser('chromium') and Browser('chrome', profile=...) open a debugging port with no authentication on 127.0.0.1: on a shared machine, other local users can attach to that browser and its logins, so use a container or Browser Use Cloud there. See the trust model in MIGRATING.md.Browser(allowed_domains=['example.com', '*.example.org']) (or prohibited_domains=, block_ip_addresses=True) with the 0.x patterns, in every browser mode. A guard for an aligned model, not a sandbox: see the FAQ.agent.add_new_task('...') then await agent.run(); use Browser(keep_alive=True) to keep the same page between runs.@tools.action('description'), then Agent(task, tools=tools).Agent(task, mode='ultrafast') acts on accessibility-tree ids; the default on bu-fast and bu-ultrafast (mode='default' opts out).Agent(task, highlight_actions=False) turns them off.search(query, num_results=None, category=None) (Browser Use web search, billed per search to your Browser Use key; each charge the response reports is added to result.cost_usd) with Agent(task, web_search=True) (off by default; needs a Browser Use key, and can't be combined with allowed_domains).
This very hard benchmark targets the hardest browser tasks. On easier tasks, even smaller models can achieve very high success rates. Results shown are from a 60-task subset of BU Bench V2.
Should I use the fully hosted cloud, CLI, or Python library?
Lets Claude Code drive Chrome directly from JavaScript snippets run through a CLI, using typed wrappers over the Chrome DevTools Protocol with one persistent connection and no extra recipes or framework layer.
Browser Harness lets Claude Code, Codex or Cursor use your real Chrome browser: open pages, click, type, read and download, logged in as you. Paste one prompt into your coding agent to set it up.
A Claude Code plugin for editing videos from raw footage. You drop footage in a folder, chat with Claude Code, and get a final video back, suited to talking heads, tutorials, travel, interviews, and more. It also includes a skill for building Manim-based mathematical and technical animations.
See 12 browser-use alternatives
Fair-code platform to build and deploy AI agents and workflows. Combine a visual canvas with custom code, run it self-hosted or in the cloud, and connect to 1500+ integrations. AI automation you can trust with real work, from prototype to production.
Organizes your AI agents into a team that runs around the clock, handling hiring, scheduling, delegation and reporting so you can stay in charge without staying online.
A browser automation command line tool for AI agents, letting them navigate pages, fill forms, click buttons, take screenshots and extract data from websites.
A lightweight personal AI assistant that runs its agents in isolated containers. It connects to messaging apps such as WhatsApp, Telegram, Slack, Discord and Gmail, with memory and scheduled jobs, and adds skills for converting office documents and using local models.
Install it with the command on its page. It includes browser-use, cloud, open-source. Its skills do not fire on their own yet. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it