privacy
the short version
- The watching happens on your device. Screen text extraction, image understanding, and the recent-frames buffer all run inside your browser and stay there.
- Your memory lives on your device, in a database on your own machine. If you turn on backup, we hold only a blob encrypted with a key we never receive.
- While you are sharing your screen, a downscaled image of the surface you shared is sent with each message so the model can see what you are asking about. This is the main thing that leaves your device.
- Your chat history is stored on our servers so it persists across devices. You can delete it.
- Analytics are anonymous. We never attach your account to an analytics event.
1who we are
Harness is an independent project, not a registered company. It is run by the people building it, and it does not have a corporate entity behind it today. If that changes, this page changes with it.
For anything in this policy, including access and deletion requests, write to privacy@tryharness.ai.
2what stays on your device
Harness runs a substantial amount of AI locally, in your browser. The following never leaves your machine:
- The screen buffer. Recent frames from the surface you shared are held in browser storage on your device so you can ask about something you already scrolled past.
- Text extraction and image understanding. Reading text off your screen and recognising what is in a frame both run locally, using models downloaded into your browser.
- Your memory. What Harness learns about you, meaning your preferences, recurring contexts, and the thread of your work, lives in a database on your own device. It is written and searched locally, and the embeddings that make it searchable are computed locally too.
- Your own provider keys. If you supply your own API key for a model provider, it is stored in your browser.
3what leaves your device
Being precise here matters more than sounding good, so this section is specific.
screen images
While screen sharing is on, a downscaled image of the surface you chose is attached to each message you send, so the model can answer questions about what you are looking at. This happens on every message while sharing is active, not only when you explicitly ask Harness to look. Higher resolution captures and captures of older frames are also sent when the model needs to inspect something closely or recall something you scrolled past.
Harness only ever captures the screen, window, or tab you selected in your browser's share dialog. It cannot see your other tabs, other windows, or anything behind them. When you stop sharing, capture stops.
text read from your screen
As the screen changes, short fragments of text that changed are sent to our server so the model has continuity about what you are doing. These fragments are held in memory only, are discarded after about thirty minutes of inactivity, and are not written to a database.
your messages
What you type is sent to our server and on to the model provider that answers you, and is stored as your chat history.
audio
If audio features are enabled for your account, short transcribed fragments of speech may be included in the same context stream as screen text.
4what we store on our servers
- Account. Your email address, and a name or avatar if one is provided.
- Chat history. Your messages, the assistant's replies, tool calls and their results, session titles, and summaries. Images are stored as references to frames on your device, not copied into our database.
- Turn records. Per-message diagnostics such as which model answered, timings, and token counts, used to debug and improve quality.
- Profile. A short profile Harness maintains about how you like to work, used to shape its replies.
- Writing samples. Messages you have sent, retained so Harness can match your writing voice when it drafts something for you. You can delete these.
- Billing. Subscription status, credit balance, and payment records. Card details are handled by Stripe and never reach us.
- Encrypted backup. If you enable it, an encrypted copy of your on-device memory. It is encrypted in your browser with a key derived from your passphrase. We store the result and cannot read it. If you lose the passphrase, neither can we, and it cannot be recovered.
- Delegated tasks. If you delegate work to an external agent, the instructions and their outcomes.
5models, and how your choice changes routing
Harness does not train models on your data. Your prompts and screen images are sent to a model provider to produce an answer. Which provider depends on the privacy mode you pick in settings.
- Anonymous. The default. Your request can be served by the best available model, including closed models from major labs reached through our providers. The request is not labelled with your identity, but the provider does receive your prompt and screen images in readable form.
- Private. Closed models are excluded. Requests are directed to open models under providers who state a zero retention policy. This is a policy guarantee from those providers, not a cryptographic one.
- Private, end to end. Requests only go to models running in hardware-attested secure enclaves or that run on your own machine. If no such model can serve your request, it is refused rather than quietly downgraded. In this mode web search and tools are switched off, because using them would leak the thing the mode exists to protect.
One detail worth stating plainly: for managed requests, we route through an inference marketplace that selects an available seller. We pin our preferred provider and verify who actually served each response, but this relay is a party that can see requests that are not enclave protected.
6who else receives data
| Service | What it receives | Why |
|---|---|---|
| Venice AI | Your prompt, chat context, and screen images | Runs the model that answers you |
| Surplus Intelligence | Your prompt, chat context, and screen images | Relay that routes a managed request to an available model seller |
| Bankr | Prompts on Bankr-served models. Wallet address, balances, and any task you delegate | Inference, and the agent that carries out delegated actions |
| Resend | Your email address | Sends your sign-in link |
| Stripe | Billing identifiers and payment details you enter with them | Subscriptions and payments |
| Cloudflare Turnstile | A challenge token and your IP address | Blocks automated signups |
| Tavily, SearXNG, Jina | The search query or URL, when the model searches the web | Web search and page reading |
| PostHog | Anonymous product events. No account identifier | Aggregate usage counts |
| Fly.io | All request traffic, including IP address | Hosting |
| GitHub | Requests for skill definitions | Loads the public skills catalog |
| Market data providers | Token or ticker lookups the model makes | Answers questions about prices and markets |
Your browser also downloads AI model files from public code CDNs so that local processing can run. Those CDNs see the request for the file and your IP address. They do not receive anything from your screen.
7analytics
Analytics are anonymous by construction, not by promise. We use PostHog, configured so that person profiles are switched off entirely, so an event cannot be attached to your account, your email, or your name. Session recording is off, so no recording of your screen or the interface is ever made. Automatic click capture is off, so the text of things you click is never collected. Automatic error capture is off, because error messages are free text and free text can carry data we do not want.
What remains is counts: pages viewed, buttons clicked, whether a sign-in succeeded, how long a reply took. Events from our servers are attributed to a single shared identifier that is the same for every user, so they cannot be traced to a person.
8cookies
- Sign-in. A session cookie that keeps you signed in. It cannot be read by JavaScript.
- Guest. If you try Harness without an account, a signed identifier that lasts seven days so your trial conversation survives a refresh. It is cleared when you create an account and your conversation is moved over.
- Analytics. PostHog sets cookies to avoid counting one person as many. They are not linked to your account.
We do not use advertising cookies, and we do not sell data.
9trying harness without an account
Guest conversations are stored the same way signed-in ones are. To stop automated abuse of free usage, we record the IP address a guest session was created from, along with a daily count. If you later create an account, your guest conversation is moved onto it.
10your controls
- Delete your account and everything in it. This erases your account, chat history, profile, writing samples, credits and billing records, delegated tasks, and any encrypted backup, in a single operation. It cannot be undone.
- Delete a single conversation, at any time, from the interface.
- Export or delete server-side memory held from earlier versions of Harness.
- Delete your encrypted backup and its history.
- Delete your writing samples.
- Wipe local data by clearing site data in your browser, which removes the on-device memory database and screen buffer.
- Turn off screen sharing at any time, which stops all capture immediately.
For anything you cannot do yourself, write to privacy@tryharness.ai and we will action it.
11how long we keep things
We do not yet run a fixed deletion schedule for chat history. It is kept until you delete it, or until you delete your account. Some things do expire on their own: screen text fragments are discarded after about thirty minutes of inactivity, guest cookies last seven days, backup history is capped at the ten most recent snapshots per device, and backups are removed thirty days after a subscription lapses.
12security
Traffic is encrypted in transit. Data in our database is separated per user at the database level, so one account's queries cannot reach another's rows. Memory backups are encrypted on your device before upload using AES-256-GCM with a key derived from your passphrase, which is never sent to us.
No system is perfectly secure, and we will not claim otherwise. If you find a vulnerability, please write to privacy@tryharness.ai.
13children
Harness is not intended for anyone under 13, and we do not knowingly collect their data.
14changes
When this policy changes materially, we will update the effective date and say so in the product. Because Harness changes quickly, we would rather revise this page often than let it drift out of step with the code.