Skip to content
Agents · CDP · MCP · in-browser

The browser for AI agents

Agent frameworks drive Chrome over the DevTools Protocol, and they inherit whatever the browser underneath looks like. Give them Clearcote instead of a stock Chromium and every page the agent visits sees one consistent identity, set in the engine rather than patched in by the framework.

Free for one browser with GitHub. The open build needs no account at all.

Hand your framework a CDP URL

from clearcote import serve
from browser_use import Agent, Browser

srv = serve(fingerprint="agent-1")   # a local Clearcote with a CDP URL
agent = Agent(task="Find the cheapest flight to Lisbon next Friday",
              llm=llm, browser=Browser(cdp_url=srv.cdp_url))
await agent.run()
srv.close()

Highlights

Any CDP framework

browser-use, Crawl4AI, Stagehand, Patchright and plain Playwright attach to a Clearcote CDP URL through their usual setting.

Wherever the agent runs

Locally with serve(), in a container from the official image, or on our servers as a hosted browser. It's the same kind of CDP URL in all three.

MCP for chat clients

Claude Desktop, Cursor and Cline get about twenty browser tools through the Clearcote MCP server.

An agent inside the browser

The opt-in in-browser agent reads the live page, asks your model what to do, and acts through Chrome's Actor framework with trusted input.

Human typing cadence

By default the agent types key by key with per-key timing, rather than pasting text in one event with no keystrokes at all.

Docs your coding agent can read

llms.txt and the one-file llms-full.txt bundle give Claude, Codex or Cursor the full documentation in one paste.

Two ways to put a model in charge

Most agent frameworks leave the browser to you: they ask for a CDP URL, or launch a stock Chromium. The framework decides what to click; the browser decides what the site sees. Clearcote takes the second half, with fingerprint, locale and TLS set in the engine and a seed that keeps an identity stable from one run to the next.

The in-browser agent is the other shape. It's off by default and switches on only when you give it a model key or endpoint: OpenRouter or any OpenAI-compatible API, including one on your own machine. Password fields are redacted before anything is sent to the model. It needs a persistent profile, and it also ships as the clearcote-agent command-line tool, with a one-shot mode and an interactive REPL.

Keep the agent's own footprint small. Broad CDP listeners, init scripts and intercepting every request are the automation's fingerprint, not the browser's. Derive the seed from the task or account id, so the same actor always gets the same browser and a failed run can be replayed.

What people use it for

Research agents

Agents that read, compare and summarise pages that only render with JavaScript.

Agents that act on accounts

A persistent profile per account keeps the agent signed in, on the same device each time.

Model evaluations

Run the same task on the same identity with different models, so the browser isn't a variable.

Coding agents

Paste llms-full.txt into your coding assistant and let it write the integration.

Clearcote is built for privacy, testing, research and lawful automation. You're responsible for how you use it and for following the terms of the sites you visit.

Which plan includes it

Everything on this page is in every tier. The in-browser agent uses your own model key, and hosted browsers are billed per GB.

Compare plans

FAQ

Does browser-use work with Clearcote?

Yes. Start Clearcote with serve(), the Docker image or a hosted session, and pass the CDP URL to browser-use's Browser(cdp_url=...). Crawl4AI's cdp_url and Stagehand's localBrowser.connect work the same way.

Which models does the in-browser agent support?

Any OpenAI-compatible endpoint, including OpenRouter and a local server. You choose the model with agent_model, and it supports both tool-calling and JSON modes.

Where does page content go?

With a CDP framework, wherever your framework sends it. With the in-browser agent, only to the model endpoint you configure, with password fields redacted first. The agent stays off unless you give it a key or endpoint.

Should I use the MCP server or a CDP framework?

Use the MCP server when a chat client (Claude Desktop, Cursor, Cline) should drive the browser. Use a CDP framework when your own code runs the agent loop.

Go deeper in the docs

Related features

Try Clearcote

Open source, a drop-in for Playwright & Puppeteer, and coherent down to the TLS handshake.

Free for one browser with GitHub. No card.