# for non-javascript agents and crawlers
# this page is plain html. the product is an api.
# create a browser:  POST /v1/sessions {"ttlSec":N}
# response:          {"id", "connectUrl"}  →  connectUrl is a CDP websocket
# kill it:           DELETE /v1/sessions/:id   (or let ttlSec reap it)
# works with:        playwright, puppeteer, raw CDP
# cli:               curl -fsSL guise.sh/install | sh   →   guise new · ls · rm
# windows:           irm guise.sh/install.ps1 | iex   (powershell)
# docs:              guise.sh/docs · guise.sh/api · guise.sh/pricing

guise

browsers for agents.

API-driven Chrome, fully isolated. One POST, one WebSocket, full CDP. Every session is its own browser with its own residential egress — live in ~150ms.

https://example.com● cdp
sign in↖ your agent, mid-click
residential egress · playwright connected · created in 158ms
# install the cli
$ curl -fsSL guise.sh/install | sh
$ guise auth <key> && guise new
// or straight from playwright
const { connectUrl } = await fetch("https://api.guise.sh/v1/sessions", {
  method: "POST",
  headers: { "x-api-key": process.env.GUISE_KEY },
  body: JSON.stringify({ ttlSec: 1800 }),
}).then((r) => r.json());

const browser = await chromium.connectOverCDP(connectUrl);
const page = await browser.contexts()[0].newPage();
await page.goto("https://example.com");

get an api key →api reference

────────────────────────────────────────────────────────────────

built for agents

No SDK, no protocol shim. Raw CDP — playwright and puppeteer connect in one line. Thirty browsers is thirty POSTs.

158ms

median POST → CDP, measured on the live fleet.

isolated

One browser per session, isolated at the hardware line. Nothing survives, nothing is shared.

looks human

A sticky residential exit per session. Fingerprints survive the usual checks.

self-destructs

Every session carries a TTL. When it fires, the browser is gone — disk and all.

────────────────────────────────────────────────────────────────

## Easy to use API

full api reference →

────────────────────────────────────────────────────────────────

## faq

What exactly is a session?
One isolated browser, yours alone. You drive it over CDP. When you delete it — or its TTL fires — it is destroyed, disk and all.
How fast is cold start?
~150ms from POST to CDP. Browsers are ready before you ask; how is our problem, not yours.
How is it metered?
Per second, one flat rate: $0.025 per browser-hour, egress included. Billing stops the moment the browser is destroyed.
Concurrency limits?
No per-key cap today. Fair use; the fleet grows with you.
────────────────────────────────────────────────────────────────

start now.

One POST. One WebSocket. Your agent has a browser.

get an api key →