A real macOS browser,
rented by the minute.

Not a Linux container wearing a Mac user-agent. Real Google Chrome, running headful on real Apple Silicon, driven over plain CDP. Attach Playwright or Puppeteer and it behaves like the machine it actually is.

$0.40 / browser-hour on Apple Silicon · billed per active minute · no seat fees

session · mac-shared · eu live
brands
"Google Chrome", "Chromium", "Not)A;Brand"
version
149.0.7827.102
renderer
ANGLE Metal Renderer: Apple M2
headless
false
webdriver
false
plugins
5
viewport
1280 × 800
genuine Chrome · headful · hardware GPU

The fleet

macOS Apple M2 · Metal GPU $0.40per browser-hour
Performance 3 vCPU · 6 GB $0.12per browser-hour
Standard 1 vCPU · 2 GB $0.05per browser-hour
Nano 0.5 vCPU · 1 GB $0.03per browser-hour

Every class runs real Chrome, headful. The Apple Silicon class adds the hardware fingerprint. Prices are per active minute, charged by the second.

Why hardware matters

Most cloud browsers are a Linux box in a costume.

Headless Chrome announces itself in the user-agent. Software rendering reports a SwiftShader GPU that no real laptop has. A spoofed platform string still leaves a Linux machine underneath, and the mismatch is trivial to read.

We didn't patch those tells — we removed the reasons for them. Every session runs headful Chrome on a real display, and the Apple Silicon class runs on actual Mac hardware, so the GPU string is a Metal renderer because a Metal GPU is genuinely drawing the page.

Real Chrome, not Chromium

Reports the genuine "Google Chrome" brand, with the proprietary codecs and Widevine that a Chromium build silently lacks.

Headful, always

Never --headless. A real window on a real display, so there is no HeadlessChrome tell to hide in the first place.

Hardware GPU

Apple M2 via Metal on the macOS class — a WebGL renderer string that cannot be produced from a datacenter Linux host.

Quickstart

It's just CDP.

No proprietary driver and no rewrite. You get a Chrome DevTools Protocol URL and connect the client you already use. If you ever leave, your code is unchanged — that is deliberate.

Works with Playwright, Puppeteer and any CDP client. Sessions expose cdp, plus vnc and server-side control when you want to watch one or drive it by hand.

Full quickstart
// npm i @browserfleet/sdk
import { BrowserFleet } from "@browserfleet/sdk";
import { chromium } from "playwright";

const bf = new BrowserFleet({ apiKey: process.env.BROWSERFLEET_API_KEY });

// a real Chrome on Apple Silicon
const session = await bf.createSession({
  image: "chrome-stable",
  machineClass: "mac-shared",
});

const browser = await chromium.connectOverCDP(BrowserFleet.cdpUrl(session));
const page = await browser.newPage();
await page.goto("https://example.com");

await bf.endSession(session.id); // billing stops

Where this goes

Every surface a real user has.

A fingerprint is not a string you set — it's a machine, and eventually it's a device someone holds. Today the fleet is Macs and Linux boxes. The same API is built to hand you a phone: a real one, in a rack, with a SIM and a touchscreen — not an emulator wearing a costume.

running Desktop browser

Real Chrome on Apple Silicon and Linux, headful, over CDP.

next Mobile web

A browser that is genuinely a phone — touch events, device pixel ratio, mobile GPU.

planned Cloud Android

A full Android instance over ADB, not just a browser. Install an app and drive it.

planned Real devices

Physical iPhones and Androids, one tenant per device, wiped between sessions.

The engine is oursin build

We're building our own Chromium fork rather than renting someone else's stealth patches. Owning the engine is the only way to fix a tell at the source instead of papering over it in JavaScript — and the only version of this business with a moat.

Honest about today

Only the first stop is running. Everything after it is where the money and the engineering are going, not something you can call this afternoon. When a stop lights up, it lights up here first.

Point your existing code at a real Mac.

Sign up, take the $2 of trial credit and run a session — five hours on Apple Silicon, enough to check the fingerprint against whatever has been blocking you.

Get an API key Read the quickstart