The short version

Stet Desktop sends nothing.

It works with no account and no sign-in. There is no telemetry, no analytics, no crash reporting, and no update check. Your documents, their full history, every proposal and every decision you made about one, sit in a folder you chose on a disk you own.

Stet Sync holds only what you share.

Off until you turn it on, one workspace at a time. Sharing a workspace uploads a copy of that workspace. Workspaces you do not share never leave the machine. There is no step where the app decides to sync something for you.

Read the full Privacy Policy and Terms of Service. Both are versioned, and old versions stay at permanent links.

Stet Desktop: what can leave, and who starts it

The app ships no AI and calls no model. It watches a folder, captures what changed, and shows it to you. That is the whole job, and it needs no network to do it.

Four things can send data out of the app. You start all four, and each one is off until you do:

  • Stet Sync, when you share a workspace. Covered in detail below.
  • A GitHub remote, when you connect your own repository. That content goes to your GitHub account, under your terms with GitHub. It does not pass through us.
  • Google Docs sync, in beta, when you connect a specific document. Same shape: your Google account, your terms with Google.
  • Feedback, when you write one and press send. You get the note, an optional screenshot, and context like the file path and app version. Your name and contact handle are optional, and they are never written into anything durable we keep.

Nothing else in the app makes an outbound request. If you download Stet, open a folder, and never sign in, it never contacts a server, including ours.

The classifier is deterministic, and it runs on your machine

Stet grades each incoming change as significant, normal, or trivial. The grade decides what leads your review queue, what warns you before you accept a batch, and in Hybrid folders, what waits for you while the rest lands on its own.

The grader is a fixed list of hand-written rules. Any one of these promotes a change to significant.

SignalBeforeAfter
A number changedWe shipped 12 boxes.We shipped 20 boxes.
A date changedLaunch on 2026-08-15.Launch on 2026-09-01.
A dollar amount changedBudget is $1,200.Budget is $1,450.
A negation changed the meaningWe can meet the deadline.We can't meet the deadline.
A sentence was deletedShip Friday. Tell the client.Ship Friday.
A paragraph was deleteda whole paragraphgone, nothing in its place
A heading changed## Budget## Costs
Frontmatter changedstatus: draftstatus: final
A link target changed[docs](old.example.com)[docs](new.example.com)
A low-overlap rewritea long passagemostly new words on the same spot

When two signals disagree, significant wins. Trivial has its own short list, whitespace, punctuation, capitalization, and a single swapped word, and it applies only when no significant signal is present. Everything else is normal. The full rule set is in the documentation.

No model is consulted. No network call is made. No text leaves your machine. The same change always gets the same grade, on any machine, offline, forever. You can read the rules and predict the output before you see it.

The rules are implemented twice, once in Rust and once in TypeScript, so the app can grade a change without a round trip between the two halves. The two copies are held to the same table of test cases, mirrored line for line between them, so they cannot drift apart without a test failing.

Grading also keeps its own counters, so Stet can tell you how much it caught. Those counters live in a JSON file inside your workspace folder, next to the documents they describe. They count events, never content, and they are not sent anywhere.

The reason to build it this way is not only privacy. A rules engine you can read is a rules engine you can audit. When Stet tells you a change is significant because a date moved, that is a claim you can check.

Your AI agent is yours, not ours

Stet does not ship a model, does not resell tokens, and never sends your documents to an AI provider. When Claude or Cursor or a script of your own edits a file in a Stet workspace, that agent is running on your machine under your own agreement with whoever makes it. Stet is not in that path. It sees the file after the write, the same way it would see an edit from a person.

One practical consequence for anyone evaluating this at a company: adopting Stet does not add an AI vendor to review. There is no model to approve, no API key to hand over, and no prompt data to ask about, because there are no prompts.

Stet Sync: exactly what we store

Sharing is hosted by us, so sharing means storing. This is the complete list.

  • Your email address and an optional display name. That is the account. There is no password, because sign-in is a one-time emailed link.
  • Sign-in records and session records, so you stay signed in and can revoke a device.
  • The email addresses of people you invite, so the invitation can be delivered.
  • The content and full edit history of the workspaces you shared. History carries the name and email attached to each change, because attribution is the point.
  • Review comments, and the name a reviewer typed. People reading a review link need no account, so that name is free text they chose.
  • Review decisions and workspace activity, so everyone can see what was accepted and by whom.
  • Terms-acceptance records, including IP address and browser user agent. This is the one place we keep an IP address on purpose, and it is kept only to show which version of the terms you agreed to.

Outside those acceptance records, we do not log your IP address in our database. IP addresses are used in memory to rate-limit abuse, and they appear in our hosting provider's standard server logs.

Everything travels over HTTPS. Servers are in the United States.

Who can do what

A shared workspace has an owner. Everyone else is a viewer, a commenter, or an editor, set per person by the owner.

The word "editor" is doing less work than it does elsewhere. An editor proposes. Their change arrives in the owner's review sidebar with a byline, exactly like an agent's, and the owner decides whether it stands. Approval is not a setting a collaborator can talk their way around. It is the same review gate the rest of the product is built on.

Per-document review links are capability URLs. Anyone holding the link can read and comment without an account, so treat the link itself as the credential and send it accordingly.

What we do not do

  • We do not sell or rent personal data, and never have.
  • We do not run ads or share anything with advertisers.
  • We do not train AI on your content, and we do not send your content to AI providers.
  • We do not profile you or make automated decisions about you.
  • We do not set analytics or advertising cookies. The sync app sets one session cookie, which is what keeps you signed in. This site counts page views without cookies.
  • We do not load fonts from a CDN. They are served from our own domains, so no third party learns that you visited.

Who helps us run Stet

These providers process data on our behalf. The list is kept current, and a new one appears here in a new version of the privacy policy before it touches anything.

  • Render hosts the sync server and its storage.
  • Resend delivers sign-in and invitation emails.
  • Vercel hosts this site and the sync web app.
  • GitHub stores feedback content, with identity stripped out, in a private repository.
  • Discord receives feedback posts, including optional contact details, in a private channel.
  • Tally holds email addresses from the optional launch-updates form on this site.

Deleting things

Deleting a shared workspace from the app starts a 30-day window, after which its documents and history are purged from our server. Doing it yourself is faster than asking us and does the same thing.

Account deletion is honored by hand today. Email support@getstet.app and we will delete the account, its sessions, and its sign-in records. Removing comments left through a review link works the same way, by asking.

Terms-acceptance records are the exception. They survive account deletion for six years, because they are the evidence that an agreement existed.

Found a problem?

Email support@getstet.app. It reaches me directly. Report a vulnerability and you will get a real reply, a fix, and credit if you want it.

Questions about any of this before you adopt Stet at work are welcome at the same address.