Starting point: what exactly does the speed engine do to a message it puts to sleep?
Make long AIchats fast again.
A 2,000-message conversation should not make your laptop fan spin. Tvara puts the messages you cannot see to sleep, draws a map of the whole thread, and gives you one search box across every chat on every platform you use.
Three problems, and what happens to them
Everything else on this site is detail. This is the product.
The chat that grinds
Off-screen messages are put to sleep, with a screen and a half of headroom either side so scrolling never shows a blank. Nothing is deleted and nothing is unloaded from your archive — a sleeping message wakes the instant you scroll to it.
The popup shows the live count. On a 1,500-message conversation that reads 1,491 of 1,500 asleep right now, per site, and it is a count of what is really on the page rather than an estimate.
The answer you cannot find
You solved it in some chat. ChatGPT? Claude? Three weeks ago? Total Recall searches every archived chat on every platform from one box, and a result opens that conversation with the in-chat search already on your words.
Search runs on your machine, against your own archive. There is no server to send a query to.
The context you retype
You worked something out with one model and the next one knows none of it. Context Bridge finds the relevant passages in your own archive and puts the ones you tick into the prompt you are already writing.
No API key, no model of ours, nothing sent anywhere — it feeds the model you are already paying for.
The same conversation, with Tvara in it
The window below is a working stand-in for a chat site: the thread scrolls, and everything Tvara adds is in there with it. A walkthrough runs once, and stops the moment you touch anything — after that the map, the outline, the search and the stars are yours to use. The conversation is invented; the panels behave the way the real ones do.
It sets content-visibility on the element. The box keeps its size, the browser stops painting the contents, and nothing is removed from the DOM.
So the message is still in the page.
Still in the page, still in the archive, still searchable. Only the paint is skipped.
How much stays awake either side of the viewport?
About a screen and a half in each direction, so scrolling never shows a blank while the browser catches up.
Show me the two properties.
Here they are, with the intrinsic size that keeps the scrollbar honest:
content-visibility: auto; contain-intrinsic-size: auto 320px;
What happens to the scrollbar when a thousand messages are windowed?
It stays the length it was. contain-intrinsic-size reserves each message's last measured height, so the page does not jump as things sleep and wake.
When does the engine switch itself on?
Past roughly 25 messages. Below that there is nothing to win and the machinery would only add risk.
Does it ever scroll the page by itself?
No. Mounting older messages is a button you press, and it stops the moment you scroll or press a key.
Move to the archive. Where does the wrapped file key live?
In extension-local storage only — never in a sync store. Anything that can read it can already read the plaintext archive beside it.
Justify that, briefly.
Putting it on a sync server adds a copy an attacker can reach without touching the device, and buys nothing, because the archive itself never syncs.
What stops someone downgrading the KDF cost in the header?
Both layers authenticate the header, so an edited parameter breaks the tag instead of being obeyed:
if (rounds < 600000) throw new Error("refused");And a key envelope lifted from another file?
Fails to open. The envelope is bound to the header it was written with, so a swap is a tag failure rather than a weaker file.
Walk me through restore when the backup is older than the current archive.
Chats already archived are left alone; older ones the provider no longer lists come back. Nothing is overwritten and nothing is deleted.
What if the two disagree about a chat's title?
The live copy wins for titles, the archive wins for messages. A title is cosmetic; a message is the thing you came back for.
What were the two failure modes we listed for restore?
A file that opens weaker than it claims, and a merge that quietly loses a chat the provider has since dropped. Both are refused now.
Deletion next. What notices that a chat is gone?
A once-daily full listing. Nothing else deletes, and no single failed request is treated as evidence.
And if that listing comes back empty because the session is signed out?
It refuses to act on an implausible listing. A signed-out session can never present your whole archive for deletion.
Where does the decision land?
With you: the chat is quarantined and flagged, and you keep it or mirror the deletion. Standing policies exist for both extremes.
The archive worker — how often does it run?
Roughly every three hours, shortly after the browser starts, and when you open a chat site, at most once every twenty minutes.
Does it re-read everything each pass?
No. Account-scoped checkpoints mean it reads only the new gap, so a reload is not a full resync.
What does progress look like while it runs?
One percentage for the whole pass across every platform, not one bar per site racing the others.
Temporary chats — remind me what we decided.
Off by default. A temporary chat is you telling that platform not to keep it, and we do not quietly overrule that.
And when it is switched on?
They are archived locally, labelled temporary, with a badge on the page for as long as one is being archived. Never a silent recording.
Search. How far back does the in-chat one reach?
As far as the archive goes. The page holds what the site has mounted; the archived copy holds the rest.
What does the counter say when they differ?
Both numbers: the matches on this page, and the matches further back. One number would hide the interesting half.
Give me the measured example again.
Eight hits on the page where the conversation held two hundred and seventeen. That gap is the feature.
Timestamps. Why do some say first seen?
Because a browser is never told when a message was sent, except where the app keeps that in its own local state.
So we never fake one.
Never. A first-seen time is labelled as such, and a message that predates the install says time unknown.
The minimap. What decides a bar's colour?
Role and content: your messages in rose, answers pale, code blocks in the lighter pink, anything starred in gold.
And the lens?
It is the viewport, drawn over the track. Its height is the fraction of the conversation on screen, so a long chat gives a thin lens.
Does the map wait for the page to render everything?
No. Where the platform hands over the whole conversation, the archived copy answers instantly and the live copy corrects it a beat later.
Adapters. What happens on a redesign?
Unknown structure means the extension does nothing rather than guessing. The worst case is the site's ordinary behaviour.
How would I know it had degraded?
Health in the popup names which adapters are primary and which are degraded, per open tab, reading no message text.
Allowance tracking — what exactly is read?
Rate-limit response headers, and a response body only where the URL's own path says the response is about limits.
Never chat traffic.
Never chat traffic, never a stream. Requests are not altered, blocked, delayed or replayed; the page gets exactly what the network gave it.
What gets written to disk from that?
A redacted sample: every string over forty characters is replaced by its length, and no header bearing a token is kept.
Licensing. What does the issuer actually store?
A hash of the key, a device fingerprint, a hashed IP for thirty days, the trial start date, and the link between an address and a licence.
And if the issuer is unreachable?
Pro keeps working and is marked overdue. Only the issuer saying the licence is gone withdraws it — an outage never does.
Devices?
Five at once, released from the popup, and the oldest is freed automatically when you activate on a sixth this browser has seen before.
Context Bridge. What crosses the wire?
Nothing. It searches your local archive and puts the passages you tick into the prompt box you are already typing in.
And if the prompt box cannot be found?
It copies to the clipboard rather than touching a page it does not understand. A surprise insertion would be worse than a fallback.
Carrying a chat over — what is included?
The original ask, the messages you starred, and the last few turns. Quoted, never summarised, and nothing is sent for you.
Backups. What is in the Markdown file?
The whole conversation with headings, lists, code fences and timestamps preserved — not the slice the page happens to hold.
And JSON?
Role, text and timestamp per message, re-importable, for anything you want to build on top of it.
Does exporting need a licence?
No, and it never will. If Pro lapses or is refunded, the export still works — your archive is not held hostage.
Last one: the vector index question from last week.
You starred that passage. It is still in the archive, and search reaches it even where this page has unloaded the message.
The column on the right is what Tvara adds: seven tools, the map of the whole conversation, and the count of what is asleep. Hover a tool to see what it does, or press one — they all work here.
One thin strip, and it stays out of the way
Tvara adds a hairline to the right edge of the page. Hover it and the map opens; move away and it goes back to a line. The site's own layout is never modified, and an unfamiliar page means the extension does nothing at all rather than guessing.
Minimap
One bar per message — yours and the model's in different shades, starred ones lit. Hover for a preview, click to land there, however far back it is.
Outline
A live table of contents from every prompt you sent and every heading in the answers. Star rows straight from the list.
In-chat search
Full-text across the whole conversation including sleeping messages, with a live match counter.
Timestamps
Real send times on ChatGPT, honest “first seen” times elsewhere. A first-seen time is never dressed up as a send time.
Resume
Reopen a long chat and one tap returns you to the message you were reading, anchored to the message rather than a pixel offset.
Backups
The conversation as clean Markdown or as structured JSON, on your disk, in one click.
Told before the wall, not after it
The AI apps warn you about your plan limit by cutting you off. Tvara reads the allowance figure the sites' own responses already carry — passively, never altering or delaying a request — and tells you at 20% and again at 10%, on whichever model is running down.