The short version
This website sets cookies and runs analytics: one cookie counts visits, and another keeps you signed in once you have an account. The software is a separate matter — it runs on your machine and sends nothing to us, and there is no telemetry in it. Your prompts go to the model provider you configure, directly, and your credentials and transcripts stay in a directory on your own disk.
1. This website
Cookies. Two kinds, both described below. Analytics writes one called ph_<project key>_posthog, which holds a random identifier for your browser and is set on every visit. Signing in adds a small group of cookies whose names begin with sb-, holding the access and refresh tokens for your session; every request you make refreshes them, so a tab left open overnight is still signed in. Signing out and clearing site data both remove them. [Analytics cookies are not strictly necessary, and the consent rules in the EU and the UK treat them differently from session cookies — settle with counsel whether this site needs a consent banner, because it does not have one.]
Analytics. We use PostHog to count visits and see which pages people read. It records page views, including the ones that happen when you move between pages without a reload; clicks and form submissions, described by the element you interacted with rather than by anything you typed; the page address and the referrer that sent you; your browser, operating system and screen size; and an approximate location derived from the IP address the event arrives with. Events go to PostHog Cloud in the United States — us.i.posthog.com, unless a deployment points NEXT_PUBLIC_POSTHOG_HOST elsewhere — and no further. Nothing is captured at all from a development build. [Session replay — a recording of what happens on the page — is turned on in the PostHog project rather than in this repository, so the code cannot say whether it is running. Check the project, and say so here either way.]
No other third-party scripts, and nothing loaded from another host. There is no Google Analytics, no error-reporting service and no embedded widgets. The fonts are the ones already on your system and the images are served from this domain. The analytics are the one exception to that list, and even they reach PostHog through this domain: the script and the events are addressed to /ingest here, and this server forwards them on. That is done so content blockers, which block posthog.com by name, do not quietly remove a slice of the readership from the numbers — not to disguise where the data ends up, which is what this paragraph is for.
Local storage. Choosing light or dark in the header writes oharness.theme to your browser’s local storage so the choice survives a reload; that one never leaves your browser. PostHog keeps its own entries alongside it, under the same ph_ prefix as its cookie. Clearing site data removes both.
Language. Your browser sends an Accept-Language header with every request; we read it once to redirect you to the matching version of the page, and do not store it.
Server logs. The host serving this site keeps standard request logs, which include IP addresses. [Name the hosting provider, the retention period and the legal basis — this is the one part of this section that depends on infrastructure rather than on our code.]
2. The software
No telemetry. OHarness contains no analytics, crash reporting or usage tracking of any kind. It does not phone home, and it does not check for updates against our servers. This is checkable: the source is public, and the only outbound hosts in the engine are the model provider APIs.
What is stored, and where. Sessions, transcripts, settings and credentials live in a directory on your machine — ~/.oharness by default, or wherever OHARNESS_HOME points. Credentials are written with file mode 0600 inside a 0700 directory. Nothing in that directory is transmitted anywhere by the harness. Deleting it deletes your history.
What leaves your machine. The prompts you write, and whatever file contents, command output or tool results the agent includes in a request, are sent to the model provider you configured — and to no one else. If you point it at a model running locally, nothing leaves your machine at all.
Optional sync. The sync server is not running unless you start it. If you do, transcripts are stored wherever you host it; it is your server and your data.
3. Data we hold about you
If you have not signed in: the analytics described above, held by PostHog against a random identifier for your browser rather than against a name, plus the server logs. There is no newsletter and no contact form.
If you have an account: your email address, and a subscription record — plan, status and renewal date — if you have bought one. Accounts live in Supabase, which stores the password as a hash and never gives it back; signing in with Google tells us the address on the Google account and nothing else. Payment details are handled by Stripe and are never seen by this site: it reads the subscription row Stripe writes, and that is all it knows about your billing.
4. Your rights
If you are in the EU, the UK or another jurisdiction with comparable law, you have rights of access, rectification, erasure, restriction, portability and objection over personal data held about you. In practice that means your account, the analytics recorded against your browser, and the server logs. Write to [privacy contact address] and we will respond within [statutory period].
[Identify the data controller and, where required, an EU representative and a supervisory authority for complaints.]
5. Children
This site is not directed at children and we do not knowingly collect data from them.
6. Changes
Material changes will be reflected here, with the date at the foot of the page. If you have an account we will email you about a change that matters; if you do not, this page is the only notice there is.