Chrome extension · MCP server · Cloud relay

cat fastlink/README.md

Bridge Claude to
your browser.

FastLink connects Claude — via Claude Code, Claude Desktop, or claude.ai web — to a real Chrome tab so it can read page snapshots, click, type, run JS, and capture console output. It's a resilient browser-automation layer that gives Claude eyes and hands on the page you're looking at.

Built with automatic retry and a Gemini-powered visual fallback tier — so even when DOM parsers fail or pages break, the page is still readable.

What a session looks like

fastlink — claude session
fast_status
broker: connected · install: primary · slot: 9876
extension v2.1 · tab: "GitHub — Pull Request #42"
fast_scout — read the page
27 interactive elements found · 14 buttons, 8 inputs, 5 links
fast_click — "#merge-button"
clicked · page updated · re-scouting...
fast_fill — input[name="commit-title"] = "fix: resolve race in WS reconnect"
filled · 1 field
fast_point — "Confirm merge" (vision fallback — DOM timeout)
Gemini vision: found button at (540, 380) · clicked
ok · merge confirmed

Architecture

Claude Code · Desktop · Web MCP fast-dxt/server tools.js · stdio MCP WS broker :9876 auto-spawn · multi-client WS fast-ext (MV3) 2 transports · actions/ Page fastlink-relay Cloudflare Worker + DO claude.ai web path

Tool categories

01

Read & scout

fast_scout extracts DOM structure, text, and interactive elements as structured data. fast_point uses Gemini vision when DOM parsing fails — pages are always readable.

02

Interact

fast_click targets elements by selector or vision coordinates. fast_fill types into inputs. fast_do runs arbitrary JS and captures console + network output.

03

Control

fast_status shows connection health and active tab. fast_profile switches between install slots (primary:9876 / secondary:9877) for multi-profile setups.

Resilience built in

FastLink runs two transports at once in the Chrome extension — local WebSocket broker and cloud relay (Cloudflare Worker + Durable Objects at relay.ytx.app). The extension dials broker hosts in order with automatic reconnection. If WSL2 localhost forwarding breaks (common after sleep), it self-heals by rotating to the WSL VM IP as fallback.

Tool descriptions are mirrored between fast-dxt/server/tools.js (local MCP) and fastlink-relay/tools.js (cloud relay), keeping both paths consistent. Install slots keep two Chrome profiles from colliding — each on its own broker port, targetable with a single command.

WebSocket brokerMV3 Chrome extensionGemini vision fallbackCloudflare DO relayMulti-install slotsClaude Desktop .mcpb
⌂ DashboardDesign ·ClaudeCodexGrokGeminiDeepSeek