Marginalia

The web, annotated for the agentic era.

Privacy and data handling. Last updated 18 September 2026.

Research whitepaper (source) · Credits · Third-party notices · Build scope

Read now

Highlights and notes are stored locally, separate from the source page. With Instant help on, opening an allowed page sends readable page text to Codex, and selecting a passage can send a request for an explanation. The source page stays as the author wrote it.

Read it later

Threads you keep to read later, saved marks and resume information are local reading data. The helper retains source, note and reply versions in SQLite. Browser IndexedDB also holds pending work, saved replies and recovery history.

Removing a thread is a logical removal. It does not erase retained versions, browser caches, backups or downloaded exports. Uninstalling the helper keeps reading data.

Your knowledge base

The library stores source attribution with your passages, notes and replies. Exports create plain files in a location you choose. You manage those downloaded copies. Read the retained-copy inventory.

The helper listens on 127.0.0.1:43120. Pairing connects the extension to it; pairing does not approve a model request. By default, the helper uses your ordinary Codex setup, including its settings and tools. It needs no Marginalia environment variables or second sign-in. No Codex credential is stored in the browser. The extension holds only its pairing token.

How Ask works and what leaves

For a full Ask you review the exact outgoing text, recipient and permission scope before it goes. The request can include the selected passage, your chosen note, page facts and bounded surrounding context. A changed request needs a new review.

Instant help is on by default. It sends each allowed open page to Codex so quick definitions and simple explanations are ready when you select text, using your own Codex subscription. Onboarding offers to turn it off, and Settings lets you turn it off later. You can also exclude sites. Excluded sites never send anything, and on an excluded site the margin shows no Ask controls at all.

On a new site, you can grant one send, allow the site, or exclude the site. A site grant does not start a request by itself. Model inference happens on the provider’s service. The helper records dispatch and outcome. An unknown outcome stays labelled unknown.

Requested tool and network restrictions are not observed confinement. The runtime’s evidence gaps mean this policy cannot promise that every action of the external runtime is confined to the preview. Read the runtime conditions before enabling real asks.

Library search and “Related saved passages” are available in the local library page. Code and automated tests support this claim; native browser acceptance has not been recorded.

Next

Topics and reading paths across papers, sharing, connectors and Firefox are planned.

Honest limits

This is an alpha built by one developer. It works in Chrome and needs Codex installed and signed in.

Each full Ask shows the outgoing text for review before dispatch. The first request on a site also asks for your site choice. You choose this time, always here, or never here, and you can change that in Settings. Instant help is on by default and can be turned off during onboarding or in Settings. Proof of runtime confinement is still pending. Windows installation has been tested. macOS and Linux have command-level CI evidence. Read the runtime conditions.

The Astra build

Yash Gurbani builds Marginalia as a team of one for the Product Hunt Astra 6 Challenge. Automated checks do not close the live-run or confinement gates.

Research and credits

ScholarPhi (Head et al., CHI 2021) showed definitions beside the text. Marginalia uses no ScholarPhi code; the debt is that idea. The Semantic Reader project (Lo et al., 2023 preprint, published in 2024) is part of the same research lineage.

ScholarPhi · Head et al. paper · Semantic Reader paper

Research whitepaper (source) · Credits · Third-party notices · Build scope

This website

This site uses static HTML, local styles and local scripts for the interactive demo. Demo notes, highlights and saved pages are kept in this browser using localStorage. Forget this page in the demo clears its local demo library. The demo replays recorded replies and sends zero model requests. The site sets no cookies and contains no analytics or advertising. Images, scripts and styles use local paths. Following an outward link opens another site.

When served by GitHub Pages, GitHub receives ordinary web request information such as your IP address. This policy changes with the code, and its history is in the repository.