Many people deploy OpenClaw on a server as a personal AI assistant, but out of the box, it cannot access the web. For an AI assistant that needs to “surf the web,” this is undoubtedly its biggest limitation.
The good news is that, by configuring a headless browser, we can give OpenClaw the ability to browse the web, take screenshots, and automate interactions. This article walks through the entire setup process on an ARM64 server.
Why You Need a Browser
OpenClaw is an AI assistant framework, and to truly “intelligently” help you get things done, it needs browser capabilities:
- Retrieve real-time information: Weather, news, stocks
- Automate web interactions: Auto-fill forms, click buttons, run scheduled check-ins
- Capture page screenshots: Send screenshots of web pages to you
- Scrape websites: Pull content from specific sites
The ARM64 Problem
The standard Chrome browser is only available for amd64, while many people use Apple Silicon Macs or ARM servers (such as Tencent Cloud Lighthouse). As a result, the usual Chrome installation methods do not work.
There are two solutions:
- Use Snap Chromium: It comes bundled with Ubuntu, but configuration is a hassle
- Use Playwright Chromium: Cross-platform and compatible with ARM64
This guide uses option 2 because it offers more control.
Tech Stack
| Component | Purpose | Notes |
|---|---|---|
| Playwright | Browser automation framework | Provides the Chromium binary |
| Chromium | Headless browser | ARM64-compatible version |
| CDP (Chrome DevTools Protocol) | Browser debugging protocol | Used by OpenClaw to control the browser |
Complete Setup
1. Install Playwright Chromium
npx playwright install chromium
Playwright automatically downloads a Chromium build that matches the current architecture.
2. Install Chinese Fonts
Chinese fonts must be installed separately so they appear correctly in screenshots taken by the headless browser:
sudo apt-get install -y fonts-wqy-microhei fonts-wqy-zenhei
fc-cache -fv
3. Launch the Browser
We need to launch Chromium in CDP mode:
4. Configure OpenClaw
Edit ~/.openclaw/openclaw.json and add or update the browser section:
5. Verify the Configuration
openclaw browser status
openclaw browser screenshot
Advanced Usage
Automatic Startup Script
To ensure the browser starts automatically after the server restarts, add a systemd service:
Persisting Browser Profiles
If you need to preserve your login state, specify a user data directory:
--user-data-dir=/path/to/profile
The browser will then remember cookies and sessions, so you only need to log in once.
Common Issues
Fonts Still Appear Garbled
Check whether the fonts loaded correctly:
fc-list :lang=zh
If the output is empty, you may need to manually download the fonts into a directory Chrome can access.
CDP Connection Fails
- Check whether the port is in use:
lsof -i:18800 - Inspect the browser log:
cat /tmp/chrome.log - Try restarting the browser
Blank Screenshots
The page may not have finished loading, so increase the wait time:
What You Can Do
Once everything is configured, you can:
- Have the AI check the weather for you: Take a screenshot of the current weather and send it to you
- Automate check-ins: Open a page on a daily schedule and click the check-in button
- Monitor page content: Get notified when a specific page changes
- Generate reports: Automatically open the admin dashboard, take a screenshot, and generate a daily report
Summary
This guide walks through the complete process of configuring a headless browser for OpenClaw on an ARM64 server. Although the setup is a little more involved than installing Chrome directly, the combination of Playwright + CDP ultimately gives you:
- ✅ ARM64 compatibility
- ✅ Chinese font support
- ✅ OpenClaw integration
- ✅ Automation capabilities
If you also need to run an AI assistant on a server, give this approach a try.