← Blog

BLOG

Cloud Browser for AI Agents Free: What You Actually Get

A cloud browser for AI agents free tier can run real Chromium sessions. Here's what free covers, where it breaks, and how to move to production.

October 1, 202610 min readRemote Browser

# Cloud Browser for AI Agents Free: What You Actually Get

A cloud browser for AI agents free tier is a hosted Chromium instance you can drive over CDP without installing Chrome on your own machine. You get a real browser process, a WebSocket endpoint, and a session you can connect Playwright, Puppeteer, or a browser-use agent to. What you usually don't get is high concurrency, persistent profiles, or a guarantee that the session survives a long task. This post covers what free cloud browsers actually provide, where they stop being useful, and the criteria that matter when you move an agent from a demo to something that runs unattended.

If you want the runtime layer rather than a comparison, start with Remote Browser for AI agents. If you just want to see a hosted Chromium session come up, Remote Browser online walks through the connect flow.

What "free cloud browser" usually means

The phrase gets used for three different things, and they behave very differently in production.

A free tier on a hosted browser service. You get a metered allowance of browser-hours or sessions, then pay per hour after that. The browser is real Chromium, the endpoint is real CDP, and the only difference from the paid tier is the quota. This is the most useful category for agent work because the runtime doesn't change when you upgrade.

A free open-source runtime you host yourself. You run Chromium in a container, expose the CDP port, and connect your agent. There's no vendor bill, but you own the VM, the process supervision, the disk for profiles, and the proxy config. "Free" here means free of license cost, not free of operational cost.

A free demo or sandbox. A shared browser you can poke at through a UI. Useful for evaluating whether a site renders, useless for agents because you can't hold a session, set a profile, or run concurrent tasks.

Most searches for a free cloud browser for AI agents are really asking about the first category: can I get a real hosted Chromium endpoint without a credit card, and what happens when I outgrow it?

What a free tier needs to include to be useful

A free tier that only gives you a screenshot API isn't a browser runtime. For agent work, the minimum useful set is:

  • A CDP endpoint. Your agent connects over the DevTools Protocol, not through a proprietary action API. This is what makes Playwright, Puppeteer, and browser-use interchangeable.
  • A real Chromium process per session. Not a shared tab pool. Session isolation matters the moment two agents touch the same site with different cookies.
  • A live viewer. When an agent fails at step 14, you need to see the DOM state, not just a stack trace.
  • Configurable browser settings. Viewport, user agent, locale, timezone, and proxy settings you can set per session rather than globally.
  • Usage visibility. You should be able to see how many browser-hours you've consumed before you hit a wall mid-task.

If a free offering is missing the CDP endpoint, it isn't a runtime — it's a rendering service. That distinction matters because it determines whether you can port your existing Playwright code without a rewrite.

Free vs. paid: where the line actually falls

The honest answer is that free tiers are sized for development and evaluation, not for unattended agents. Here's how the trade-offs usually break down.

DimensionTypical free tierProduction tier
Concurrency1–2 sessionsConfigurable, metered by browser-hour
Session lifetimeShort caps, may be reapedLong-running, reconnectable
Persistent profilesUsually absentStored profiles you can reuse
Proxy / geo settingsShared or nonePer-session proxy configuration
Live viewerSometimesStandard
SupportCommunitySLA-backed
Cost modelQuota, then blockedPer browser-hour, see /pricing

The concurrency row is the one that catches people. A single agent doing a linear task is fine on one session. The moment you fan out — ten product pages, five accounts, a batch of form submissions — you're either queuing or you're on a paid plan. There's no free tier anywhere that gives you meaningful parallel browser capacity, and any that claims to is usually sharing one browser process across callers, which breaks isolation.

Session lifetime is the second trap. Agents are slow. An LLM-driven loop that reads a page, reasons, and clicks can take minutes per step. If your free session gets reaped at a fixed interval, long tasks fail in a way that looks like a site problem but is actually a runtime problem.

Connecting an agent to a hosted Chromium session

The mechanics are the same whether you're on a free tier or a paid one. You get a CDP WebSocket URL and connect to it. With Playwright, that's chromium.connectOverCDP.

import { chromium, Browser, BrowserContext, Page } from 'playwright';

// The endpoint comes from your browser service. On a free tier this is
// typically a short-lived session URL; on a paid tier you can request
// longer lifetimes and persistent profiles.
const CDP_ENDPOINT = process.env.REMOTE_BROWSER_CDP_URL!;

async function runAgentTask(taskUrl: string) {
  const browser: Browser = await chromium.connectOverCDP(CDP_ENDPOINT, {
    timeout: 30_000,
  });

  // connectOverCDP attaches to the existing browser, so contexts already
  // exist. Reuse the default one unless you need isolation per task.
  const context: BrowserContext = browser.contexts()[0] ?? await browser.newContext({
    viewport: { width: 1280, height: 800 },
    locale: 'en-US',
    timezoneId: 'America/New_York',
  });

  const page: Page = await context.newPage();

  try {
    await page.goto(taskUrl, { waitUntil: 'domcontentloaded', timeout: 45_000 });

    // Give client-rendered apps a chance to settle before the agent reads.
    await page.waitForLoadState('networkidle').catch(() => {
      // networkidle is a heuristic; long-polling sites never reach it.
    });

    const title = await page.title();
    const text = await page.locator('main').innerText().catch(() => '');

    return { title, text };
  } finally {
    // Close the page, not the browser. Closing the browser tears down the
    // remote session; on a metered plan that ends your browser-hour.
    await page.close();
  }
}

