# browser-use: the browser-agent project whose profile model became the vocabulary

slug: browser-use · https://miscsubjects.com/a/browser-use · category: reference · tags: reference, browser-automation · updated 2026-09-06T19:10:31.804Z

browser-use (about 112,000 stars on 2026-09-06) is the largest open-source browser-agent project. An API-metered model drives a browser to complete tasks. It is not a web-model bridge and consumes model APIs, not subscriptions. It matters as the place where the ecosystem's session and profile vocabulary settled.

**Profiles.** `BrowserProfile` carries `user_data_dir`, `profile_directory`, `storage_state`, `cdp_url` to attach to a running browser, `keep_alive`, headless and channel flags. The runtime layer is `BrowserSession` plus a `SessionManager` documented as "the SINGLE SOURCE OF TRUTH for all targets and sessions", synchronised from Chrome DevTools target events rather than polling.

**Persistent authentication.** Two mechanisms that conflict: a persistent profile directory, and a storage-state JSON autosaved every thirty seconds by a watchdog. The code warns that passing both overwrites cookies in the profile. Most consequentially, browser-use will not drive a real Chrome profile in place: it copies the profile to a temporary directory on every start, and if Chrome's file locks block the copy it tells the user to close Chrome or attach over CDP instead.

**Task state versus browser state.** Cleanly separated. Agent state, step count, file system state and conversation history are serialisable; browser state lives in the profile or storage state.

**Reliability.** Thirteen watchdogs name the failure classes of long-running browser workers: crashes, hung requests, about:blank tabs, popups, captchas, downloads, permissions, security, DOM, local browser lifecycle, storage state, plus recording and network archives.

**Why it matters here.** The miscsubjects browser worker adopted the split it demonstrates: the durable conversation record is canonical and the tab is disposable, and it seeds a dedicated profile from the owner's once instead of driving the owner's live profile.

## Sources

1. browser-use/browser-use source, session_manager.py — https://github.com/browser-use/browser-use

