fastbrowse is an open source browser agent, released under the MIT license, that gives an AI agent a real browser to complete web workflows. You hand it a task and, optionally, a starting page; it works through the site and returns a result backed by quoted page text. Answers come back either as a cited response or as structured, schema-validated data that your code can read directly. The project is aimed at developers and teams who need browser work performed by an agent but who also need to check what the agent did: every result carries the steps it took, the model calls it made and the cost of the run. fastbrowse can run locally, in a hosted sandboxed browser pool, in a cloud browser, or attached to a browser that is already open.
Browser automation performed by language models is hard to trust if the only thing you receive is an outcome. fastbrowse is built around making each part of a run inspectable and constrainable. Action selection is narrowed to controls that actually exist on the page. Factual claims in a complete answer must cite verbatim quotes copied from the page, and fastbrowse checks those quotes and the task requirements before reporting the task as complete. Credentials are referenced by name and resolved only for their permitted website, so their values never enter a prompt. Actions classified as irreversible pause for approval unless the caller has authorized them. Together these choices mean a run produces evidence and control points rather than an unverifiable assertion that something happened.
The core of fastbrowse's action selection is an indexed list of the controls a page offers. fastbrowse reads every button, link and field on the page and indexes those controls into a list. A System One model called Jev then chooses the operation and its target from that list in a single request, selecting from real controls rather than free-generating an action. Short factual reads can use Jev as well, while the LLM plans the task and reads longer passages. If Jev is unsure, fastbrowse falls back to a standard model. After acting, the page is observed again before the next action is selected, so the state of the site is checked between steps.
fastbrowse treats a result as something the caller should be able to check. Factual claims in a complete answer cite verbatim quotes from the page, and the Python and JavaScript SDKs expose those citations with the quote text and a deep link. Structured output is schema-validated before your code reads it: in the Python SDK you pass a Pydantic model as output_schema, and in the JavaScript SDK a Zod schema as output. A run is only finished when its status is complete. Completion also requires evidence that the task was actually carried out; in the recorded demo, placing an order required evidence that the order was placed. Each result includes the steps taken, the model calls made and the cost of the run, so agents can be compared on task success, speed and cost.
Credentials are handled so that they stay out of model prompts. When a credential is needed, fastbrowse resolves the named secret for its permitted website without putting the value in a prompt. In the CLI a secret is passed by name, for example --secret password=SAUCE_PASSWORD, and that name resolves on the allowed origin only. fastbrowse can reuse a saved local or cloud browser profile, or attach to an existing browser, so an already signed-in session can be used. It also resolves logins from an unlocked Bitwarden CLI by their saved website address, including one-time codes when configured. Before actions classified as irreversible, fastbrowse asks for approval; the caller can authorize the run in advance, as the demo does with --authorize. The documentation notes that the classifier can miss an irreversible action.
fastbrowse offers several ways to supply the browser. Hosted runs execute in a sandboxed Chrome on a managed browser pool that fastbrowse runs on Google Kubernetes Engine, with nothing to install. With --local, Chrome runs on your own machine; --headed shows the window and --profile keeps a signed-in profile on disk. The default is a Browser Use Cloud browser, which the project says passes bot checks that a fresh local Chrome can fail, and it prints a URL so you can watch the run live. You can drive a browser that is already running over --cdp-url or --cdp-port and leave it running after the task, and --attach takes over an open window such as an Electron app. Up to three ready Browser Use Cloud extensions can be loaded by ID with cloud_extensions, available on a cloud browser only.
The practical benefit is a run you can audit without slowing the work down. Choosing from an indexed list of controls keeps action selection to one request for the operation and target, and the project positions fastbrowse as fast and cheap: the recorded Sauce Demo run completed in 41.3 seconds across 19 steps for $0.0501 in model cost, covering all model calls with no cloud-browser charge. Because answers cite verbatim page text and structured output is schema-validated, downstream code can rely on the shape of the data it receives. Because secrets resolve by name and irreversible actions can require authorization, credentials and writes stay under the caller's control. Everything is MIT licensed and open source.
The documented examples show the range. From Codex or Claude Code, an agent can be asked to find the top story on Hacker News and return its title with a citation, or to find the httpx package on PyPI and report its latest released version as a validated object with package and version fields. Without a starting page, fastbrowse proposes the first address from the task. A longer recorded workflow signs in as a standard user, adds two products to a cart, checks out as a named customer with a postcode, finishes the order and reads the total, with the credential passed by name and the order authorized in advance. Developers can run the same tasks from the CLI, the Python SDK or the JavaScript SDK, or serve a single browse tool to MCP clients such as Claude Code, Claude Desktop and Cursor through fastbrowse-mcp.
fastbrowse is aimed at developers building browser work into a product or into an agent workflow: the free hosted plan is described as being for building an integration, and paid tiers for products with browser work in them. The CLI, Python SDK and JavaScript SDK cover different stacks; the JavaScript SDK requires Node.js 20 or newer and needs no Python or uv on the machine, since the npm package installs a native binary for the platform. fastbrowse-mcp serves one browse tool to MCP clients, and the embedding API exposes browser steps, quotes and model spend. Hosted runs are sent as one request per task to POST /v1/runs at api.fastbrowse.ai, with keys, secrets, billing and run history in the console, and a test key runs a simulator that returns the same response shapes at no cost.
Pricing is per run: a per-run fee plus usage, never below $0.005, paid from a balance filled by the plan's monthly allowance and top-ups. Plans run from Free ($0, with $2.00 of runs a month, one run at a time and 7-day history) through Starter ($29 a month, $35 of runs, five runs at a time, 30-day history, secrets, profiles, schedules and webhooks), Pro ($199 a month, $250 of runs, 25 runs at a time, 90-day history, session recordings, audit log and SSO-ready roles), Scale ($999 a month, $1,400 of runs, 100 runs at a time, 180-day history, queue priority and a shared Slack channel) to Enterprise by agreement, with a dedicated browser fleet, custom retention and residency, invoiced billing and an uptime commitment. A run is charged when the agent did the work, whatever it proved, including a run that stopped at a sign-in wall or bot check; provider outages, errors inside the agent, cancelled runs, runs that expired in the queue and test-key runs are not charged. fastbrowse also runs through Nebula, which uses fastbrowse for browser tasks and shows its steps and results; connecting Bitwarden or 1Password through Nebula lets saved logins be used on websites you authorize.
For teams that want an agent to operate a browser without handing over credentials or accepting an unverifiable answer, fastbrowse pairs indexed, list-based action selection with cited answers, schema-validated output and an authorization gate. That combination is the product's primary value: browser automation with results you can verify.