Give your AI agents a real browser.
npx @acolombiadev/claw-relayLaunches a dedicated Chrome window, starts the relay, generates config with random tokens. One command, zero setup.
First time: Sign into GitHub (or any site) in the Claw Relay Chrome window. Logins persist between restarts.
Restart: Ctrl+C stops the relay. Chrome stays open. Run npx @acolombiadev/claw-relay again — it reconnects without relaunching Chrome.
Claw Relay sits between your AI agent and Chrome. The agent sends actions (navigate, click, read) via WebSocket — the relay enforces auth, permissions, rate limits, and site restrictions before forwarding to Chrome via CDP.
- Navigation & snapshots — browse pages, read accessibility trees
- Element interaction — click, type, fill, hover, select, drag & drop
- Screenshots — full page, viewport, or individual elements
- Batch actions — execute multiple actions in a single message
- Tab targeting — pin actions to specific tabs via
targetId - Wait conditions — wait for text, selectors, navigation, network idle, or custom JS
- Console & network monitoring — capture logs and requests
- PDF generation — render pages to PDF
- Viewport resize — test responsive layouts
- JavaScript evaluation — run arbitrary code in page context
Works with Copilot CLI, OpenClaw, Claude Code, nanobot, ZeroClaw, or any MCP client.
{
"mcpServers": {
"claw-relay": {
"command": "node",
"args": ["mcp/claw-relay-mcp.js"],
"env": {
"CLAW_RELAY_URL": "ws://localhost:9333",
"CLAW_RELAY_TOKEN": "your-token",
"CLAW_RELAY_AGENT": "default"
}
}
}
}Use the bundled CLI client — no MCP required:
export CLAW_RELAY_URL="ws://localhost:9333"
export CLAW_RELAY_TOKEN="your-token"
export CLAW_RELAY_AGENT="your-agent"
node skills/openclaw/relay-client.cjs navigate https://github.com
node skills/openclaw/relay-client.cjs snapshot
node skills/openclaw/relay-client.cjs click e3See skills/openclaw/SKILL.md for the full agent skill reference.
Connect directly via WebSocket for full control:
const ws = new WebSocket('ws://localhost:9333');
ws.send(JSON.stringify({ type: 'auth', token: 'your-token', agent_id: 'your-agent' }));See protocol docs for the full action reference.
See MCP docs for MCP-specific setup.
Optional — lets your agent use your normal Chrome instead of the dedicated window:
- Install from the Chrome Web Store
- Click the toolbar icon on any tab to share it with the relay
For development:
chrome://extensions→ Developer mode → Load unpacked → selectextension/
Auto-generated config.yaml on first run. Or copy the example manually:
cp relay-server/config.example.yaml relay-server/config.yamlKey settings:
agents:
my-agent:
token: "crly_..." # auth token
scopes: ["read", "navigate", "interact"]
allowlist: ["github.com"] # where the agent can go
rateLimit: 30 # actions per minute
blocklist:
- "*.bank.com" # always blockednpx @acolombiadev/claw-relay [options]
--port <number> Server port (default: 9333)
--config <path> Custom config path
--no-chrome Skip Chrome launch (assumes CDP on :9222)
- Auth — token + agent ID per connection
- Scopes — read, navigate, interact, execute
- Allowlist/Blocklist — per-agent URL restrictions
- Rate limiting — per agent, per minute
- Audit log — every action logged with timestamp
💡 Quickest setup with GitHub Copilot CLI:
copilot --additional-mcp-config '{"mcpServers":{"claw-relay":{"command":"node","args":["mcp/claw-relay-mcp.js"],"env":{"CLAW_RELAY_URL":"ws://localhost:9333","CLAW_RELAY_TOKEN":"your-token","CLAW_RELAY_AGENT":"your-agent-id"}}}}'That's it — Copilot CLI loads the MCP server and you're ready to browse. Get Copilot CLI free →
- Add your agent to
config.yamlwith a token, scopes, and allowlist - Restart the relay (config is read at startup)
- Connect using your platform's method (MCP or OpenClaw skill)
- Test with a simple
snapshotaction
Common gotchas:
- Agent ID is case-sensitive —
Rusty≠rusty. Matchconfig.yamlexactly. - Restart after config changes — the relay reads
config.yamlat startup only - Check scopes — if an action fails with "permission_denied", the agent needs that scope added
- One action per call (OpenClaw skill) — don't try to batch or keep connections open
| Setup Guide | Install, configure, launch |
| MCP Server | Connect MCP clients |
| Protocol | WebSocket API reference |
| Dashboard | Web UI for monitoring |
| Tunnels | Remote access |
| Troubleshooting | Common issues |
| Responsible Use | When to use Claw Relay (and when not to) |
Drop-in skill files that teach AI agents how to use Claw Relay:
| Browser Skill | Teaches any agent to navigate, click, type, screenshot — works with any framework |
| OpenClaw Skill | Standalone relay client for OpenClaw, nanobot, ZeroClaw (no MCP required) |
Copy the relevant SKILL.md into your agent's skills directory, or point your agent at the file directly.
- Node.js — runtime
- Hono — HTTP framework
- Playwright — browser automation
- Cloudflare Tunnels — secure remote access
- TanStack Router — dashboard SPA
MIT
