MCPcopy
hub / github.com/browserless/browserless

github.com/browserless/browserless @v2.54.2 sqlite

repository ↗ · DeepWiki ↗ · release v2.54.2 ↗
1,386 symbols 5,171 edges 178 files 48 documented · 3%
README

    <img src="https://github.com/browserless/browserless/raw/v2.54.2/assets/logo.svg" alt="Browserless logo" width="600">

Deploy headless browsers in Docker. Run on our cloud or bring your own.

<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>
&nbsp;&nbsp;
<a href="#-1-minute-quickstart">
  <img src="https://img.shields.io/badge/📦_Run_Locally-34A853?style=for-the-badge" alt="Run Locally" />
</a>
&nbsp;&nbsp;
<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>

📋 Table of Contents

🚀 Get Started in Seconds!

Get up and running in three simple steps:

Step 1: Run the Docker image

docker run -p 3000:3000 ghcr.io/browserless/chromium

Step 2: Open the docs in your browser

Visit http://localhost:3000/docs

✅ Success! Your browser service is live at ws://localhost:3000

Step 3: Connect your script with Puppeteer or Playwright

📘 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.

Output:

Example Domain

✨ Features

General Features

  • Parallelism and queueing — Handle multiple sessions with configurable concurrency limits
  • Debug Viewer — Actively view and debug running browser sessions in real-time
  • Unforked libraries — Works seamlessly with standard Puppeteer and Playwright
  • Fonts & emoji — All system fonts and emoji support out-of-the-box
  • Configurable timeouts — Set session timers and health-checks to keep things running smoothly
  • Error tolerant — If Chrome crashes, Browserless won't
  • ARM64 architecture support — Full support for ARM64 platforms including Apple Silicon; some browsers (Edge, Chrome) have limited ARM64 compatibility

Premium Features

Our Self-serve cloud and Enterprise offerings include all the general features plus extras, such as:

  • BrowserQL for avoiding detectors and solving captchas
  • Hybrid automations for streaming live browser sessions during scripts
  • Persistent Sessions for persisting browser state (cookies, cache, localStorage) across multiple sessions with configurable data retention up to 90 days
  • Session Replay for recording and debugging browser sessions with event capture and video playback
  • Chrome Extensions Support for loading custom extensions including ad blockers, captcha solvers, etc.
  • Advanced Captcha/Stealth Routes for enhanced anti-detection with Captcha solving, fingerprint randomization, and residential proxy rotation
  • REST APIs for tasks such as retrieving HTML, PDFs or Screenshot etc.
  • Inbuilt residential proxy for automatic IP rotation and geo-targeting with residential proxy networks
  • /smart-scrape API for intelligently scraping any URL using cascading strategies (HTTP fetch, proxy, headless browser, captcha solving)
  • /crawl API for asynchronously crawling entire websites and scraping every discovered page into structured, LLM-ready data
  • /map API for discovering all URLs on a website via sitemaps and link extraction, with search-based relevance ranking
  • /search API for searching the web and optionally scraping each result page into structured formats (markdown, HTML, links, or screenshots)
  • MCP Server for connecting AI assistants (Claude Desktop, Cursor, VS Code, Windsurf) directly to Browserless browser automation
  • Webhook Integrations for queue alerts, rejections, timeouts, errors, and health failures

🚢 Customisable Deployment Options

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.

💡 Why Browserless?

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.

📜 Licensing

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:

  • Priority support on issues and features.
  • On-premise running as well as running on public cloud providers for commercial/CI purposes for proprietary systems.
  • Ability to modify the source (forking) for your own purposes.
  • A new admin user-interface.

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

Extension points exported contracts — how you extend this code

MachineStatsSource (Interface)
(no doc) [9 implementers]
src/monitoring.ts
Request (Interface)
(no doc)
src/http.ts
NetworkRangeSet (Interface)
(no doc)
src/network-security.ts
Job (Interface)
(no doc)
src/limiter.ts
RequestInitTimeout (Interface)
(no doc)
src/utils.ts
SessionContext (Interface)
(no doc)
src/logger.ts
BeforeRequest (Interface)
(no doc)
src/types.ts
HTTPServerOptions (Interface)
(no doc)
src/server.ts

Core symbols most depended-on inside this repo

n
called by 1621
static/docs/docs.js
get
called by 407
src/metrics.ts
r
called by 378
static/docs/docs.js
setToken
called by 342
src/config.ts
a
called by 269
static/docs/docs.js
o
called by 211
static/docs/docs.js
i
called by 203
static/docs/docs.js
Ao
called by 152
static/docs/docs.js

Shape

Function 779
Method 330
Class 201
Interface 65
Enum 11

Languages

TypeScript100%

Modules by API surface

static/docs/docs.js538 symbols
src/config.ts87 symbols
src/utils.ts81 symbols
src/browsers/browsers.playwright.ts44 symbols
src/monitoring.ts38 symbols
src/types.ts26 symbols
src/browsers/browsers.cdp.ts24 symbols
src/router.ts22 symbols
src/limiter.ts22 symbols
src/browsers/index.ts19 symbols
src/shared/utils/schema-validator.ts18 symbols
src/browserless.ts16 symbols

Dependencies from manifests, versioned

@browserless.io/browserless
@types/chai5.2.3 · 1×
@types/debug4.1.13 · 1×
@types/gradient-string1.1.6 · 1×
@types/http-proxy1.17.17 · 1×
@types/micromatch4.0.10 · 1×
@types/mocha10.0.10 · 1×
@types/node26.0.1 · 1×
@types/sinon21.0.1 · 1×
@types/ws8.5.13 · 1×
@typescript-eslint/eslint-plugin8.62.0 · 1×
@typescript-eslint/parser8.61.1 · 1×

For agents

$ claude mcp add browserless \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact