{"slug": "show-hn-browser-hands-claude-in-chrome-for-codex-cursor-and-any-mcp-agent", "title": "Show HN: Browser Hands – Claude in Chrome for Codex, Cursor and Any MCP Agent", "summary": "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.", "body_md": "A fast, local Chrome MCP server for AI agents. Your browser, your logins, near-zero overhead.\n\nBrowser 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.\n\n*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)*\n\n**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.\n\n**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.\n\n**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.\n\nMost browser automation for agents means a cloud VM, a heavy headless browser, or an extension that eats your CPU and takes over your session.\n\n- **Local only.** No cloud, no accounts, no sidebar chat, no per-site permission popups. Your agent talks to your Chrome through a local process.\n- **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.\n- **Small footprint.** Screenshots are scaled by Chrome itself through the DevTools Protocol. No in-page canvas work, no animated overlays.\n\n- **Parallel agents without cross-talk.** Each agent session gets its own Chrome tab group and can only see and act on tabs inside it.\n- **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.\n- **`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.\n- **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.\n- **Human in the loop.** Agents are told to stop before final submit, payment, send and delete, and to pause for you on real CAPTCHAs.\n- **GIF recording.** Record a session as a GIF for sharing, debugging or review.\n\n**Requirements:** macOS, Node.js 18+, Google Chrome.\n\n1. \n**Install** (the MCP server is a single ~450 KB JS file):\n\n```\ncurl -fsSL https://github.com/214140846/browser-hands/releases/latest/download/install.sh | sh\n```\n\n Files go to `~/.thundermcp` . Run with`--dry-run` to see what it would do, or`--uninstall` to remove it.\n2. \n**Load the extension:** open`chrome://extensions` , turn on Developer mode, click \"Load unpacked\" and pick`~/.thundermcp/extension` .\n3. \n**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`~` ):\n\n```\n{ \"mcpServers\": { \"thundermcp\": { \"command\": \"node\", \"args\": [\"/Users/you/.thundermcp/thundermcp.mjs\", \"mcp\"] } } }\n```\n\n**Build from source:** `bun install && bun run build && sh install.sh` (uses the local `dist/thundermcp.mjs` and `extension/`).\n\n``` php\ngraph TD\n    A[AI agent<br/>Claude Code, Cursor, ...] <-->|MCP over stdio| B(Browser Hands server<br/>Node.js)\n    B <-->|Native messaging| C{Chrome extension}\n    C <-->|DevTools Protocol + DOM| D[Tab group: agent 1]\n    C <-->|DevTools Protocol + DOM| E[Tab group: agent 2]\n```\n\n26 tools in total.\n\n**Same names and arguments as Claude in Chrome (16):**\n`tabs_context_mcp`, `tabs_create_mcp`, `tabs_close_mcp`, `read_page`, `get_page_text`, `find`, `computer`, `form_input`, `navigate`, `resize_window`, `javascript_tool`, `read_console_messages`, `read_network_requests`, `file_upload`, `upload_image`, `gif_creator`\n\n**Browser Hands additions (10):**\n\n| Tool | What it does | \n|---|---|\n| `browser_batch` | Run several simple actions in one call. | \n| `quick_find` /`quick_check` | Ask the fast model to locate an element or check a statement about the page. | \n| `quick_task` ,`quick_task_status` ,`quick_task_result` ,`quick_task_stop` | Run a known route with the fast executor in the background. | \n| `list_connected_browsers` ,`select_browser` ,`switch_browser` | See every connected Chrome profile (name and email) and choose which one to drive. | \n\n*Measured on a MacBook with a pre-release build, using a real e-commerce exchange flow (find order, pick item, choose new variant, review page, stop before submit).*\n\n| Scenario | Result | \n|---|---|\n| Another browser-agent extension, heavy news page (read + scroll + screenshot) | Chrome uses **+108%** CPU vs. idle (about one extra core) | \n| Browser Hands extension process, two agents on two profiles | **1.4%** average | \n| Browser Hands, full exchange flow | Chrome **4.9%** average | \n\n| Agent model | Time | Cost | \n|---|---|---|\n| Claude Opus | 112 s | $0.79 | \n| Claude Haiku | 87–100 s | **$0.03–0.05** (about 4–5% of Opus) | \n\nText-first reads and script batching are what let a small model finish the whole flow.\n\n3 agents ran the full flow at the same time in one Chrome: all finished in **116–135 s**, with **0** actions on the wrong tab.\n\n**Will my Claude in Chrome prompts work?** Mostly. The 16 shared tools take the same names and arguments; behaviour and output text are Browser Hands's own.\n\n**Does anything go to the cloud?** No. Agent, local MCP server, your Chrome. Only the `quick_*` tools call the small-model API you configure.\n\n**Will it click \"Pay\" or \"Submit\" on its own?** Agents are instructed to stop before final submit, payment, send and delete, and `stopBefore` lets you hard-block named buttons in `quick_task`.\n\n**CAPTCHAs?** It does not solve them. It pauses and asks you to.\n\n**Linux / Windows?** macOS is tested. The installer also runs on Linux, but that path is experimental and untested. Windows is not supported.\n\nPRs are welcome. See [CONTRIBUTING.md](https://github.com/214140846/browser-hands/blob/main/CONTRIBUTING.md) for how to run the unit and end-to-end tests.\n\nMIT. See [LICENSE](https://github.com/214140846/browser-hands/blob/main/LICENSE). Third-party components and their licenses are listed in [NOTICE](https://github.com/214140846/browser-hands/blob/main/NOTICE).\n\n*Browser Hands is an independent open-source project. It is not affiliated with, endorsed by, or sponsored by Anthropic. Its tool interface is designed to match Claude in Chrome's browser tools for developer convenience only; it was written independently, and no Claude in Chrome source code was copied.*", "url": "https://wpnews.pro/news/show-hn-browser-hands-claude-in-chrome-for-codex-cursor-and-any-mcp-agent", "canonical_source": "https://github.com/214140846/browser-hands", "published_at": "2026-11-13 15:00:26+00:00", "updated_at": "2026-11-13 15:22:30.621294+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "developer-tools"], "entities": ["Browser Hands", "Claude in Chrome", "Claude Code", "Codex", "Cursor", "Model Context Protocol", "Google Chrome", "OpenRouter"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-browser-hands-claude-in-chrome-for-codex-cursor-and-any-mcp-agent", "markdown": "https://wpnews.pro/news/show-hn-browser-hands-claude-in-chrome-for-codex-cursor-and-any-mcp-agent.md", "text": "https://wpnews.pro/news/show-hn-browser-hands-claude-in-chrome-for-codex-cursor-and-any-mcp-agent.txt", "jsonld": "https://wpnews.pro/news/show-hn-browser-hands-claude-in-chrome-for-codex-cursor-and-any-mcp-agent.jsonld"}}