Show HN: Browser Hands – Claude in Chrome for Codex, Cursor and Any MCP Agent A developer released Browser Hands, a local Chrome extension plus MCP server that lets MCP-capable agents including Claude Code, Codex and Cursor control the user's existing logged-in Chrome without a cloud VM or headless browser. The tool ships 26 tools, 16 of which reuse the names and arguments of Claude in Chrome's browser tools, and adds a quick_task executor that makes decisions in about 0.2–0.5 s per step with a stopBefore option that hard-blocks named buttons such as "Submit" or "Pay". It requires macOS, Node.js 18+ and Google Chrome, installs a single ~450 KB JS file to ~/.thundermcp, and gives each agent session its own Chrome tab group to prevent cross-talk between parallel agents. A fast, local Chrome MCP server for AI agents. Your browser, your logins, near-zero overhead. Browser Hands is a Chrome extension plus a small local MCP Model Context Protocol server. It lets any MCP-capable agent Claude Code, Codex, Cursor and others drive the Chrome you already use: click, type, read pages, take screenshots, run JavaScript and record GIFs, without a cloud VM or a headless browser. An agent filling in a Product Hunt launch form in my own logged-in Chrome sped up, idle waits removed . MP4 https://github.com/214140846/browser-hands/blob/main/docs/media/demo.mp4 Demo 1: Bulk work in one shot. An agent learns one form, then injects a script to submit it across many sites, stopping before every final submit. Demo 2: Parallel agents, multiple profiles. Several agents work at once in their own tab groups, across two Chrome profiles work and personal , with no cross-talk. Demo 3: Screenshots that don't melt your laptop. Continuous screenshots next to Activity Monitor. Chrome scales the image itself; no in-page canvas re-encoding. Most browser automation for agents means a cloud VM, a heavy headless browser, or an extension that eats your CPU and takes over your session. - Local only. No cloud, no accounts, no sidebar chat, no per-site permission popups. Your agent talks to your Chrome through a local process. - Familiar tool interface. 16 of the 26 tools use the same names and arguments as the browser tools agents already know from Claude in Chrome, so existing prompts mostly carry over. The other 10 are Browser Hands additions. - Small footprint. Screenshots are scaled by Chrome itself through the DevTools Protocol. No in-page canvas work, no animated overlays. - Parallel agents without cross-talk. Each agent session gets its own Chrome tab group and can only see and act on tabs inside it. - Multiple profiles. Install the extension in several Chrome profiles. The agent sees each profile's name and signed-in email and can switch between them. - quick task executor. Hand over a route each step plus what you expect to see and a fast small model clicks through it, about 0.2–0.5 s per decision, handing control back when unsure. stopBefore hard-blocks named buttons such as "Submit" or "Pay". Needs a Typesafe or OpenRouter API key; every other tool works without one. - Token-efficient by default. Agents read the accessibility tree and page text first and fall back to screenshots only when needed. For repetitive work they are steered toward one injected script that returns compact JSON. - Human in the loop. Agents are told to stop before final submit, payment, send and delete, and to pause for you on real CAPTCHAs. - GIF recording. Record a session as a GIF for sharing, debugging or review. Requirements: macOS, Node.js 18+, Google Chrome. 1. Install the MCP server is a single ~450 KB JS file : curl -fsSL https://github.com/214140846/browser-hands/releases/latest/download/install.sh | sh Files go to ~/.thundermcp . Run with --dry-run to see what it would do, or --uninstall to remove it. 2. Load the extension: open chrome://extensions , turn on Developer mode, click "Load unpacked" and pick ~/.thundermcp/extension . 3. Connect your agent. If the claude CLI is installed, the installer registers Browser Hands with Claude Code for you. For other agents, add this to their MCP config use the full path to your home directory; most clients do not expand ~ : { "mcpServers": { "thundermcp": { "command": "node", "args": "/Users/you/.thundermcp/thundermcp.mjs", "mcp" } } } Build from source: bun install && bun run build && sh install.sh uses the local dist/thundermcp.mjs and extension/ . php graph TD A AI agent