# 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/pricingguise▌
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");────────────────────────────────────────────────────────────────
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
POST /v1/sessionsnew browser — ttlSec optionalGET /v1/sessions/:idstatus, connectUrl, time leftDELETE /v1/sessions/:idkill now — browser destroyedttlSecself-destruct timer, 30–3600sconnectUrlCDP websocket — your agent's steering wheel
────────────────────────────────────────────────────────────────
## 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.