Back to Blog

Self-Hosted OpenClaw Browser Profiles on Mac: `openclaw`, `user`, and the Fixes That Actually Matter

A simple MacBook and Mac mini guide to the isolated browser, the signed-in Chrome profile, and the most common setup mistakes.

DV

Dzianis Vashchuk

4 min read

If you are running self-hosted OpenClaw on a MacBook or Mac mini, there are only two browser profiles that matter:

  • openclaw: the isolated browser OpenClaw manages
  • user: the profile that attaches to your already-open Chrome session

For most people, the right default is still openclaw.

The important part that often gets missed is this:

openclaw does not copy your user or Chrome profile by default. It starts with its own separate browser data directory.

So if you want the agent to reuse your existing tabs, cookies, or logins, that does not happen automatically. You must use user, or another existing-session profile you configured on purpose.

Official docs:

Which profile should you use

Keep openclaw as the default

This is the better choice for most setups:

  • it stays separate from your personal browsing
  • it is more predictable
  • it avoids most browser-control conflicts

Use this in ~/.openclaw/openclaw.json:

{
  browser: {
    enabled: true,
    defaultProfile: "openclaw"
  }
}

Use user only when you need your real browser session

Pick user when the agent must reuse:

  • sites where you are already signed in
  • tabs you already opened
  • cookies or session state from your normal browser

If that is your main workflow, make it the default instead:

{
  browser: {
    enabled: true,
    defaultProfile: "user"
  }
}

If you want both isolation and your current sessions

What many people actually want is a one-time clone or import from user into openclaw.

That would let the managed openclaw browser keep your existing sessions while still staying separate from your live Chrome window.

OpenClaw does not do that automatically today, but that is the right thing to ask for if you want convenience once and isolation afterward.

Why the isolated browser is safer

This is not only about privacy. It is also about stability.

The user profile attaches to your live Chrome session through Chrome DevTools MCP. That works well for convenience, but it is fragile when more than one tool or agent tries to use the same browser session.

In plain language: multiple agents can end up fighting over the same browser. One connects, another tries to auto-connect, and control gets interrupted. That is why the isolated browser is often the safer default. It protects your personal session and avoids most of those connection conflicts.

That is also why products such as Vibe Browser and OpenClaw Box are better for multi-agent browser work. They are designed for that job. A personal Chrome session is not.

Minimal setup

For most Mac users, this is enough:

  1. set defaultProfile to the one you want
  2. run openclaw gateway restart
  3. verify with:
openclaw browser profiles
openclaw browser --browser-profile openclaw status
openclaw browser --browser-profile user status

If you want to use user, also make sure:

  • Chrome is open
  • remote debugging is enabled in chrome://inspect/#remote-debugging
  • you approve the attach prompt

Brave and other Chromium browsers

There are two different settings for two different jobs:

  • browser.executablePath changes which browser app OpenClaw launches for the managed openclaw profile
  • userDataDir is only for an existing-session profile that should attach to a real browser profile, such as Brave

So if you want managed Brave, set browser.executablePath.

If you want live Brave with your existing session, use an existing-session profile with Brave's userDataDir.

Troubleshooting

Browser commands look disabled

Check:

  • browser.enabled is true
  • the bundled browser plugin is enabled
  • if you use plugins.allow, it includes "browser"

Then run:

openclaw gateway restart

user does not connect

The usual reasons are:

  • Chrome is not open
  • remote debugging is not enabled
  • the attach prompt was not approved
  • another tool or agent already grabbed the live Chrome session

That last one is the big reason many people stay with openclaw as the default.

Official references