<img src="https://github.com/browserless/browserless/raw/v2.54.2/assets/logo.svg" alt="Browserless logo" width="600">
<a href="https://browserless.io/">
<img src="https://img.shields.io/badge/🧪_Try_on_Cloud-4A90E2?style=for-the-badge" alt="Try on Cloud" />
</a>
<a href="#-1-minute-quickstart">
<img src="https://img.shields.io/badge/📦_Run_Locally-34A853?style=for-the-badge" alt="Run Locally" />
</a>
<a href="https://docs.browserless.io/">
<img src="https://img.shields.io/badge/📘_Dev_Docs-5C6AC4?style=for-the-badge" alt="Developer Docs" />
</a>
<a href="https://trendshift.io/repositories/4378" target="_blank"><img src="https://trendshift.io/api/badge/repositories/4378" alt="browserless%2Fbrowserless | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
<a href="https://hub.docker.com/r/browserless/chrome">
<img src="https://img.shields.io/endpoint?url=https://browserless-docker-pulls.netlify.app/pulls&style=flat-square" alt="Docker pulls" />
</a>
<a href="https://github.com/browserless/browserless">
<img src="https://img.shields.io/github/stars/browserless/browserless?style=flat-square" alt="GitHub stars" />
</a>
<a href="https://github.com/browserless/browserless/tags">
<img src="https://img.shields.io/github/package-json/v/browserless/chrome?style=flat-square" alt="Version" />
</a>
<a href="https://status.browserless.io/">
<img src="https://img.shields.io/badge/Status-Operational-success?style=flat-square" alt="Status" />
</a>
Get up and running in three simple steps:
docker run -p 3000:3000 ghcr.io/browserless/chromium
Visit http://localhost:3000/docs
✅ Success! Your browser service is live at ws://localhost:3000
📘 Puppeteer Example
import puppeteer from 'puppeteer-core';
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://localhost:3000',
});
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close();
🎭 Playwright Example
import pw from 'playwright-core';
const browser = await pw.firefox.connect(
'ws://localhost:3000/firefox/playwright'
);
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close();
Note: Use ghcr.io/browserless/firefox or ghcr.io/browserless/multi for Firefox/Webkit support.
Example Domain
Our Self-serve cloud and Enterprise offerings include all the general features plus extras, such as:
Select the deployment model that best fits your needs:
| ### 🔓 Open Source (Self-Hosted) Free, self-hosted solution with core browser automation capabilities. **Best for:** Testing, development, and small projects [↓ Quickstart above](#-get-started-in-seconds) | ### 🏢 Enterprise Docker (Self-Hosted) Full Enterprise features in a self-hosted container. **Best for:** Production workloads requiring data sovereignty [→ Learn More](https://www.browserless.io/pricing/) |
| ### ☁️ Cloud (Self-Serve) Fully managed, pay-as-you-go service with automatic scaling. **Best for:** Quick starts and rapid prototyping [→ Start Free](https://browserless.io/) | ### 🔒 Private Deployment Custom Enterprise infrastructure across major cloud providers. **Best for:** Large-scale enterprise deployments [→ Contact Sales](https://www.browserless.io/contact) |
Want to dive deeper? Check out this detailed guide for advanced stuff including Docker configuration, hosting providers, SDK extensions, and more.
Running Chrome in the cloud or CI sucks.
Missing fonts. Random crashes. Dependency hell. Lambda limits. You know the drill.
Browserless solves this by handling browsers as a managed service — locally or in our cloud — so you can focus on automation, not infrastructure. We've taken care of the hard parts: system packages, font libraries, security patches, scaling strategies, and CVEs.
You still own your script. You still control your code. We just make sure the Browser runs smoothly, every time.
SPDX-License-Identifier: SSPL-1.0 OR Browserless Commercial License.
If you want to use Browserless to build commercial sites, applications, or in a continuous-integration system that's closed-source then you'll need to purchase a commercial license. This allows you to keep your software proprietary whilst still using browserless. You can purchase a commercial license here. A commercial license grants you:
Not only does it grant you a license to run such a critical piece of infrastructure, but you are also supporting further innovation in this space and our ability to contribute to it.
If you are creating an open source application under a license compatible with the Server Side License 1.0, you may use Browserless under those terms.
Happy hacking!
Need help? Reach out to us at support@browserless.io
$ claude mcp add browserless \
-- python -m otcore.mcp_server <graph>