Last updated 19 October 2026. This page describes the Kontour tester app you install from TestFlight, as it ships to you. If the app changes what it sends or keeps, this page changes first.
Questions, or want something deleted? Write to privacy@getkontour.com. Who is responsible is at the end of this page.
The short version
- Your data lives on your devices and in your own iCloud. We cannot read it.
- AI requests pass through our server, the Relay, to OpenRouter, which is forced to use only model hosts that keep nothing (zero data retention).
- The Relay keeps counts, never text. It records how much you used and which feature used it, not what you wrote or what the AI answered.
- Gmail runs on your device. Your Google sign-in stays on your device; the Relay never sees it.
- No analytics or crash-reporting service. Kontour contains none. The only usage records are the Relay's counts described below.
What the AI sees when you chat
When you send a message in Chat, the AI receives:
- your name;
- your active areas, projects and goals;
- up to 60 facts the app has stored about you and the people and things in your hub;
- the standing preferences you have given it ("always answer in English");
- your recent workouts;
- today's calendar at full detail: titles, times, locations, notes and guests;
- which services you have connected (for example Gmail);
- the conversation so far, including any files or pictures you attach, and the titles of up to 40 notes and references under any tag you pick with @.
While answering, the AI can also look things up in your hub: full note text, journal entries, and people's details (birthday, email, phone, address, facts about them, and their last five interactions). Each search returns at most 25 results.
AI calls that happen without you pressing send
Some features ask the AI on their own. There is no separate switch for these; the list is here so nothing is a surprise.
- Capture parsing — when the app starts and every time you save a capture, the capture is sent to the AI together with the names of your people, your task titles, areas, projects and goals, so it can file the capture in the right place.
- Tag and location suggestions — when you open the tag or location menu, the item is sent to TypeSafe (see below) for suggestions; if TypeSafe gives no answer, it is sent to the AI instead.
- Coach — when you open a direction page, Coach sends what it remembers about that direction to the AI to bring its memory up to date. When you leave a conversation about one of your experiments, that conversation is sent the same way.
- Coach's suggestions — on the same page open, for each thing you are trying that is due a look, Coach sends the direction's title, your hope for it and what you wrote under Where you are, together with that item's title, its logs, what is up next and the other things you are trying, so it can suggest one change under the item.
- Coach's questions — the first time you open a direction whose Where you are is still empty, its title and your hope for it are sent once, so Coach can word two of the questions in that direction's own terms.
- Coach's conversation titles — after each Coach answer, the conversation so far and its title are sent to the AI to name the conversation and write the one-line summary its row shows.
- Reflecting on an experiment — pressing Reflect on it sends the experiment and your observations to Coach. When you come back to it, whatever you logged since is sent too.
- Gmail labels — if you connect Gmail and turn on mail capture for a label, the app checks that label every 10 minutes while it is open and sends new mail there to the AI to turn into captures.
- Chat titles — after a conversation starts, its first messages are sent to the AI to name the thread.
The journal fact scan, which reads your journal to suggest facts, only runs if you turn it on.
The path of an AI request
- Your device sends the request to the Relay over an encrypted connection.
- The Relay runs on Cloudflare Workers. It checks your invite code, adds the zero-retention instruction, and passes the request on. The request passes through its memory and is never stored. Cloudflare terminates the encrypted connection on its servers, so Cloudflare is a company that handles your request in transit; the Relay is configured so that Cloudflare's own request logging is off. The Relay never forwards your IP address or your device's headers: the AI provider sees Cloudflare, not you.
- OpenRouter routes the request to a model host. The Relay forces OpenRouter to use only hosts that retain no data (zero data retention). The models are Anthropic's Claude (Opus, Sonnet and Haiku), OpenAI's GPT and Z.ai's GLM. When this page was written, Claude ran on Amazon Bedrock (the Relay excludes Google Vertex AI) and GPT on Microsoft Azure. If no such host is available for a model, the request is refused rather than sent elsewhere. Among the zero-retention hosts, the Relay asks OpenRouter to prefer the one that answers fastest. A request that belongs to a conversation carries that conversation's random id (
session_id) to OpenRouter, so the whole conversation stays on one host and its earlier turns can be reused instead of paid for again. The id is made on your device from random numbers; it is not built from anything you wrote, and it means nothing outside that conversation. For chat titles and Coach, the app then asks once more on a second model, along the same path; Chat never switches model. - The model answers, and the answer comes back the same way.
Tag and location suggestions, and part of capture filing, run on TypeSafe's Jev model, reached through the same Relay and OpenRouter, on TypeSafe's zero-retention endpoint.
One exception to zero retention:
- Web search and reading web pages. When the AI searches the web or opens a page for you, OpenRouter runs that search through Exa. Zero-retention routing does not cover this step, and Exa's own retention policy applies to the search query.
What the Relay keeps
For every request, the Relay stores:
- your invite code — only as a one-way fingerprint (a hash), never the code itself;
- which model answered;
- how many tokens were used, and what it cost;
- the time;
- an error code, if the request failed.
So that we can see where the cost comes from, each record also says:
- which feature asked (Chat, Coach, capture parsing and so on), whether you asked or the app did on its own, whether you were on a Mac, iPhone or iPad, and the app's build number;
- for a request that belongs to a conversation, the conversation's random id (the one sent to OpenRouter, above), which turn of the conversation it was and which step within that turn; this lets the records of one conversation be counted together, and says nothing about what was in it;
- whether it was a first try, a retry, or the second model asked after the first failed;
- the effort setting the request asked for;
- how large each part of the request was, in bytes: the instructions, the context about you, the conversation so far, the tool descriptions, and the number and total size of attachments — sizes only, never the parts themselves;
- how large the whole request was, in bytes;
- why the answer ended (finished, hit its length limit, called a tool, refused, …);
- how many tools the AI called and the names of those tools (such as
search_threads), never what it passed to them or what they returned; - how many web searches and page reads it made;
- how long its thinking was, as a number of characters, never the thinking;
- how long the answer took to start and to finish;
- which kind of host served it (Vertex, Bedrock, Azure, …).
Each of these is checked against a fixed list or a fixed form before it is stored; a value that does not fit is stored as "other" or left empty, never as it arrived. For TypeSafe requests only the feature, who asked, the device kind and the build are added.
It never stores the text of your request or of the answer, and no fingerprint of it. These records are kept for 90 days and then deleted automatically.
Your invite comes with a monthly budget. When you reach it, AI features pause until the 1st of the next month, and the app tells you the date.
Gmail
- You sign in with your own Google account. The sign-in stays in your device's Keychain; it never reaches the Relay or us. Each device signs in separately.
- Google will show an "unverified app" screen when you connect. That is because the app has not been through Google's paid verification; Google lets an unverified app serve at most 100 users. You can continue past it, or not connect Gmail at all.
- Limited Use: Kontour's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements. Gmail data is used only for the features you use in the app and is never used to train general AI models.
- Mail you ask the AI about is sent to it like anything else you chat about, along the path described above.
iCloud
The tester app syncs your data between your Mac and iPhone through your own private iCloud database. We cannot read it. Apple's iCloud terms apply to it. This page does not claim the synced data is end-to-end encrypted.
On your device only
- Your Kontour data — the store of your tasks, notes, journal, people and the rest.
- Your invite code and your Connector sign-ins (such as Gmail) — in the Keychain of that device, not synced through iCloud Keychain.
- The wire log (Mac only) — a file record of every AI request and answer, for debugging. It is off in the tester app. If you turn it on (Settings › Data), it stays on your Mac, each day's file is deleted after 7 days, and you decide whether to send it to us with a bug report.
Other things the app reaches
- Link previews — when a chat message contains links, the app fetches up to three of them directly from your device to show a preview.
- Pictures for your notes — when you ask the AI to put a picture from the web into a note, the app downloads it directly from your device, from the address the AI names.
- Apple WeatherKit and MapKit — for the weather and for places near you. Your location is used on your device; the AI never gets your coordinates. When you ask for places nearby, the AI sees their names, addresses and walking distances.
- Video and podcast transcripts — when you ask the AI about a YouTube video or an Apple Podcasts episode, the app fetches its captions or transcript directly from your device: from YouTube, or from Apple's podcast directory and the podcast's own feed. The transcript then goes to the AI as part of the conversation, and Chat keeps it as a note on that item. An episode that publishes no transcript is transcribed only on a Mac with Kontour's own transcriber installed, on that Mac; nothing is uploaded for it.
- Servers you add yourself — if you connect an extra tool server (MCP), it receives whatever the AI passes to it while using that tool.
Not in the tester app
- Voice capture — left out until it has its own privacy design.
- Filing issues on GitHub — use TestFlight's feedback instead; it reaches us through Apple.
- Your own AI keys — the tester app only uses the Relay.
- Analytics or crash-reporting services — none.
How to delete your data
What is on your devices:
- Delete what you no longer want in the app, or delete the app.
- On a Mac, deleting the app does not delete its data. Also remove the files named
KontourTesterand the folderKontourin your Library's Application Support folder (in Finder: Go › Go to Folder…, then~/Library/Application Support). - Before you uninstall, remove your invite code in Settings. Keychain items can outlive the app.
What is in your iCloud:
- iPhone: Settings › your name › iCloud › Manage Storage (or Manage Account Storage) › Kontour › Delete Data.
- Mac: System Settings › your name › iCloud › Manage › Kontour › Delete.
What the Relay keeps: email privacy@getkontour.com and we delete your invite and every usage record at once. Otherwise they expire on their own 90 days after you last used the app.
Who is responsible
Kontour is made by Thomas Oberließen, an individual developer in Germany, who builds the tester app and runs the Relay. He is responsible for what happens to your data on that path, and the EU General Data Protection Regulation (GDPR) applies.
Contact: privacy@getkontour.com — to ask what is kept about you, to have it deleted, or with any question about this page.