Vlad Babii

Feature SmithFull stack
idea → spec → ship → review

click ↑ to go back
LinkedIn · opens in a new tab

longbrowse: a browser that remembers, for AI agents

AI & LLMsInfrastructureDevelopmentArchitecture

Video thumbnail for the longbrowse intro: a browser that remembers, a browser your AI can extend.

An AI agent that browses by itself is good at it and expensive: every click is a model call, every morning it relearns the same sites. longbrowse is one container with a real Chromium, logins that stay, MCP and REST for the agent, a live view for people, and hot-reloaded site plugins. The agent learns a chore once, moves it into a plugin, and from then on makes one call. Watch the 4-minute intro on YouTube.

Code on GitHub: the-code-foundry/longbrowse

From thirty fragile calls to one

The video tells a real story, with names and numbers changed. A morning of checking suppliers, invoices and stock pages took hours every day. An AI agent with a browser took that over and did it well, but the bill grew every day, because it read and clicked every page from scratch, every day. longbrowse moves that work out of the model: the agent reads the manual, writes the chore into a plugin once, and after that asks for the result with one MCP call while longbrowse does the clicks, logins and retries.

What is in the box

One docker container. Everything binds to localhost by default.

Real Chromium through Playwright, headful on a virtual display, watchable and drivable from a browser through noVNC. A person can take the mouse at any time.

An MCP server written directly against the MCP SDK, streamable HTTP, with generic tools: navigate, snapshot (an accessibility tree with filters), click, type, screenshots, uploads, downloads, tabs, events. Every tool is also a REST endpoint.

A help tool that hands the agent its own manual, so no skill files or prompt engineering are needed to start.

  • Chromium + Playwright
  • MCP + REST
  • Live noVNC view
  • Built-in manual

Plugins: where it grows

A folder with a manifest and one JavaScript file.

Drop a folder into plugins/ and its tools appear for every connected agent, without a restart; edit a file and it reloads. The agent can write the plugin itself.

Each plugin gets its own browser profile, so logins never bleed between sites and they survive restarts and upgrades.

A plugin can do more than add tools: hide the raw browser tools, limit which hosts its profile may reach, keep its own event log and disk queue, serve HTTP routes and pages for people, and keep site selectors in one file so a redesign is a one-file fix.

  • Hot reload
  • One profile per plugin
  • Tools, routes, pages
  • Selectors in one file

Built for agents that run unattended

Events instead of open connections: an append-only event store per plugin, read with a cursor or pushed as a webhook, so an agent misses nothing and holds nothing open.

A person when it needs one: at a CAPTCHA, a 2FA prompt or a risky step, it stops and waits; a person finishes it in the live view and the agent carries on in the same session.

Sleep when idle: pause closes the browsers and the display to give the RAM back; the API keeps answering and the next job wakes it.

Secrets stay out of the model: logins live in the plugin and the profile; sealed profiles refuse cookie reads, ephemeral profiles write nothing to disk. The agent calls a tool and gets an answer, never a password.

Egress control: every browser connection can be checked against a per-profile allowlist, with denied hosts logged.

Built on it: longbrowse-lend

longbrowse-lend is a Chrome extension plus a longbrowse plugin: put a tab in a tab group and that site's login is lent to a longbrowse box. The AI browses the site as you without ever seeing the cookies, asks you before it borrows a new site, and you take the loan back whenever you like.

Stack
Node.js · Playwright · Chromium · MCP SDK · noVNC · SQLite · Docker

Code on GitHub: the-code-foundry/longbrowse ↗