#Full browser control

1 messages · Page 1 of 1 (latest)

sinful lodge
#

My setup:
Proxmox
LXC Debian 24.04 running clawdbot
VM Windows 11
They are both on the same network.

Is it possible to give my clawdbot full control of the chrome browser on the VM without me having to attach the relay extension every time? It should be able to start, stop and do everything with the browser.

If so how?

cobalt stirrupBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

abstract orioleBOT
# sinful lodge My setup: Proxmox LXC Debian 24.04 running clawdbot VM Windows 11 They are both...

There are a few approaches depending on how much automation you need:

Option 1: Chrome with Remote Debugging + CDP

Start Chrome on Windows with remote debugging enabled:

chrome --remote-debugging-port=9222 --user-data-dir="C:\ChromeDebug"

Then Clawdbot can connect via CDP. You'll need to expose port 9222 to your Debian LXC (SSH tunnel or firewall rules). This works if Chrome is already running, but doesn't handle starting Chrome.

Option 2: Selenium Server on Windows

Run Selenium Grid or a standalone Selenium server on the Windows VM. Clawdbot can send commands to the Selenium API, which then controls Chrome. This handles start/stop since Selenium can launch Chrome.

Option 3: Playwright/Puppeteer as a Service

#

Run a small Node.js service on Windows using Playwright or Puppeteer. Expose an HTTP API that Clawdbot calls to control the browser. More manual to set up but very flexible.

Option 4: RDP + UI Automation (Most Complex)

Use Windows RDP combined with UI automation libraries, but this is overkill for browser control.


Honest take: The Chrome Extension Relay exists precisely because browser automation is tricky. For most use cases, Option 2 (Selenium) is the cleanest path to full start/stop/control without manual extension attachment.

Want me to look up specific docs or walk through any of these approaches in more detail?

sinful lodge
#

But with the extension relay I have to manually open a tab, and then attach the extension relay to that specific tab, right? So the agent will never be able to just open new tabs by it self etc. I always have to do it manually and then hand it off to the agent??

abstract orioleBOT
#
}

On Your Windows VM

  1. Create a batch file start-chrome-debug.bat:
start chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\ClawdbotChrome" --no-first-run --no-default-browser-check
  1. Configure Windows Firewall:

    • Allow inbound connections on port 9222 from your Debian LXC IP
  2. Start Chrome on the VM (manually or via Windows startup)

On Your Debian LXC

#

Make sure the network is accessible. You may need to create an SSH tunnel:

ssh -L 9222:localhost:9222 user@WINDOWS_VM_IP

Or configure Proxmox to allow direct access.


Summary: Once configured, Clawdbot can connect directly via CDP and has full autonomous control — no extension, no manual tab handoff needed. It can open new tabs, navigate, interact with pages, etc. all on its own.

sinful lodge
#

Can the LXC itself run jts own browser? It’s a headless installation. If so how?

abstract orioleBOT
# sinful lodge Can the LXC itself run jts own browser? It’s a headless installation. If so how...

Yes! The LXC can run its own browser headlessly. Here's how:

Option 1: Chrome/Chromium with Xvfb (X Virtual Framebuffer)

This gives you a "virtual" display that Chrome can render to:

# Install dependencies
sudo apt install xvfb chromium chromium-driver

# Start a virtual display
Xvfb :99 -screen 0 1920x1080x24 &
export DISPLAY=:99

# Start Chrome with remote debugging
chromium --remote-debugging-port=9222 --no-sandbox --disable-gpu --disable-dev-shm-usage
#

Option 2: Puppeteer/Playwright (Easier)

Both have headless mode built-in:

# Install Node.js first if not present
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install nodejs

# Install Puppeteer
npm install puppeteer

# Or Playwright
npm install playwright
npx playwright install chromium
#

Option 3: Clawdbot's Built-in Sandboxed Browser

Clawdbot already has sandboxed browser support built-in:

# Check if browser is enabled
clawdbot config get browser.enabled

# Enable if needed
clawdbot config set browser.enabled true

For your use case, I'd recommend Option 3 first — it's the simplest since Clawdbot already knows how to talk to it. If that doesn't work as expected, Option 1 with Xvfb is the most robust for headless environments.

Want me to help you set any of these up?

sinful lodge
#

How should the clawdbot.json file browser section look if I want to use option 3 headless

abstract orioleBOT
#
  }
}

Key settings:

  • enabled: true — turns on the sandboxed browser
  • headless: true — runs Chromium without a display (perfect for LXC)
  • autoStart: true — browser starts automatically when needed

Then run the browser image setup:

cd ~/clawdbot-ref && ./scripts/sandbox-browser-setup.sh

The browser will run in a Docker container and Clawdbot can control it autonomously — no manual extension handoff needed.

sinful lodge
#

Tried option 3:

clawdbot@clawdbot:~/.clawdbot$ clawdbot browser status
🦞 Clawdbot 2026.1.16-2 (49c35c7) — I read logs so you can keep pretending you don't have to.

profile: chrome
enabled: true
running: false
controlUrl: http://127.0.0.1:18791
cdpPort: 18792
cdpUrl: http://127.0.0.1:18792
browser: unknown
detectedBrowser: unknown
detectedPath: auto
profileColor: #00AA00
clawdbot@clawdbot:~/.clawdbot$ clawdbot browser start

🦞 Clawdbot 2026.1.16-2 (49c35c7) — Pairing codes exist because even bots believe in consent—and good security hygiene.

Error: 500: {"error":"Error: Chrome extension relay is running, but no tab is connected. Click the Clawdbot Chrome extension icon on a tab to attach it (profile "chrome")."}
clawdbot@clawdbot:~/.clawdbot

abstract orioleBOT
#
      "sandbox": {
        "enabled": true,
        "browser": {
          "enabled": true,
          "headless": true,
          "autoStart": true
        }
      }
    }
  }
}

3. Build the browser image

#
cd ~/clawdbot-ref
./scripts/sandbox-browser-setup.sh

4. Restart Clawdbot

clawdbot gateway restart

5. Test

clawdbot browser status