OpenWAF Browsers gives your AI agents a real browser in the cloud. You ask for one with an API call and get a CDP URL for Playwright, Puppeteer or the Playwright MCP server, and a live view URL for a person. Each browser runs in its own container in Germany, and every byte it sends goes out through a filtering, logging egress proxy.
Status
Public beta, free within quota, subject to approval. An operator turns OpenWAF Browsers on for each organization. During the beta it is free within the monthly quota: 20 browser-hours and 5 GB of egress per organization. There is no paid plan yet. See how to get access.
What you get
- Real Google Chrome, as shipped, headful, with its own sandbox on. No patched build and no headless mode.
- CDP for any client.
cdpUrlis a browser-level DevTools WebSocket:chromium.connectOverCDP()in Playwright,puppeteer.connect({browserWSEndpoint})in Puppeteer, ornpx @playwright/mcp@latest --cdp-endpoint <cdpUrl>for an MCP assistant. - Live view.
liveUrlopens the browser's screen in any web browser. A person can watch, or take over for a login, a 2FA prompt or a CAPTCHA. - Recordings. Start a browser with
"recording": trueand get an MP4 of the session with its downloads. - Profiles. A profile keeps cookies and logins between browsers. One browser uses a profile at a time.
- Egress proxy. All traffic leaves through a proxy that only allows ports 80 and 443, always refuses private, loopback, link-local (including
169.254.169.254), CGNAT and other special-purpose addresses, and logs every request. You can limit an organization to an allowlist of hosts. - Declared, not stealthy. Requests are signed with Web Bot Auth by default so sites can tell an agent is visiting. There is no fingerprint spoofing, no residential proxy and no CAPTCHA solving. See what it is not.
- Hosted in the EU. Browsers, recordings and logs stay in Germany.
How it works
agent ── API + CDP ──┐
person ── liveUrl ───┤
▼
browsers.openwaf.dev
▼
Chrome container (Germany)
▼
egress proxy (80/443, logged)
▼
public web- Your agent calls
POST https://browsers.openwaf.dev/v1/browserswith a browser key (bdk_…). - The answer carries the browser
id(bs_…),cdpUrl,liveUrlandurlsExpireAt. - The agent connects to
cdpUrland drives Chrome. Closing the CDP connection does not stop the browser. - The browser stops when you stop it, after 120 seconds with no CDP or live view client, after 60 minutes in total, or when Chrome exits. Its files stay available for 7 days.
Keys, usage, sessions, the egress log and settings are managed per organization from the dashboard (Browsers), the OpenWAF API, the CLI or the MCP server.
Get access
- Make sure every owner and admin of the organization has a verified email and two-factor authentication turned on. An operator checks this before approving.
- In the dashboard, open Browsers in the organization menu. The Overview tab shows the requirements and a Request access button, which opens an email to support@openwaf.dev with your organization id. You can also write to support@openwaf.dev directly.
- When an operator approves the organization, the Overview tab shows your quota and an admin can create the first key.
Until then, GET /v1/orgs/{org}/browsers answers with "status": "not_enabled" and the writes answer 403 feature_disabled.