Use this when a personal assistant — OpenClaw, Hermes, or any general-purpose agent that browses the web on your behalf — needs to reach pages that a plain HTTP fetch cannot: JavaScript-rendered, geo-sensitive, or behind bot protection. Unlike a coding agent in an editor, a personal assistant loads capabilities from a skill file, so the setup is a skill plus a connection.
Setting up a coding agent (Claude Code, Cursor, Codex) instead? Use the MCP browser setup for coding agents.
1) Point the agent at the BrowserCity skill
BrowserCity publishes a ready-made skill at browser.city/SKILL.md. It teaches the agent when to use each tool (MCP for interaction, the Request API for extraction, Humanized REST for HTTP-only interaction) and how to stay safe with untrusted page content.
For a skills-based agent like OpenClaw, drop the skill into your workspace:
<workspace>/skills/browsercity/SKILL.md, or~/.openclaw/workspace/skills/browsercity/SKILL.md
Then fetch the latest copy into that path:
mkdir -p ~/.openclaw/workspace/skills/browsercity
curl -fsSL https://browser.city/SKILL.md \
-o ~/.openclaw/workspace/skills/browsercity/SKILL.md
Agents that read a skill directly from a URL can point at https://browser.city/SKILL.md without a local copy.
2) Set your API key
Keep the key in the environment or your agent’s secret store, never in a prompt or a committed file.
export BROWSERCITY_API_KEY="your_api_key"
3) Connect the browser
Personal agents connect one of two ways, depending on what they support:
MCP (preferred, if the agent speaks MCP). Register the remote server so the browser_* tools appear:
{
"mcpServers": {
"browsercity": {
"url": "https://mcp.browser.city/mcp",
"headers": { "Authorization": "Bearer ${env:BROWSERCITY_API_KEY}" }
}
}
}
REST (works everywhere). If the agent only has an HTTP tool, the skill routes it to the Request API for URL → markdown and to Humanized REST (/v1/do/*) when a page needs clicking or typing — no browser client required.
4) First task to try
Using the browsercity skill, open the page at a URL I give you, read it as markdown, and summarize it. If the page needs interaction, escalate to the interactive browser tools.
The agent opens a stealth session, reads the page, and closes the session when done.
Working alongside the agent’s built-in browser
Personal assistants often ship their own browser or fetch tool. A clean split:
- Use the agent’s built-in fetch for simple, public, non-JS pages.
- Use the agent’s built-in browser for local, manual-login, or human-verification steps.
- Use BrowserCity when the page is guarded, JS-heavy, geo-sensitive, or you want deterministic stealth browsing that does not touch a local profile.
The OpenClaw integration shows this split with copy-paste helpers; the same pattern applies to Hermes and other assistants.
Safety and cost notes
- The skill instructs the agent to treat page content as untrusted and never follow instructions found inside a fetched page.
- Ask the agent to close sessions when a task finishes so you do not pay for idle browsers.
- Personal browsing is usually a few short sessions per task; cost tracks how often the agent browses, not page complexity.