Privacy policy
Dispute, for iPhone.
Effective 5 August 2026Made by Noah Puckett and published on the App Store by James Puckett (Apple Developer team 38Q977Q767). Written to be read rather than to be survived.
The short version
Everything below this is the same six facts, said carefully and at length.
- There is no account and no sign-in. Nothing you write is stored on any server — mine or anybody else's — and there is nothing anywhere I can read.
- The AI is off until you turn it on. The first screen asks — "Use the AI" or "Do it by hand" — and nothing leaves the phone unless you pick the first one.
- With it on, what the two of you write is sent to Mistral, a French AI company, to be processed by their model. It is not used to train anything: the account this app uses has opted out. That same first screen says so, before you type anything.
- The names you enter are never sent. The app refers to the two of you as "Person A" and "Person B" in everything it asks the model.
- No analytics, no advertising identifier, no tracking, no crash reporting, and nothing shared between users of the app.
- The argument you have open is one file on your phone. Settings deletes it, and so does deleting the app.
What the app sends, and when
The AI starts off, and the first screen you see asks whether you want it. Nothing is sent unless you choose "Use the AI" there, or turn the switch on in Settings later. Nothing is sent while it is off.
| The one-line title of the argument | Sent |
|---|---|
| What each of you wrote as your side of it | Sent |
| The list of points, and which each of you ticked or crossed out | Sent |
| The case you made for a point you had crossed out, and what would change your mind | Sent |
| The names you typed for the two of you | Never sent |
| Any identifier for you, your phone or your Apple Account | Never sent |
| Contacts, location, photos, calendar, health, financial data | Never sent — never asked for |
The prompts say "Person A" and "Person B", and the app puts your names back in on the phone afterwards.
If one of you writes a name, an address or anything else identifying inside your own text, that text is sent as you wrote it — the app cannot tell that it is there. If that matters for the argument you are about to have, choose "Do it by hand".
Who receives it
Mistral AI, a company in France, receives what you write and processes it with the model named on the first screen. They are the only party that reads it.
It reaches them by way of one relay I operate: a small program running on Cloudflare's network, which holds the API key so that a copy of it does not have to ship inside the app, and passes your request straight on to Mistral. It keeps no database, writes no logs, and retains nothing. Cloudflare carries the traffic; it is not a recipient of it in any other sense.
I do not receive a copy of anything you write. Nothing is stored on my end and I have no way to read what any pair of people typed.
Mistral's free tier can use what is sent to it to train their models, and the account this app uses has that switched off. So what you write is used to answer you and for nothing else. This is a setting rather than a law of nature, and if it ever changes, this policy and the app's first screen change with it in the same release.
There is a second, much narrower thing that goes to Google, and section 05 explains it: an attestation that this is a genuine copy of the app. It contains nothing you wrote and no identifier for you.
If you would rather have your own arrangement with Mistral, Settings has a slot for a Mistral API key of your own. With one saved, requests go directly to Mistral on your key and your quota, under whatever terms apply to that key, and the relay above is not involved at all. The key is held in the iPhone Keychain, is never shown again once saved, and is sent to nobody but Mistral.
What is stored, and where
- One file holding the argument you have open — the title, the two names, what you both wrote, the list of points and your answers. It lives in the app's own Application Support directory, which no other app can read, and it is excluded from iCloud backup.
- Your settings: whether the AI is on, appearance, haptics.
- Your own Mistral API key, if you saved one, in the iPhone Keychain.
Starting a new argument replaces the stored one. Delete this argument in Settings removes it immediately. Deleting the app removes all of it, including the key. There is no cloud copy, no sync, and no backup of it that I hold.
What the app does not do
- No account, no sign-in, no email address collected.
- No analytics of any kind. Firebase Analytics is not in the app, and analytics collection is switched off in the configuration file.
- No crash reporting. Crashlytics is not in the app.
- No advertising, no advertising identifier, no tracking across apps or websites, and nothing that would require App Tracking Transparency.
- No data brokers, no data sold or shared for anybody's marketing.
- No social features. Nothing is published, and nothing is shared between users of the app — the two people using it are sharing one phone.
Proving the app is the app
Because the AI is free and needs no key, something has to stop anybody who pulls the configuration out of the app from spending the shared allowance. That is Firebase App Check, which uses Apple's App Attest.
App Attest produces a cryptographic attestation that the request came from a genuine, unmodified copy of Dispute on a real Apple device. It says nothing about who you are, contains no identifier that follows you anywhere, and is not linked to anything you type.
This is the one part of the app that still involves Google: Firebase is a Google service, the attestation is checked against Google's published keys, and Google therefore sees that some copy of this app asked for a token. It never sees what you wrote — that goes to Mistral, and the two paths do not meet.
Children
Dispute is not directed at children and collects nothing that would identify anybody of any age. It has no accounts, no messaging with strangers, no purchases and no advertising. It is rated 4+ because there is nothing in it that needs a higher rating, not because it is aimed at young children.
Your choices
All four of these are in the app, and none of them needs to go through me.
- To never start: choose "Do it by hand" on the first screen. Nothing is sent at any point, and the app walks you through the same argument.
- To stop anything being sent to Mistral after that: Settings → turn "Use the AI" off. The app then runs entirely on the phone, and you write the points and name the crux yourselves. No request is made.
- To delete what is stored: Settings → "Delete this argument", or delete the app.
- To use your own quota and terms with Mistral: Settings → "Use my own API key".
- To have something already sent removed from Mistral's systems: that is Mistral's to answer, under the policy linked in section 02, since I never had a copy.
Changes
If this policy changes in a way that affects what leaves your phone, the change will appear here with a new effective date, and — because that is the sort of change that should not arrive quietly — in the app's release notes as well.
Getting in touch
Questions about any of this, including a request to know what is held about you — the answer is nothing, and this policy explains why.