Last updated 20 August 2026

Security.

What protects your captures, what does not, and where to send a problem. Including the limits, because a security page without them is an advertisement.

The short version

What the architecture rules out

The strongest security properties here are the ones that come from something being absent rather than from something being defended.

Signing in, and what is kept afterwards

Connecting a Microsoft account opens your real browser at Microsoft's own sign-in page and catches the result on a local port on your machine. It is not an embedded window inside the app — that pattern trains people to type their Microsoft password into a window whose address bar they cannot see, and it should not exist in a desktop application.

There is no client secret, because a desktop application cannot keep one; the flow used is the one designed for exactly that situation, with a per-attempt challenge that cannot be replayed.

Afterwards the app keeps only a refresh token and your account's display name. The short-lived access token stays in memory and is never written to disk.

Secrets at rest

Two files sit next to the database — one for the Microsoft refresh token, one for an AI provider key, if you supplied one. Both are encrypted with the Windows Data Protection API in its user-scoped mode.

What that gets you:

They are separate files rather than rows in the database for a specific reason: the database is copied into a rotating daily backup, and those backups are meant to be freely copyable. A long-lived credential must never be in a file people are encouraged to move around without thinking.

What this does not defend against

This is the section that makes the rest of the page worth anything.

This website

Dependencies

The app is a small amount of Rust and a small amount of TypeScript, and the dependency list is kept deliberately short — a capture tool does not need a framework for anything. Updates are applied when they matter rather than automatically, and the interface's inability to make network requests means a compromised front-end package has nowhere to send anything.

Reporting something

Email hello@wrivio.com with enough detail to reproduce it. Please do not open a public issue for a security problem before it is fixed.

What to expect, honestly, from a one-person project:

If something here turns out to be wrong — a claim on this page that the code does not support — that is a report worth sending too, and it will be corrected on this page.

Where this stands today

Everything above describes how the software is built. The parts that have been exercised on real Windows hardware, and the parts that have only been written and tested, are listed separately on the status page. Notably, the encrypted-storage path has never been run against real Windows encryption, and no Microsoft sign-in has ever completed. Read that page before trusting this one with anything that matters.