FSB — Full Self Browsing

A DOM-first Chrome extension that automates browsing from plain English and exposes the same runtime to Claude Code, Codex, and other MCP clients.

Stars
★ 205
Last updated
17d ago
License
MIT
Primary language
JavaScript

At a glance

How it runs
Browser extensionMCP serverCLI
Works with
Universal · cross-platformCodex · Claude Code · OpenAI API · Claude APIClaude.ai (Partial support)
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
Chromium 116+ (Chrome/Edge/Brave/Chromium)Node.js (npx)npmShell / CLINetwork accessLocal filesystemMCP Server
Typical use
A QA or frontend engineer repeating the same page flow for regression coverage can have FSB re-run clicks, form fills, and state transitions while collecting an action log for each step.
Not a fit if
  • Teams needing unattended, long-running background automation
  • Users who cannot send page text and form labels to a model provider
  • Teams expecting all 128 catalog apps to execute directly

What does this agent do, and when should you use it?

FSB (Full Self Browsing) is an MIT-licensed Manifest V3 Chrome extension, currently at version 0.9.91, that turns a natural-language task into browser actions by reading the live DOM instead of screenshots. The extension captures selectors, forms, ARIA labels, and DOM deltas, plans the next tool call through a universal OpenAI-compatible provider layer, executes actions in content scripts, and verifies what changed before continuing. A companion npm package, fsb-mcp-server, is a local bridge that registers 69 tools and lets Claude Code, Codex, Cursor, VS Code, Windsurf, and similar clients drive the same extension over ws://localhost:7225. FSB also runs standalone from its popup or side panel against xAI, Gemini, OpenAI, Anthropic, OpenRouter, LM Studio, or a custom endpoint. Beyond DOM automation it ships a 128-app capability catalog with signed and audited first-party API invokes, real file uploads via CDP, single-element trigger watchers, long-term memory, and session replay. Everything runs in your own browser and local process with no hosted account, with the tradeoff that Chrome and the extension must stay open.

The MV3 background worker (extension/background.js) owns session state, model calls, tool execution, MCP routing, and storage; content scripts (extension/content/) build element references and selectors, execute actions, stream DOM state through the PhantomStream capture adapter, and wait for stable results. The AI layer (extension/ai/) handles provider settings, live model discovery, tool definitions, transcripts, and action history over one shared OpenAI-compatible request path. The action surface covers navigation, clicking, type_text, press_key, scrolling, tab management, spreadsheet ranges, coordinate tools, execute_js, and upload_file, which sets a real absolute path on an <input type="file"> through CDP DOM.setFileInputFiles, including inputs hidden behind styled dropzones. The MCP server publishes curated groups — visual sessions, autopilot, trigger watchers, manual control, read-only inspection, developer capture, capability search/invoke, observability and replay, and vault — serializing mutation tools so two clients cannot click or type at once while read-only tools bypass the queue where safe. search_capabilities and invoke_capability query a 128-app catalog where only signature-verified, audited, denylist-gated T1/T1b capabilities execute directly. Memory stores episodic, semantic, and procedural records extracted from finished sessions and retrieves them by domain, task type, recency, and keywords on later tasks.

  1. A QA or frontend engineer repeating the same page flow for regression coverage can have FSB re-run clicks, form fills, and state transitions while collecting an action log for each step.
  2. A researcher collecting visible text across many pages can use read_page and get_dom_snapshot to pull structured content directly instead of parsing screenshots.
  3. An operations or data-entry specialist working through structured back-office forms can drive dropdowns, custom controls, and table inputs, then verify each submission.
  4. A developer who wants Claude Code or Codex to exercise a local build in a real browser can install fsb-mcp-server and drive Chrome with manual tools or run_task.
  5. Someone monitoring a page for restocked inventory, a threshold crossing, or a content change can arm a single-element watch with trigger, get_trigger_status, list_triggers, and stop_trigger.
  6. A support or commerce user comparing product pages, reading dashboard tables, or preparing a cart under supervision can hand the task to the extension's autopilot loop without writing a script.

How do you install or deploy this agent?

Requirements: Chromium 116+ in a stable desktop browser (Chrome, Edge, Brave, or Chromium).

  1. Clone and install dependencies:
git clone https://github.com/fullselfbrowsing/FSB.git
cd FSB
npm install
npm --prefix mcp install

The extension needs no build step; load the extension/ directory directly.

  1. Load the extension: open chrome://extensions/, enable Developer mode, click “Load unpacked,” select the extension/ directory, then open the FSB toolbar icon, pick a provider in settings, and confirm connectivity with Test API. Settings accept xAI, Gemini, OpenAI, Anthropic, OpenRouter, LM Studio at http://localhost:1234, or a custom OpenAI-compatible endpoint.
  1. Optional MCP bridge, one command per client:
npx -y fsb-mcp-server@latest install --claude-code
npx -y fsb-mcp-server@latest install --claude-desktop
npx -y fsb-mcp-server@latest install --cursor
npx -y fsb-mcp-server@latest install --vscode
npx -y fsb-mcp-server@latest install --windsurf
npx -y fsb-mcp-server@latest install --codex
npx -y fsb-mcp-server@latest install --all

Append --dry-run to preview without writing, then restart the client so the server is picked up. No FSB API key is needed on this path because the MCP client's own model does the reasoning.

How do you use this agent?

Standalone: click the FSB toolbar icon, open the popup or side panel, paste a provider API key in settings, and type a task such as “Scroll down,” “Search for cats on Google,” or “Read this page and summarize it.” Start with read-only tasks, then simple click or type tasks, and leave the visual overlay on while evaluating. Stay on a normal webpage, not a chrome:// or extension page.

Through MCP: verify the bridge first with npx -y fsb-mcp-server@latest doctor and npx -y fsb-mcp-server@latest status --watch, then issue instructions from the client. Manual tools are the default path: read_page or get_dom_snapshot to understand the page, execute_js for safe DOM reads and DOM-triggered clicks, native click, type_text, press_key, and drag when real browser events matter, then verify with a fresh snapshot and set is_final:true on the last action to clear the overlay immediately. Use run_task when you explicitly want FSB's own loop. The extension connects to the bridge on ws://localhost:7225, and an optional Streamable HTTP mode exposes http://127.0.0.1:7226/mcp. Trigger watchers are local to the open session: Chrome and the extension must stay running, results come back to the MCP caller, and there is no server-side monitoring or push delivery.

What are this agent's strengths and limitations?

Pros
  • The DOM-first design produces a concrete latency and cost gap: the README claims 50–200 ms per step versus 1–3 seconds for vision-based agents, and hidden elements stay visible in the structure.
  • MCP onboarding is a single npx install per client for Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, and Codex, with no FSB API key required when the client's model does the reasoning.
  • Provider coverage is broad — xAI, Gemini, OpenAI, Anthropic, OpenRouter, LM Studio local models, and custom OpenAI-compatible endpoints — plus live model discovery and 30 bundled fallback models.
  • The reliability plumbing is real: post-action verification, stuck-action detection, smart waiting, a serialized mutation queue, audit records, and Node tests covering extension modules, MCP contracts, and bridge behavior.
  • Native file upload goes beyond synthetic drag-drop: upload_file uses CDP DOM.setFileInputFiles for real file inputs, including ones hidden behind styled dropzones, behind a sensitive-path denylist that logs audit metadata without persisting disk paths.
Limitations
  • It is tightly bound to a live browser: trigger watchers, PhantomStream preview, and coordinate tools all require Chrome and the extension to stay open, with no server-side monitoring, which rules out fully unattended long-running automation.
  • Capability coverage is narrower than the 128-app catalog suggests — only signed and audited T1/T1b entries execute directly, while other hits return learn-pending, discovery-pending, or guarded fail-closed responses.
  • Autopilot is explicitly framed as production ready only for supervised automation; the README warns that complex or sensitive sites remain unpredictable and that failures should be debuggable via inspection rather than guaranteed.
  • There is migration debt: background agents are retired, and while old chrome.storage.local['bgAgents'] data is preserved, scheduled or recurring automation is no longer an active feature.
  • Model cost is entirely on the user's provider account, and task context including visible page text and form labels is sent to that provider, so sensitive pages need a deliberate decision before use.