Two details matter here. First, connectOverCDP attaches to a browser that's already running, so browser.contexts() is populated — you don't call newContext unless you want a fresh isolated context. Second, closing the browser ends the remote session. If you're paying per browser-hour, closing the page and keeping the browser alive is usually the right call for a multi-step agent.

The Playwright docs on connectOverCDP are worth reading before you wire this up, particularly the note that it's Chromium-only and that some Browser methods behave differently against a remote instance.

Where free tiers break for agent workloads

Free is fine until one of these four things happens.

You need concurrency. Agent benchmarks and batch jobs both fan out. A queue that drains one session at a time turns a five-minute job into an hour. This is the most common reason teams move off free.

You need persistent state. Logged-in sessions, saved carts, and multi-visit workflows all need a profile that survives between sessions. Free tiers rarely persist profiles because storage costs money and shared profiles are a security problem.

You need IP control. Sites that rate-limit by IP will throttle a shared free egress fast. Per-session proxy configuration is a paid feature almost everywhere, and it's the difference between an agent that works and one that gets 429s.

You need to debug a failure that already happened. A live viewer is table stakes, but session recording and replay are what let you diagnose a failure after the fact. That's usually a paid capability.

None of these are vendor conspiracies. Browser-hours cost real money — CPU, memory, network egress, and the proxy bandwidth behind them. A free tier is a subsidy for evaluation, and it's sized accordingly.

Open-source alternatives and what they cost you

If you want to avoid a vendor entirely, the open-source path is real: run Chromium in a container, expose port 9222, connect over CDP. Projects like browserless and the various Playwright-in-Docker images give you the browser process. What they don't give you is the rest of the runtime.

The operational checklist for self-hosting looks like this:

  • Process supervision. Chromium crashes. You need something to restart it and something to reap zombie sessions.
  • Session isolation. One browser per agent, or you're sharing cookies across tenants.
  • Profile storage. A volume that survives container restarts, with a cleanup policy.
  • Proxy management. Either you build it or you buy it.
  • Capacity planning. Headless Chromium is memory-hungry. Ten concurrent sessions is not a small VM.
  • Observability. Logs, screenshots on failure, and a way to attach to a live session.

That's a real engineering project. It's the right call if browser automation is your core product and you want full control. It's the wrong call if you're building an agent that happens to use a browser. The browser-as-a-service vs self-hosted Playwright comparison goes deeper on this trade-off.

Choosing a runtime: criteria that hold up

When you evaluate a cloud browser for AI agents — free tier or not — these are the questions that predict whether it survives contact with production.

Does it speak CDP? If yes, your Playwright, Puppeteer, and Selenium code ports with minimal change. If it only offers a proprietary action API, you're locked in and your debugging options shrink.

Can you hold a session open? Ask what the maximum session lifetime is and whether sessions can be reconnected after a network blip. Agents run on flaky networks; reconnection matters.

Are profiles first-class? Persistent profiles are the difference between an agent that logs in once and one that logs in every run. Check whether profiles are per-session, per-user, or shared.

What's the isolation model? One browser process per session is the baseline. Shared processes leak state between tasks and make debugging ambiguous.

How is usage metered? Browser-hours are the standard unit. Understand whether you're billed for idle time, whether closing a page stops the meter, and what happens at the quota boundary. Current rates and allowances live on /pricing.

Can you see the session? A live viewer plus session recording covers both "what is it doing now" and "what did it do at 3am."

What are the browser settings? Viewport, user agent, locale, timezone, and proxy are the ones that affect task success most. Prefer vendors that describe these as configurable browser settings rather than making vague claims about stealth.

A practical path from free to production

The migration is usually less dramatic than people expect, because the code doesn't change — only the endpoint and the session parameters do.

  1. Prototype on free. Build the agent loop, get task success working on a handful of sites, and confirm the CDP connection is stable.
  2. Instrument it. Log browser-hours per task, failure rate by step, and time-to-first-byte on the target sites. You need this before you can size a paid plan.
  3. Identify the wall. Is it concurrency, session lifetime, profiles, or proxy? That tells you which feature to pay for first.
  4. Move the endpoint. Swap the free session URL for a production one. If you built against CDP, this is a config change.
  5. Add profiles and proxies. These are the two features that most often turn a 60% agent into a working one.
  6. Set usage controls. Budget alerts and per-task browser-hour caps prevent a runaway agent from burning a month of quota in an afternoon.

The teams that struggle with this transition are the ones that built against a proprietary action API on the free tier and now have to rewrite. The teams that don't are the ones that insisted on CDP from day one.

Bottom line

A cloud browser for AI agents free tier is a legitimate way to build and evaluate an agent, provided it gives you a real CDP endpoint, a real Chromium process, and a live viewer. It will not give you high concurrency, persistent profiles, or proxy control at scale — those are the features you pay for, and they're the features that decide whether an agent works unattended.

Build against CDP, instrument your browser-hour consumption early, and treat the free tier as a development environment rather than a deployment target. When you're ready to size the next step, check /pricing for current rates, and read the documentation for the session, profile, and proxy APIs you'll need.