Browserheap

A browser for agents that never runs out of memory.

Made for long-running work. Idle tabs sleep, and wake when the agent needs them.

Browserheap No tabs yet
Browserheap0 MB Plain Chrome0 MB

Over a long run

Built for the part where others fall over

Same real websites, same 8 GB machine, every popular agent browser.

Measured against the browsers agents use today

Benchmarks

What 30 open tabs cost

We opened the same 30 real websites in every popular agent browser and two lightweight engines, one after another, and closed none. All on the same 8 GB E2B machine.

Memory and CPU ✓ Measured 16 Oct 2026 · v0.3.0

  • Browserheap
  • Agent tools
  • Engines

Hover or touch the chart to see every browser at each tab. Lightpanda starts lighter for the first few tabs, then grows by about 1 GB on each heavy news site. Full method and every number →

Up to 100 tabs

Each browser stopped at 6.5 GB of the sandbox's 8 GB. × marks where.

10 agents, one machine

Each agent with its own browser, all opening tabs at once.

Still a full browser

Sites work the way they do in Chrome

Lightweight engines use less memory by not rendering pages. Browserheap is Chromium, the same engine every agent tool uses, so pages look and behave as they do in Chrome.

Read the method →

Agent actions

Iframes, web components, popups, infinite scroll, screenshots, clicking at a position.

Real sites

Pages that show the same content Chrome shows, where Chrome loaded them.

CPU while idle

With 30 tabs open and nothing happening. Sleeping tabs run no code.

To wake

From the agent's click on a sleeping tab to the page being ready to use.

What a tab wakes up with

Where it was

The page's scroll and every scrolled panel's, focus and selected text. Feeds load again what they had loaded.

What was filled in

Text fields, checkboxes and dropdowns, as the agent left them.

Its history

Back and Forward go where they went before the tab slept.

Logins and storage

Cookies, localStorage, IndexedDB and the tab's own sessionStorage. Snapshot refs like e12 still point at the same element.

“The browser instance and all tabs remain open indefinitely after task completion.”
agent-browserIssue #885vercel-labs/agent-browser
Read the issue →
“Each new_tab() call creates a new tab but the agent rarely calls close_tab().”
browser-useIssue #5484browser-use/browser-use
Read the issue →

Agents don’t close tabs

Agent tools work around it by closing tabs or restarting Chrome, and either way the agent loses its place. Browserheap lets the tabs sleep instead.

Sleeping tabs

Two tabs awake, the rest asleep

The two tabs your agent used last are live Chromium pages. Every other tab sleeps: it gives back its memory and keeps everything else, from scroll and fields to history and logins. Touch it and it wakes as it was, in about a quarter of a second. Asleep, it's still searchable: findInTabs() looks through everything your agent has read, and says how old each page is.

How waking works →
tabs✓ Live 2
Open12
Asleep10 × 3 MB
Awake2 × 150 MB
wake274 ms
Same scroll, fields, history✓
Searchable while asleep✓
Still signed in✓
Hover a tab to wake it.
agent.ts✓ Still works after sleep
const docs = await openTab("react.dev")
await openTab("news.ycombinator.com")
await openTab("github.com/trending")
// 3 tabs, 2 live: docs is asleep now

docs.isAsleep()            // true
await docs.title()         // "React", without waking it

await docs.getByRole("link", { name: "Learn" }).click()
// docs wakes in ~0.3 s and the click lands

Handles that survive sleep

Pages keep working while they sleep

Other agent browsers hand out raw pages that go stale when a tab closes. Browserheap's pages and locators belong to the tab, so a page kept in a variable keeps working while its tab sleeps and wakes underneath.

Read the SDK →

Works with your agent

A skill, a CLI, or an SDK

Drop the skill into Claude Code or Codex and your agent learns the loop: open a page, read its snapshot, act with Playwright-style code, check what changed. Or drive it from a shell, or build it into your own agent with startSession().

Read the docs →
$ npx browserheap skill claude
✓ Added the skill: ~/.claude/skills/browserheap
✓ Chromium ready

> Compare the pricing pages of Vercel, Netlify and Render

● browserheap · run
  opened 9 tabs · 2 live · 7 asleep · 546 MB

Try it on your next research task