cd /news/ai-agents/runtime-snapshots-17-bass-browser-as… Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-27774] src=dev.to β†— pub= topic=ai-agents verified=true sentiment=Β· neutral

🧩 Runtime Snapshots #17 β€” BaSS: Browser-as-Shared-Space

A developer proposes Browser-as-Shared-Space (BaSS), a paradigm where multiple agents and a human coexist on the same live browser tab, sharing the DOM and state. This is only possible with runtime structural perception, which operates within the user's real session, unlike vision or accessibility-tree agents that require isolated browsers. BaSS shifts the focus from access control to concurrency, as independent actors must share an unowned surface without coordination.

read4 min publishedJun 15, 2026

The #16 was about how a single agent perceives a page β€” vision, accessibility tree, or runtime structural perception β€” and why the third one wins when the user is the user. This post is about the axis underneath that one, the part nobody names: not how the agent sees the page, but how many things are looking at it at once.

Today the answer is one. One driver per browser. That assumption is so baked in it's invisible β€” and it's the next thing to break.

Look at the three perception architectures from #16 and notice what they share. Vision spins up a headless browser the agent owns. Accessibility-tree agents drive a Chromium instance over DevTools Protocol β€” again, theirs. In both, the browser is a single-occupancy vehicle: the agent gets in, drives, gets out. The human isn't in the car. Neither is any other agent.

Runtime structural perception is the odd one out, and that difference is the whole point of this post. It runs as a peripheral to the user's own browser β€” the real session, already logged in. Which means the surface it reads is, by construction, a surface someone else is already on. The human is right there. The agent isn't operating a browser; it's operating the same browser.

Once that's true, "one driver" stops being a constraint and starts being a choice.

Call it BaSS β€” Browser-as-Shared-Space.

The claim is small to state and large in consequence: a browser tab is not one driver's cockpit. It's a surface several participants can occupy at once β€” you, an agent, a second agent from a different vendor β€” each addressing not just "the page" but individual elements by stable ID, on the same live DOM, at the same time.

surface: checkout (live, authenticated session)
el#a17  "Place order"   [button]
  Β· human         β€” hovering, hasn't committed
  Β· agent:claude  β€” reading line items
  Β· agent:codex   β€” flagged a price mismatch on el#a09

That is a different primitive from "an agent that browses." An agent that browses is alone. BaSS is co-presence: humans and multiple agents sharing one live state, the way a shared document is one file several cursors edit β€” except the document is the live web app you're actually working in, with your real credentials, mid-task.

This is the part that matters architecturally. Of the three perception models, only runtime structural perception can host BaSS at all β€” and not by cleverness, by construction.

Vision and accessibility-tree agents each instantiate their own browser. There is no shared surface, because each participant brought their own. To put two agents and a human "in the same place," that place has to already exist and already be occupied β€” which is exactly what an in-session peripheral is, and exactly what a headless instance isn't. You can bolt coordination onto isolated browsers, but then you're rebuilding the shared surface in software that the in-session model gets for free.

So BaSS isn't a feature you sprinkle on any browser agent. It's only available to the architecture that was already sitting inside the user's real session. #16 argued runtime structural perception wins on cost, authentication, and real-app coverage. This is the fourth reason, and it has the longest tail: it's the only one that can be shared.

The instinct is to model this as access control: who's allowed to act, in what order. That's the wrong frame. In BaSS there's no hierarchy and no gate; participants are equals. The actual hard problem is coexistence: most of what's in a real DOM β€” you, foreign scripts, whatever automation the site itself runs β€” has no idea any protocol exists. The question isn't "who's allowed in." It's "how do independent actors share a space none of them coordinated in advance, without stepping on each other."

That's a concurrency problem on a surface no one owns. It's the interesting part, and it's most of the engineering.

Straight about status, because this series is read by people who build:

The substrate is in production. Runtime structural perception (the #16 approach), the relay that exposes it over MCP, single-agent perceive-and-act inside your real authenticated browser β€” shipped and running. We've already had two agents from different vendors act on one shared cart through the relay, which is the smallest honest proof that the shared part isn't a slide.

The full BaSS layer β€” multiple participants on one surface, element-level addressing across all of them, the coexistence logic that keeps them out of each other's way β€” is in active development and days from release. This post is the concept landing just ahead of the thing. The next snapshot will be the thing itself.

This is part 17 of the Runtime Snapshots series β€” exploring how structured browser data changes the way we build, test, and ship software. #16 mapped the three ways an agent can see a page; this one is about what happens when more than one of them is looking at the same page at once.

If you've run two agents against the same live page β€” what was the first thing that collided?

── more in #ai-agents 4 stories Β· sorted by recency
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/runtime-snapshots-17…] indexed:0 read:4min 2026-06-15 Β· β€”