How does this agent compare with similar options?

The README directly contrasts FSB with Project Mariner, Claude Computer Use, and OpenAI Operator, which rely on visual page understanding, and reports latency, hidden-element visibility, and token-cost differences in FSB's favor. It also credits OpenTabs as the inspiration for the Native Capability Catalog's first-party API execution model.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
FSB — Full Self Browsing This agent 54 · Major gaps Browser extensionFree + model costs ★ 205 17d ago JavaScript Codex · Claude Code · OpenAI API · Claude API
Browsentic 75 · Some gaps — ★ 282 2d ago TypeScript Codex · Claude Code
WebBrain 68 · Some gaps Browser extensionFree + model costs ★ 1.7k today JavaScript Claude Code
Open Browser Use 65 · Some gaps CLIFree ★ 418 5d ago JavaScript Codex · Claude Code

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
54/ 100 5-point scale 2.7 / 5
Trust 14/29
Reliability 6/14
Adaptability 12/18
Convention 11/18
Effectiveness 7/13
Verifiability 4/8
Why each dimension lost points
Trust14 / 29 · 2.4/5

The product reaches the user's real Chrome sessions, tabs, vault credentials, and local file uploads, and exposes a broad tool surface, so least privilege is only partially demonstrated. The skill requires confirmation before purchases, deletions, account changes, and public posts; the README describes upload-path safeguards, encrypted keys, extra confirmation for sensitive origins, and secret-free audit logs. The supplied code does not show these controls in enough depth for full credit. The README describes dependencies and a local bridge but supplies no dependency-security audit evidence. Pairing and uninstall-related implementation are visible, but they do not establish comprehensive recovery. Acknowledgements and MIT copyright give partial attribution; publisher identity remains unverified.

Reliability6 / 14 · 2.1/5

The README describes DOM snapshots, post-action verification, stuck detection, and recovery; MCP source shows diagnostic states and layered failure output, supporting ordinary failure handling. There are version-documentation tensions: the README and skill identify 0.9.92, while the skill's tool contract also refers to older versions; a supplied test fixture says required modules do not yet exist, creating some tension with the current product description. Dependency installation and CI workflows are documented, but the product relies on external npm, browser, and model services, and the source packet does not establish their availability or execution results.

Adaptability12 / 18 · 3.3/5

The intended Chrome/MCP audience and QA, research, form, and developer scenarios are described, with Chromium version, platform, and client setup notes. The skill distinguishes read-only inspection from interactive browser work and requires confirmation for sensitive submissions; the README names boundaries such as DOM, canvas, and shadow DOM behavior. Triggers are scoped to a selector and configured conditions, though their operation depends on Chrome and the extension staying open.

Convention11 / 18 · 3.1/5

Repository layout, installation steps, troubleshooting, examples, known limitations, and the MIT license are documented clearly. A main changelog and a separate MCP changelog are identified. Naming stability loses credit because multiple product versions and references to an older contract coexist, and the supplied packet does not include the full changelog contents. Maintenance responsibility is only inferable from repository, issue-tracker, and release-workflow references; no explicit maintenance commitment or response policy is shown.

Effectiveness7 / 13 · 2.7/5

The product provides progress, action logs, DOM state, failure diagnostics, and MCP tools that are usable for browser tasks. DOM automation, MCP control, and trigger monitoring provide clear additional value. Cost discussion includes model/token accounting and comparative latency, but the packet gives no independent cost-benefit evidence for a higher score, and use still requires a browser, model setup, and local bridge.

Verifiability4 / 8 · 2.5/5

The README gives concrete installation and diagnostic commands, interface details, and security claims that can be traced in part to the skill, MCP source, CI workflows, and test files. The benchmark, passing-test, and security claims are not independently reported or corroborated by corresponding implementation detail in the supplied excerpts, limiting cross-source corroboration. Documentation generally separates feature descriptions from limitations, but promotional performance and quality claims lack supporting evidence within this packet.

Risks and how to mitigate them
  • This is a low-confidence static review; the packet does not include the full source or run results, so it cannot establish actual security, reliability, or benchmark performance.
  • The extension controls a real browser session and supports credentials, payment flows, and local file uploads. Confirm the target and action before submissions, payments, account changes, or public posts.
  • Some tool-contract documentation references older versions; check that the extension and MCP server versions match before installation.
