OpenTabs.

Everything here lives in your browser. Nothing is sent to a server unless you turn on Sync — and then it is sealed before it goes.

Four groups are on by default, deliberately — a new tab you open fifty times a day should be calm. Turn on as much as you like.

A topic is a name and some sources. Type any subject — the query sources cover it with no setup. Seven ship as examples; there is no difference between those and one you invent.

One card per thing you watch. Dates are a rolling window by default, so a saved search stays current instead of freezing on the day you made it.

Subscribe with the secret iCal address your calendar gives you. Works with Google, Outlook, iCloud, Fastmail, Proton, Notion, Linear and Cal.com — one mechanism, no sign-in.

That address is a password in URL form: anyone holding it can read your calendar. It is stored on this device only, and is left out of exports unless you tick the box.

Fetches the first calendar and prints the raw date lines beside how they were read. If the times look wrong, this is what says why.

      
Where do I find that address?
  • Google — Settings → your calendar → “Secret address in iCal format”.
  • Outlook / Microsoft 365 — Settings → Calendar → Shared calendars → Publish, then copy the ICS link.
  • Apple iCloud — right-click the calendar → Share Calendar → Public Calendar, then copy the link.
  • Notion / Linear / Cal.com — look for “Subscribe” or “iCal” in the calendar view.

Topics, sources and themes other people assembled. Installing adds a group beside what you have — nothing you configured is ever replaced.

Your API keys, calendar addresses and coordinates are stripped out before anything leaves this browser. You can also copy a pack and send it to somebody directly, which needs no account at all.
Paste a marketplace link, or a pack document itself. It is checked before anything is applied, and you see what it adds first.
Override per query with !c, !p, !s. A search runs on the browser's default engine, whichever you have set.
One click to Chrome's own profile picker, in the top corner of every new tab. Turn it off if you only ever use one profile.
The worker's own view, not the settings above — when a card is empty this says why.
Lists every open tab with how long since you last looked at it, and either why it is about to close or which guard is keeping it.

      

storage.sync already follows one browser signed into one account. This crosses the line that cannot: Chrome to Firefox, work profile to personal, a laptop signed into nothing. Your settings, to-dos, Focus list, calendar addresses and API keys are sealed on this device before they leave it — the relay holds ciphertext and a public key, and nothing that can read them.

Where the sealed bytes rest. The default is the OpenSync relay, shared by our other apps so a device you have already paired stays paired — it holds ciphertext and a public key, and no name, address or account. To rest them somewhere else instead, run opensync relay on a machine of your own and put its address here.
Sets up a new account and publishes what this browser already has.
Paste the whole opensync://pair… line, or type the ten characters and fill in the relay above. This browser's settings will be replaced by the account's.

Let the AI agents you use add events to your Events card, with their reminders and to-dos. They wait in a drop box at market.opentabs.app; this browser collects them every few minutes and empties it. The box holds those events and nothing else — never your tabs, to-dos or settings — and is linked to your account by a one-way code, not your name or email.

Needs you signed in. Turning it on asks you to sign in if you are not.
Connection token
Paste the one you were given. It starts with ot_.
For an agent you set up yourself.

Your whole configuration is one document. Copy the string below into OpenTabs on another browser to move everything across — no account, nothing stored on a server.

The schema is published in docs/config.schema.json, so an agent can write this for you.
Saved