How to Configure OpenClaw with VibeBrowser CLI or Chrome DevTools MCP Existing Session
A practical guide to configuring OpenClaw with vibebrowser-cli, using OpenClaw's existing-session Chrome DevTools MCP path, comparing the tradeoffs, and explaining why raw CDP becomes a problem for multi-agent browser work.
As of March 27, 2026, there are two practical ways to give OpenClaw access to a real browser session:
- use OpenClaw's built-in existing-session path through Chrome DevTools MCP
- teach OpenClaw to call
vibebrowser-cliwhen the job needs your actual logged-in browser plus a lower-context control surface
They are not interchangeable.
If you only need the fastest way to attach OpenClaw to a signed-in local browser today, the built-in user / existing-session path is the shortest route.
If you want the better long-running control plane for real browser agent work - especially when context cost, session reuse, and multi-agent coordination matter - vibebrowser-cli is the stronger lane.
If you want the deepest raw browser debugging surface for network, performance, Lighthouse, and DevTools inspection, Chrome DevTools MCP direct is still the strongest microscope.
This post covers all three decisions, plus the part too many tutorials skip: raw CDP is a weak shared-browser substrate for multiple agents. That is a big issue if you are building an actual agentic team, not just running one operator prompt at a time.
The short answer
- Use
openclaw browser --browser-profile userwhen you need the fastest existing-session attach path inside OpenClaw. - Use
vibebrowser-cliwhen you want OpenClaw-style browser verbs against the browser you already use every day, with a more compact page-state format and a better story for multi-agent workflows. - Use Chrome DevTools MCP direct when the problem is browser debugging, not browser operating.
- Keep OpenClaw's managed
openclawprofile for isolated verification, reproducible test flows, and cases where you do not want the agent touching your normal browser.
Option 1: Configure OpenClaw to use `vibebrowser-cli`
The simplest OpenClaw plus VibeBrowser setup today is not a deep plugin integration. It is a skill plus shell-command pattern:
- install the Vibe extension in Chrome
- install the published npm package
- teach OpenClaw to call
vibebrowser-clifor browser tasks that should hit your real logged-in browser
Start by verifying that the local Vibe bridge is reachable:
npx -y --package @vibebrowser/mcp@latest vibebrowser-cli --json status
You can also use the alias shipped in the same package:
npx -y --package @vibebrowser/mcp@latest vibebrowser-mcp browser --json status
The basic OpenClaw-friendly command loop is:
npx -y --package @vibebrowser/mcp@latest vibebrowser-cli open https://example.com
npx -y --package @vibebrowser/mcp@latest vibebrowser-cli --json snapshot
npx -y --package @vibebrowser/mcp@latest vibebrowser-cli click A12
npx -y --package @vibebrowser/mcp@latest vibebrowser-cli type A13 "hello world"
A practical OpenClaw skill for `vibebrowser-cli`
Create ~/.openclaw/workspace/skills/vibebrowser-cli/SKILL.md:
---
name: vibebrowser-cli
description: Use Vibe Browser CLI when a task needs the human's real logged-in browser, compact page snapshots, or a lower-friction action loop than raw CDP.
---
When a task needs the user's real browser session, prefer running:
`npx -y --package @vibebrowser/mcp@latest vibebrowser-cli --json status`
If the bridge is healthy, use this workflow:
1. `npx -y --package @vibebrowser/mcp@latest vibebrowser-cli open <url>`
2. `npx -y --package @vibebrowser/mcp@latest vibebrowser-cli --json snapshot`
3. `npx -y --package @vibebrowser/mcp@latest vibebrowser-cli click <ref>`
4. `npx -y --package @vibebrowser/mcp@latest vibebrowser-cli type <ref> "<text>"`
If status reports `"extensionConnected": false`, stop and request operator reconnection before retrying.
Why this works:
- OpenClaw already has an exec path and a native skills system.
vibebrowser-cligives you a small, command-oriented browser surface instead of forcing all real-browser work through raw CDP attach semantics.- You can keep using OpenClaw for orchestration while handing the browser leg to Vibe when session reuse and context efficiency matter.
This is the highest-leverage OpenClaw plus VibeBrowser setup if your real problem is not "launch another browser," but "let the agent operate the browser I already use."
Option 2: Use OpenClaw's default existing-session browser integration
OpenClaw also has a first-party existing-session path. This is the shortest route if you want to stay entirely inside the OpenClaw browser tool.
List available profiles:
openclaw browser profiles
Use the built-in signed-in browser profile:
openclaw browser --browser-profile user tabs
Create a named existing-session profile:
openclaw browser create-profile --name chrome-live --driver existing-session
openclaw browser --browser-profile chrome-live tabs
If you want the isolated browser instead, use the managed OpenClaw profile:
openclaw browser --browser-profile openclaw start
openclaw browser --browser-profile openclaw open https://example.com
openclaw browser --browser-profile openclaw snapshot
What this route is good at
- It is the quickest way to get OpenClaw onto an already signed-in local browser.
- It keeps the whole flow inside OpenClaw's built-in browser command family.
- It is a good operator path when one agent is acting and a human is nearby to approve attach prompts.
What you pay for
- You inherit Chrome DevTools MCP's attach and approval friction.
- You inherit CDP's weak story for multiple agents sharing one live browser.
- You are still working through a DevTools-first transport, not a browser-control surface optimized for low context usage.
Pros and cons by tool
| Tool | Best for | Pros | Cons |
|---|---|---|---|
vibebrowser-cli / vibebrowser-mcp browser |
Real logged-in browser work with lower context cost | Reuses your actual browser state, no debug-port flow, compact action loop, stronger multi-agent story | Requires Vibe extension, bridge must stay connected |
OpenClaw managed openclaw profile |
Isolated agent browsing and verification | Safer, reproducible, clean-room browser lane | Not your normal browser, no existing personal sessions |
OpenClaw user / existing-session |
Fastest real-browser attach inside OpenClaw | Shortest path, native OpenClaw browser commands, good for one operator at a time | Approval friction, CDP attach tax, weak multi-agent behavior |
| Chrome DevTools MCP direct | Debugging browser internals | Best for console, network, performance, Lighthouse, memory, DevTools-style inspection | Verbose snapshots, approval friction, telemetry defaults, poor shared-browser multi-agent ergonomics |
| Playwright MCP extension mode | Ref-based browser actions with a more agent-friendly snapshot than raw AX dumps | Action-oriented refs, extension path for existing browser use, good general-purpose automation | Still weaker than Vibe on shared real-browser coordination, still not a true multi-agent control plane |
What is the quickest and most effective tool for fixing AI-agent browser issues?
The answer depends on the class of issue:
- If the issue is "the agent needs my real logged-in browser right now", OpenClaw
userorexisting-sessionis the quickest route. - If the issue is "the agent keeps wasting context, losing state, or stepping on other agents", VibeBrowser is the more effective route.
- If the issue is "I need to debug console errors, network failures, performance traces, or a weird browser regression", Chrome DevTools MCP is the right microscope.
So the practical stack is:
- fastest attach path: OpenClaw existing-session
- best control plane for repeated agent work: VibeBrowser
- best debugging tool: Chrome DevTools MCP
Context benchmark: VibeBrowser vs Chrome DevTools MCP
Here is the concrete local benchmark I could capture on the Vibe /mcp page running at http://127.0.0.1:3002/mcp.
Measured locally
- Chrome DevTools MCP
take_snapshot: 431 lines - Chrome DevTools MCP
take_snapshot: 24,453 characters - Chrome DevTools MCP
take_snapshot: 2,504 words
That is a lot of page state for an agent to keep dragging forward.
What Vibe documents
On our own MCP page and docs, Vibe's indexed markdown snapshot path is described as 3-5x smaller than raw DOM or accessibility-tree alternatives.
If that reduction holds on the same page shape, a Vibe markdown snapshot for this page would land roughly in the range of:
- 8,151 characters at 3x smaller
- 4,891 characters at 5x smaller
This is not a perfect live apples-to-apples benchmark because the Vibe extension was not connected on the measurement machine at the moment I captured the DevTools snapshot. So treat the Vibe number as a documented expected range, not a directly captured live payload from the same run.
But the direction is the important part:
- Chrome DevTools MCP gives you a DevTools inspection artifact
- VibeBrowser gives you a browser-control artifact designed for LLM context efficiency
That distinction matters when the agent is not just debugging one page, but carrying state across a multi-step workflow.
Raw CDP is not a real multi-agent browser protocol
This is the big issue.
Raw CDP does not give you a first-class model for multiple autonomous agents safely sharing one live browser. Yes, multiple clients can technically connect. No, that does not mean the browser becomes a sane multi-agent workspace.
The problems are structural:
- There is no built-in ownership model for tabs, targets, or workflows.
- There is no scheduler that prevents one agent from navigating away while another agent is still acting on stale refs.
- There is no clean lock or lease model for shared browser state.
- Snapshot refs become stale fast when another client clicks, types, focuses, reloads, or closes the target.
- Approval prompts and attach state add another human bottleneck right in the middle of autonomous work.
Chrome DevTools MCP gives you excellent browser introspection. It does not add the multiplexing, coordination, and conflict-management layer you need for a true multi-agent browser control plane.
That is why this matters so much for agent teams:
- a single-agent attach flow can feel fine
- a multi-agent shared-browser workflow turns into interference, stale state, and prompt churn
If your roadmap includes multiple agents operating against the same logged-in browser, CDP is not just a little awkward. It is the wrong primitive to build the shared control plane around.
The Chrome approval dialog is still annoying
This is what the current attach experience feels like in practice:

That dialog is not just cosmetic friction.
It breaks the feeling of a continuous agent workflow. Every repeated approval is a reminder that you are not actually running on a seamless always-on browser control plane. You are negotiating a DevTools attach session.
For a human-operated debugging session, that is acceptable.
For an "autonomous employee" or always-on operator loop, it is a serious product tax.
Recommendation
Use the right lane for the job:
- choose OpenClaw managed
openclawwhen you want a safe isolated browser - choose OpenClaw
user/existing-sessionwhen you need the fastest attach to a real signed-in browser - choose
vibebrowser-cliwhen you want the better day-to-day control plane for real-browser agent work, lower context usage, and a stronger multi-agent story - choose Chrome DevTools MCP direct when the browser problem is debugging, not operating
If you want the VibeBrowser side of that setup, start here: