browser-use

browser-use is a skill for Claude Code, Codex from letta-ai/letta-code. It costs 97 tokens per session (3,173 once invoked), scanned B, original, Apache-2.0.

A browser-control guide that uses Chrome's debugging connection to navigate pages, click, type, fill forms, inspect rendered interfaces, and capture screenshots or video.

In plain words
What is it for?
Use it to automate browser workflows, test rendered page interfaces, scrape browser-dependent sites, and record visual demonstrations.
Why use it?
It handles tasks where ordinary web requests are insufficient because a real browser must run JavaScript or interact with the visible page.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to automate browser workflows, test rendered page interfaces, scrape browser-dependent sites, and record visual demonstrations.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/letta-ai/letta-code/browser-use
About the project

letta-ai/letta-code is an agent harness for building assistants that retain memory, identity, and experience across interactions instead of treating each task as isolated. Developers use it through local, desktop, browser, or messaging interfaces for interactive or continuously running agents, and its catalogue entries configure the agents' skills, instructions, rules, and behavior.

letta-ai/letta-code · 3,684 stars · on GitHub · letta.com

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add letta-ai/letta-code --skill browser-use
Clone the repo
git clone --depth 1 https://github.com/letta-ai/letta-code

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for browser-use

README.md
[![agentmods](https://agentmods.dev/badge/skills/letta-ai/letta-code/browser-use/github.svg)](https://agentmods.dev/skills/letta-ai/letta-code/browser-use)
Your own site
<a href="https://agentmods.dev/skills/letta-ai/letta-code/browser-use"><img src="https://agentmods.dev/badge/skills/letta-ai/letta-code/browser-use/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for browser-use

Your own site · 80×15
<a href="https://agentmods.dev/skills/letta-ai/letta-code/browser-use"><img src="https://agentmods.dev/badge/skills/letta-ai/letta-code/browser-use.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 97 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,173 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 2 findings, up to medium

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • medium Privilege Escalation · line 99
    Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
    Fix: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.
  • medium Server-Side Request Forgery · line 134
    Code issues a request to a loopback, link-local, or private-range host. This can reach internal services not meant to be exposed and is a common SSRF pivot.
    Fix: Avoid requests to loopback/link-local/private hosts from skill code. If internal access is intended, document it and validate the target against an allowlist.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00097 $0.03173
Opus 5.5 $0.00039 $0.01269
Sonnet 5.5 $0.00019 $0.00635
Haiku 4.5 $0.00010 $0.00317

Measured 1mo ago against content hash 3c98f7be0b95, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade B, and why

browser-use scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

Use a disposable profile and a fixed port. Chrome refuses to run as root
src/skills/builtin/browser-use/SKILL.md · 325 lines

How it starts

The opening of the file, as written. The whole thing — 325 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Browser Use with CDP

Drive the browser through its native Chrome DevTools Protocol over the remote-debugging WebSocket. This works with zero dependencies: launch the browser with --remote-debugging-port, then talk JSON over fetch and the built-in WebSocket global (available in Bun and Node ≥ 22 — no ws package).

If the project already has Playwright or Puppeteer installed, using it is usually simpler — reach for raw CDP when no automation library is available, when protocol-level control is needed, or when recording a deterministic visual demo.

Protocol reference: https://chromedevtools.github.io/devtools-protocol/. The running browser's exact schema is at http://127.0.0.1:<port>/json/protocol; tip-of-tree docs can differ from the installed version.

Visible by default when a display exists

When the computer has a display, prefer a visible (headful) browser for any task the user might watch or take over: clicking or typing, forms, sign-in, checkout/payment, CAPTCHAs or bot protection, and user handoff. Most browser tasks exist because plain HTTP is not enough; a headless browser is more likely to trigger bot protection and gives the user no way to observe or step in. Visible does not mean pixel-driven: keep operating the page over CDP, and the user sees every action in the window.

Use headless mode only for work the user explicitly wants in the background and that cannot require interaction or handoff, such as read-only scraping, CI, or screenshot/PDF generation, or when no display exists. A headless page does not satisfy a request to open or reopen a site in a browser the user can see.

When the user asks to review, watch, or take over, leave that browser window open after the task. Do not kill or close it before replying.

Workflow

  1. Find a Chromium-based browser (below). If none exists, see "No Chrome installed".
  2. Launch with a dedicated profile and remote debugging. Never attach to the user's normal profile unless explicitly asked.
  3. Discover targets via /json/list; pick the "page" target by URL or title.
  4. Connect to its webSocketDebuggerUrl and enable only the domains you need (usually Page, Runtime, DOM, Input; add Network, Log when debugging).
  5. Inspect before acting: find elements by accessible name, label, text, role, stable ID, or placeholder — not generated classes or child indexes.
  6. Act through Input.* for user-like interactions; use Runtime.evaluate for inspection, coordinate math, and setup with no meaningful user interaction.
  7. Wait on observable state, never fixed sleeps alone.
  8. Verify the result (DOM state, URL, screenshot, console/network events).
  9. Clean up temporary background work: stop screencasts and close the WebSocket. Kill a browser you launched only when the user did not ask to review, watch, or take over the visible window.

Read the full file on GitHub · 325 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago Changed · -39 lines 3c98f7be0b95
  2. 1mo ago First seen · 364 lines · 97 tokens per session scan B 5a098559482f

Subscribe to this mod's changes

browser-use is a skill published in the GitHub repository letta-ai/letta-code (3,684 stars, last pushed today), licensed Apache-2.0. It adds 97 tokens to every session and 3,173 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-02.

Related

Other skills, from other repositories

computer-use

A guide to building agents that operate graphical interfaces through screenshots, mouse actions, keyboard input, and waits. It explains how to identify interface elements and safely repeat the observe, decide, and act cycle.

bojieli/ai-agent-book · 139 tokens

notte

Deploy browser automations as scheduled, API-callable serverless Functions — plus stealth sessions, vault-backed login, captcha solving, and natural-language agent runs via the Notte CLI. Turns any browser flow into a deterministic Bitterbot-callable endpoint, ideal for crystallized skills + dream-engine cron…

Bitterbot-AI/bitterbot-desktop · 63 tokens

browser-actionability-debug

Diagnose browser UI tests or real browser checks where an element appears visible but cannot be clicked, copied, hovered, or focused. Use for Playwright/Chrome/browser automation failures involving overlays, splash screens, opacity transitions, pointer-events, elementFromPoint mismatches, clipboard assertions, or…

JinNing6/Noosphere · 72 tokens

node-inspect-debugger

Debug Node.js via --inspect + Chrome DevTools Protocol.

HezaoHezao/poirot · 18 tokens

e2e-setup

Set up Playwright e2e automation tailored to this team and app. Probes the running app (auth mechanism, API surface, spec availability), interviews with recommendations instead of open questions, scaffolds the playwright/ folder, and records every decision in playwright/AUTOMATION.md for the other e2e skills to read.…

TimothyHan/qa-buddy-skills · 152 tokens

verify-fix

Re-test a bug fix after a developer resolves it. Pulls the original bug from Jira, re-executes the repro steps in the browser, checks for regressions, and updates the bug status. The final step in the SDT workflow before a ticket moves to Done. Use when: "verify fix", "retest", "is this fixed?", "check BUG-123"…

TimothyHan/qa-buddy-skills · 116 tokens