DOM and snapshot first
fast_snapshot, fast_click, fast_fill, fast_nav, fast_list, fast_switch, and console/network tools make ordinary pages cheap and structured.
MCP · Chrome extension · vision fallback
FastLink connects Claude Code, Claude Desktop, or claude.ai web to the Chrome tab a user is actually looking at. It reads DOM snapshots, clicks, fills, runs JS, watches console/network, and falls back to visual grounding when page structure disappears.
fast_snapshot, fast_click, fast_fill, fast_nav, fast_list, fast_switch, and console/network tools make ordinary pages cheap and structured.
fast_point, fast_point_som, fast_fill_vision, fast_locate, and fast_do handle canvas, iframes, custom widgets, and pages that serialize poorly.
fast_status and fast_profile expose extension state, selected install slot, and deterministic routing for primary and secondary Chrome profiles.
Node MCP server auto-spawns a broker; Chrome extension connects to broker ports 9876 and 9877.
The same fast-dxt source builds the Claude Desktop .mcpb runtime.
Cloudflare Worker and Durable Objects let claude.ai web reach a paired browser.
Git-pull and download-swap scripts keep unpacked extension installs current without pretending Chrome can silently reinstall them.
Real websites are not polite automation targets. They hide fields in iframes, render controls in overlays, mutate after clicks, cache stale frames, and break localhost after laptop sleep. FastLink’s job is to give the agent a ladder: structured DOM when possible, visual grounding when necessary, and clear diagnostics when the browser is not connected.
fast_status reports whether the browser is connected and returns connection diagnostics instead of making every other tool fail mysteriously.
fast_profile pins the session to primary, secondary, or auto so a second Chrome profile does not silently receive the wrong action.
The extension dials localhost first and falls back to the WSL VM IP; the broker binds broadly enough to keep that fallback path usable.
Snapshot, click, fill, nav, wait, and tab tools are optimized for structured pages and return fresh post-action views where possible.
Set-of-Mark, point location, and whole-form visual fill are reserved for the cases where the page cannot be read reliably from the DOM.
Simple pages use structured DOM tools. Heavy pages escalate to overlay scans, then screenshots interpreted by Gemini-backed tools. Connection problems use status and profile tools. Install/update problems use docs and scripts. That separation is why the agent can recover instead of blindly retrying the same failed click.
The server auto-spawns the WebSocket broker and multiple MCP clients can reuse the same extension connection.
The default Chrome profile connects on its own slot and can be targeted deterministically.
A second install can use a separate port so testing and real browsing do not collide.
The relay mirrors the local tool surface for claude.ai web through a paired browser session.