Agent skill · software engineering · browser-use
browser-use
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work.
Why this skill is useful
Adds specific commands and workflows for browser automation that the AI wouldn't reliably generate on its own.
What it needs
Requires chrome installed locally. Requires browser-use account access. About 6k tokens when loaded. Last updated 2026-08-06. 108,113 stars on the source repository.
What this skill does
Browser Use Direct browser control via CDP. For task-specific edits, use agent-workspace/agenthelpers.py. For setup, install, or connection problems, read https://github.com/browser-use/browser-harness/blob/main/install.md. When Not to Use A basic fetch of public information needs no browser. If a plain HTTP request can read it — a public page, an API, docs — use curl or your fetch tool, and leave the browser alone. Use browser-use when the task needs interaction (click, type, navigate), the user's logged-in session, JS rendering, or a bot-protected page. If a direct fetch fails or returns a shell page, then escalate to the browser. Domain skills are off by default. Set BHDOMAINSKILLS=1 to enable them; see the bottom section. If BHDOMAINSKILLS=1 and the task is site-specific, read every file in the matching $BHAGENTWORKSPACE/domain-skills/<site>/ directory before inventing an approach. Usage Invoke as browser-use. Use heredocs for multi-line commands. Helpers are pre-imported. run.py calls ensuredaemon() before exec. First navigation for a task is newtab(url), not gotourl(url). The daemon preserves the attached tab across separate CLI invocations, so do not call newtab() again in every script. Keep one working tab per task/site. Before opening another, inspect currenttab() and listtabs() and use switchtab() to reuse a matching tab. Do not leave duplicate tabs on the same URL or close tabs you did not create. newtab() and switchtab() attach and move the horse marker without changing Chrome's visible tab. Screenshots and normal CDP input work in the background; call activatetab(target) only when the user explicitly asks or a page demonstrably pauses rendering while hidden. Set BHTABMARKER=0 before starting the daemon to leave page titles unchanged. The horse marker remains enabled by default. A timed-out scroll(...) on an attached background tab is evidence that the page needs to be visible. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills browser-use/browser-use--90296c