browser-vps-setup-skill
Set up a remote-controlled Chrome browser on a Linux VPS with noVNC visual access (via SSH tunnel) and optional authenticated HTTP proxy. Use when the user wants to run a browser on a VPS, control it remotely, view it via noVNC, or route browser traffic through a proxy.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/osipov-anton/browser-vps-setup-skillBrowser on VPS — Setup
Set up Chrome on a Linux VPS so:
- The agent can control it (open pages, click, fill forms, take screenshots) via OpenClaw browser tool
- The user can watch and interact via noVNC in their local browser (over SSH tunnel)
- Optionally: all traffic routes through an authenticated HTTP proxy (for anti-captcha)
Step 1: Install dependencies
apt-get install -y xvfb x11vnc novnc
# Install real Google Chrome (NOT snap — snap breaks automation)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -O /tmp/chrome.deb
apt-get install -y /tmp/chrome.deb || apt --fix-broken install -y
Step 2: Start the browser stack
# Clean stale locks
rm -f /tmp/.X99-lock ~/.openclaw/browser/openclaw/user-data/SingletonLock 2>/dev/null
# Virtual display
Xvfb :99 -screen 0 1280x800x24 &
sleep 2
# VNC server (localhost only, no password)
x11vnc -display :99 -forever -nopw -localhost -quiet &
sleep 1
# noVNC web UI on port 6080 (localhost only)
websockify --web /usr/share/novnc 6080 localhost:5900 &
sleep 1
# Chrome with CDP on port 18800
DISPLAY=:99 google-chrome-stable --no-sandbox --disable-gpu \
--remote-debugging-port=18800 \
--user-data-dir=~/.openclaw/browser/openclaw/user-data \
--window-size=1280,800 &
Step 3: Connect visually from your laptop
ssh -L 6080:localhost:6080 root@YOUR_VPS_IP
Then open http://localhost:6080/vnc.html → click Connect.
You'll see the Chrome window live. You and the agent control it simultaneously.
Step 4: Configure OpenClaw
In ~/.openclaw/openclaw.json add:
{
"browser": {
"enabled": true,
"executablePath": "/usr/bin/google-chrome-stable",
"attachOnly": true,
"headless": false,
"noSandbox": true
}
}
Then restart: openclaw gateway restart
The agent can now use the browser tool to navigate, click, type, screenshot, etc.
Step 5 (Optional): Authenticated HTTP proxy
If you need a proxy (e.g. mobile proxy for anti-captcha), Chrome can't pass username/password in --proxy-server. Solution: run a local Python bridge that forwards with auth injected automatically.
python3 -c "
import socket, threading, base64, select
UPSTREAM_HOST = 'PROXY_IP' # e.g. 87.236.22.82
UPSTREAM_PORT = PROXY_PORT # e.g. 19423
USERNAME = 'PROXY_USER'
PASSWORD = 'PROXY_PASS'
LOCAL_PORT = 18801
auth = base64.b64encode(f'{USERNAME}:{PASSWORD}'.encode()).decode()
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-osipov-anton-browser-vps-setup-skill": {
"enabled": true,
"auto_update": true
}
}
}