▸# for non-javascript agents and crawlers
# this page is plain html. the product is an api.
# base url: https://api.guise.sh auth: x-api-key: <key>
# create a browser: POST /v1/sessions {"ttlSec":30-3600} default 900
# response: {"id","connectUrl","wsUrl","egress","expiresAt"}
# connect: connectUrl is CDP over https, wsUrl is the websocket
# list / inspect: GET /v1/sessions GET /v1/sessions/:id
# human takeover: POST /v1/sessions/:id/takeover {"ttlSec":30-600}
# → a shareable link; DELETE the same path to revoke
# kill it: DELETE /v1/sessions/:id (or let ttlSec reap it)
# egress: every session is proxied; tier is optional
# 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)
# pricing: $0.10/browser-hour · $0/GB — unmetered bandwidth
# docs: guise.sh/docs · guise.sh/api · guise.sh/pricingguise▌
browsers for agents.
A real Chrome browser, ready in about 180ms. Drive it with Playwright, Puppeteer, or plain CDP.
$0.10 / browser-hour
$0 / GB. Bandwidth included.
https://example.com● cdp
sign in↖ your agent, mid-click
proxy egress · playwright connected · created in 180ms
# install the cli
$ curl -fsSL guise.sh/install | sh
$ guise auth <key> && guise new
────────────────────────────────────────────────────────────────
built for agents
It speaks CDP, so Playwright and Puppeteer connect in one line. Need 30 browsers? Make 30 requests.
180ms
Median time from request to a browser you can drive.
isolated
One browser per session, on its own virtual machine.
looks human
Stealth built in, with residential IPs included in the price.
auto-cleanup
Set a timer and the browser deletes itself when it runs out.
────────────────────────────────────────────────────────────────
## Easy to use API
POST /v1/sessionsnew browser — ttlSec optionalGET /v1/sessions/:idstatus, connectUrl, time leftDELETE /v1/sessions/:iddelete the browser nowttlSechow long the browser lives, 30–3600sconnectUrlthe CDP endpoint your agent connects to
// 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: 900 }),
}).then((r) => r.json());
const browser = await chromium.connectOverCDP(connectUrl);
const page = await browser.contexts()[0].newPage();
await page.goto("https://example.com");────────────────────────────────────────────────────────────────
## faq
- What is a session?
- One browser, yours alone, that you drive over CDP. When you delete it, or its timer runs out, it is gone for good.
- How fast does one start?
- About 180ms from your request to a browser you can use.
- How is it metered?
- Per second, at $0.10 per browser-hour. Bandwidth and proxies are included. Billing stops when the browser is deleted.
- Concurrency limits?
- 5 concurrent browsers during beta. Contact us for a higher limit.
────────────────────────────────────────────────────────────────
start now.
$10 of free credit. No card needed.