Checkpoint the live session before a risky action. If the workflow breaks, return to the state that worked.
Three operations.
checkpoint()Preserve a safe point in the live session.
rewind()Return to the exact browser state that worked.
fork(n)Branch parallel futures from one checkpoint.
NEXTOne session.
Fork an authenticated checkpoint into isolated live sessions. Give each branch a different job, then keep moving without repeating login, setup, or navigation.
POST /v1/sessions/sess_8f13/forkNot a page reload.The browser itself.
A checkpoint preserves the live browser process and its client-side state together. Rewind returns to that complete safe point—not a URL, screenshot, or reconstructed approximation.
vm / memorypage / liveorigin / stateworker / statesession / authRestores client-side browser state, including the live page, storage and authenticated context.
Dead network connections are re-established after the browser returns.
Does not reverse irreversible actions already accepted by the server.
Keep your browser stack.Add a way back.
brawsr owns the browser lifecycle and state operations. Your client library stays in control through authenticated CDP.
Reconnect Chromium and rediscover the restored pages.
01import { chromium } from "playwright-core";02import { BrawsrClient } from "@brawsr/sdk";03
04const brawsr = new BrawsrClient({05 apiKey: process.env.BRAWSR_API_KEY!,06});07const session = await brawsr.createSession();08const cdp = brawsr.connectCDP(session);09
10let browser = await chromium.connectOverCDP(11 cdp.endpointUrl,12 { headers: cdp.headers },13);14
15const checkpoint = await brawsr.createCheckpoint(session.id, {16 label: "before-action",17});18
19// Attempt the browser action.20const restored = await brawsr.rewind(session.id, checkpoint);21const next = brawsr.connectCDP(restored);22
23browser = await chromium.connectOverCDP(next.endpointUrl, {24 headers: next.headers,25});Same endpoint. Fresh connection. Rediscover pages and targets.
old handles → stalecheckpoint()rewind()fork(n)Explicit. Framework-neutral.
Progress shouldsurvive failure.
Agents, scrapers, and automations spend time building state before the hard part begins. Preserve that progress, then recover or branch from it.
state operations remain explicitYour browser statestays yours.
Isolation follows the session from live execution through checkpoint storage and every forked branch. The boundary does not disappear when state moves.
sess_8f13ACTIVENo cross-project deduplication