One browser, on a node↑ Why · Alex reaches the laptop at home from a café Alex's signed-in tabs are on the laptop at home, and open from the phone where they were left.
A site's script never runs on the shell's origin
The shell's origin holds a device key, and a page served from it runs as that device; a site's script is the least trusted code there is.
Shown when a fixture site whose script tries to read the shell's storage, post to the shell's window and call the core does nothing in the pane; the pane's frame runs no script at all.
How The rule nothing in the browser can change · Frames ride the session
Not built: nothing in the code or tests names this yet.
The site sees a real browser at its real address, with its real cookies
Anything in between that rewrites addresses or holds cookies on the site's behalf gets cookies wrong, and the site's session with them (the prototype tried four shapes of it, and each failed at the same-origin rule).
Shown when a fixture site that sets an HttpOnly, SameSite=Strict cookie
on its own host and reads it back on the next load sees it, and its
location is its own address.
How The rule nothing in the browser can change
Not built: nothing in the code or tests names this yet.
A tab lives on the node, and follows you between devices
A browser tab is state a person built up: a form half filled, a place in a long page, a sign-in. It belongs to the node, not to whichever screen looked at it last.
Shown when a tab opened from one browser and closed there reopens from another device with its form's text and scroll position as they were.
Not built: nothing in the code or tests names this yet.
There is one way to open a site, and the pane says nothing about engines
Several ways to show a site (a reader, a framed proxy, a mirror, a picture) are several sets of rules about what works where, and nobody looking at a pane can tell which applies.
Shown when the shell has one pane for sites, with no switch between engines, and opening any address goes through it.
How A copy of the document, and a picture when there isn't one
Not built: nothing in the code or tests names this yet.
What a site may reach↑ Why · Someone checks every claim before trusting it What a browser on the node may dial is stated, and every connection it made is there to read.
A browser reaches only what its profile allows, UDP included
A browser is the most enthusiastic dialler on a node, and a node that has just been paired must not become a way into whatever network it sits on.
Shown when a profile with no local network reach is refused a page at the
node's router, a fetch to a LAN address, and a WebRTC connection to one;
a page on the internet still loads and plays a video call's test echo.
How Reach and audit
Not built: nothing in the code or tests names this yet.
Each profile is a box of its own, and none can read the node
A profile's cookies are other people's sessions; they must not sit beside the node's key, and two profiles must not see each other.
Shown when a cookie set in one profile is absent in another; from inside a
profile the node's key, its state and ~ are not there to open.
How Reach and audit
Not built: nothing in the code or tests names this yet.
Every connection a browser makes is in the node's audit
Shown when after a page load, the node's audit for that profile lists each host it dialled, by name and address, with bytes each way.
How Reach and audit
Not built: nothing in the code or tests names this yet.
Using it as a browser↑ Why · Alex reaches the laptop at home from a café The tab on the laptop behaves like a tab, from a phone too.
Scrolling, selecting and find are instant
A round trip per scroll is what makes a remote browser feel remote.
Shown when on a fixture page served with 300 ms added between node and browser, a scroll of the pane moves its content within one frame, and find highlights a word below the fold without asking the node.
How A copy of the document, and a picture when there isn't one
Not built: nothing in the code or tests names this yet.
Input lands on the element it was aimed at
The two sides never lay out alike (different fonts, a different screen), so a point measured in the pane is the wrong point on the node, and a click on the wrong control is a real action on a real site.
Shown when on a fixture page whose pane copy is laid out with different fonts, clicking each of twenty buttons presses that button on the node.
How A copy of the document, and a picture when there isn't one
Not built: nothing in the code or tests names this yet.
The copy draws each element in the face the node used
A viewer holding a font of the same name draws with its own copy, which can differ, so the copy's layout drifts from the page's.
Shown when on a fixture whose font stack starts with a family the viewer also has, in a different version, every element of the copy draws with the node's face and lines break where they do on the node.
How A copy of the document, and a picture when there isn't one
Not built: nothing in the code or tests names this yet.
A page that is one big picture is shown as a picture, without asking
A canvas game or a map has no document to copy; the node can tell, so the person doesn't have to.
Shown when a fixture page that is a single full-screen WebGL canvas plays in the pane, and its frames arrive as video.
How A copy of the document, and a picture when there isn't one
Not built: nothing in the code or tests names this yet.
A download lands in the node's files
Shown when a file downloaded in the pane appears in the profile's downloads folder on the node, readable through the files service.
Not built: nothing in the code or tests names this yet.
A pane's comments, picking and screenshots work on a site↑ Why · A team gets a launch page ready together They comment on the site itself, a vendor's dashboard included.
Shown when a comment picked on an element of a mirrored site is anchored to that element, and the pane's screenshot shows the page.
How A copy of the document, and a picture when there isn't one
Not built: nothing in the code or tests names this yet.
An agent with a browser↑ Why · Sam lets an AI help, and decides what it sees Sam can let an agent use one throwaway profile, and see every page it opened.
An agent gets a profile of its own, never yours
A browser holding your sessions is more authority than anything an agent can be asked about: "open this address" can't be judged from its words, since what it reaches depends on cookies nobody is shown.
Shown when a grant to drive a browser names a profile; a call naming another profile, or none, is refused.
How Reach and audit
Not built: nothing in the code or tests names this yet.