Give any AI agent a real browser.
Every browser automation tool launches a new, blank browser — no logins, no cookies, no extensions. Your agent has to re-authenticate everywhere, fight captchas, and gets flagged as a bot.
BrowserHand takes a different approach: it controls the browser you're already using.
| BrowserHand | Manus AI | Playwright / Puppeteer | Browser MCP | |
|---|---|---|---|---|
| Browser | Your real browser | Your real browser | New blank browser | New blank |
| Login state | Preserved | Preserved | None | None |
| Bot detection | Much harder to detect | Much harder to detect | Often flagged | Often flagged |
| Open source | Yes (MIT) | No | Yes | Yes |
| Self-hosted | Yes | No (SaaS only) | Yes | Yes |
| API access | HTTP + JSON + MCP | None | Library API | MCP only |
| Build your own agent | Yes | No | Yes | Yes |
| Framework lock-in | None — curl works | Manus platform | Playwright SDK | MCP clients |
Install the Chrome extension, connect via MCP, and let AI control your browser directly. No coding required.
What you can do:
- Ask Claude to post on Twitter, reply to mentions, schedule threads
- Automate LinkedIn engagement — publish articles, send connection requests
- Monitor competitor websites for changes
- Fill forms, scrape data, take screenshots — all from natural language
Setup:
- Install the BrowserHand Chrome Extension
- Add to your Claude Desktop / Claude Code config:
{
"mcpServers": {
"browserhand": {
"command": "npx",
"args": ["browserhand-mcp"]
}
}
}- Say "Open Twitter and post: Hello World" — done.
You're building an AI agent that needs to operate a browser? BrowserHand gives your agent the same real-browser capabilities as Manus AI — open source, fully controllable, deployed on your own platform.
What you can build:
- A social media agent that auto-posts and replies across Reddit, Twitter, LinkedIn
- A customer support agent that navigates your internal tools
- A monitoring service that checks pages and alerts on changes
- Any agent that needs to interact with websites that don't have APIs
Integration via HTTP:
import requests
def cmd(action, **params):
return requests.post("http://127.0.0.1:29981/command",
json={"action": action, "params": params}).json()
# Your agent logic decides what to do
cmd("navigate", url="https://twitter.com")
cmd("extract") # get all interactive elements
cmd("click", index=5) # click "New post" button
cmd("type", index=8, text="Hello from my agent!")
cmd("click", index=12) # click "Post"Works with any language and any agent framework — Mastra, LangChain, CrewAI, OpenAI Assistants, or your own. Just HTTP POST. Also supports MCP integration.
See the full Developer Integration Guide for local development, cloud deployment (multi-user), all 26 actions, and response format.
chrome://extensions→ Developer mode ON → Load unpacked → selectextension/
cd relay && npm install && npx tsx index.tscurl -X POST http://127.0.0.1:29981/command \
-H "Content-Type: application/json" \
-d '{"action": "navigate", "params": {"url": "https://example.com"}}'Claude Desktop / Cursor Your code / Agent framework
↓ MCP (stdio) ↓ HTTP POST /command
↓ ↓
MCP Server (browserhand-mcp) ────┤
↓ HTTP POST /command ↓
Relay Server (localhost:29981)
↓ WebSocket
Chrome Extension
↓ Chrome DevTools Protocol
Your Browser (logged in, cookies intact)
Two entry points, one core. The MCP server translates MCP tool calls to HTTP. The relay bridges HTTP to WebSocket. The extension executes commands via Chrome's debugger API.
- Localhost only — relay binds to
127.0.0.1, unreachable from the network - Origin verification — WebSocket requires unforgeable
chrome-extension://origin - Sensitive page blocklist — auto-refuses operations on banking & password manager sites
- Visual transparency — agent-operated tabs are grouped and highlighted
- Developer Integration Guide — local dev, cloud deployment, all 26 actions, response format