Evidence confidence: Low Reviewed Nov 08, 2026 Reviewed revision 3f9e7dea8621
See the full review method →
Maintain this project? Add the FARS badge to your README

The badge shows the current review score and verdict and links back to this page. It refreshes about once an hour after a re-review.

FARS

[![FARS review](https://followagents.com/badge/fsb.svg)](https://followagents.com/en/agents/fsb)
<a href="https://followagents.com/en/agents/fsb"><img src="https://followagents.com/badge/fsb.svg" alt="FARS review"></a>

Recent releases

Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.

  1. mcp-v0.11.2 fsb-mcp-server v0.11.2
    Release notes excerpt
    Install / Update ```bash npx -y [email protected] install --all ``` Or install globally: ```bash npm i -g [email protected] ``` What's Changed * Allow the portfolio to embed the FSB site by @LakshmanTurlapati in https://github.com/fullselfbrowsing/FSB/pull/148 * Ship MCP 0.11.2 with FSB logo and automatic npm releases by @LakshmanTurlapati in https://github.com/fullselfbrowsing/FSB/pull/152 Full Changelog: https://github.com/fullselfbrowsing/FSB/compare/extension-v0.9.92...mcp-v0.11.2
    View on GitHub ↗
  2. extension-v0.9.92 FSB extension v0.9.92
    Release notes excerpt
    FSB Chrome extension v0.9.92. Install from the Chrome Web Store when available, or use the attached package for a supervised manual installation. What's Changed * Release notes page, Korean locale, and the August 2026 privacy policy by @LakshmanTurlapati in https://github.com/fullselfbrowsing/FSB/pull/117 * Fix silent QR pairing failures on the showcase dashboard by @LakshmanTurlapati in https://github.com/fullselfbrowsing/FSB/pull/119 * Persist anonymous users-by-location and fix IPv6 geo by @LakshmanTurlapati in https://github.com/fullselfbrowsing/FSB/pull/120 …
    View on GitHub ↗
  3. mcp-v0.11.1 fsb-mcp-server v0.11.1
    Release notes excerpt
    Install / Update ```bash npx -y [email protected] install --all ``` Or install globally: ```bash npm i -g [email protected] ``` What's Changed * Release notes page, Korean locale, and the August 2026 privacy policy by @LakshmanTurlapati in https://github.com/fullselfbrowsing/FSB/pull/117 * Fix silent QR pairing failures on the showcase dashboard by @LakshmanTurlapati in https://github.com/fullselfbrowsing/FSB/pull/119 * Persist anonymous users-by-location and fix IPv6 geo by @LakshmanTurlapati in https://github.com/fullselfbrowsing/FSB/pull/120 …
    View on GitHub ↗

FAQ

Do I need an FSB account or a paid FSB API key?
No hosted FSB account is required for local extension use. On the MCP path the client's model does the reasoning and no FSB key is needed; running the extension standalone requires an API key for your chosen provider or a local LM Studio endpoint, and that provider bills you directly.
What browser permissions does it take, and does it touch my accounts?
The MV3 manifest declares permissions that let the extension act on the active page and tabs, plus debugger-backed coordinate tools and CDP file upload. FSB states it does not bypass browser restrictions on internal pages, and the credential and payment vault requires explicit user configuration and unlock flows.
A task failed — what should I check?
Most failures recover by re-reading the page, refreshing selectors, or restarting the local MCP bridge. Run the doctor and status --watch commands first to tell connection, extension wake, active-tab, and content-script readiness problems apart; reinstalling the MCP config should be the last resort, not the first.
Can trigger watchers run while I'm away from the machine?
No. Triggers are attached to the open browser session: Chrome and the extension must remain running, and results are reported back to the calling MCP client. FSB does not offer server-side monitoring or push delivery.
Can I deploy the whole thing to a server?
The core runtime is a Chrome extension and has to run in a local browser. The showcase/server and legacy server-py directories are the site backend and an older Python prototype, not a server-side automation runtime.
Was this page helpful?
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.