LAST UPDATED · SEPTEMBER 14, 2026
You tell Eos things you might not tell anyone. This page is where I set out, without softening, what happens to those things: what I can see, what I can't, what's encrypted and how, who holds the key, who else touches your data, and what I'd do if something went wrong. I run Eos, so "I" on this page is me.
The short version: I can see that you use Eos. What you say to it is encrypted, and there's no way for me to read it without deliberately setting out to. The table is the long version.
| What | Can I see it? | Why |
|---|---|---|
| What you say to Eos, and what Eos says back | No | Encrypted before it's saved. Only the running app can read it, and only to reply to you. |
| Memories, feelings, wins, sealed notes, chapters, stories, reflections, reminders | No | Same. Everything Eos writes about you is encrypted the same way as what you wrote. |
| Your name, the name you gave when we met, how you describe your gender in your own words | No | Encrypted. |
| Your mood scores and the weekly check-in sliders | No | Encrypted. A number about how you felt is as private as a sentence about it. |
| That a crisis message was detected, and when | Partly | I can see the time. What you said, which words triggered it, and which country's helpline you were shown are encrypted. |
| Your password | No | Stored as a one-way hash. I can reset it for you; I can never read it. |
| Your email address, when you joined, whether it's verified | Yes | Plain text. I need it to send you a password reset and nothing else. |
| When you were active: message times, sign-in times, how many messages, how long a call lasted | Yes | Timestamps and counts. That you wrote, not what you wrote. |
| Country, timezone, age band, and the choices you made setting Eos up (voice, energy, who Eos is for you) | Yes | Plain settings. Eos uses them to know which helpline to show and when your morning is. |
| Your membership status and voice minutes used | Yes | Billing records. Your card details never reach Eos; the payment provider holds them. |
"Can I see it" means: if I opened the database, would it be readable. For the rows marked No, it isn't. For the rows marked Yes, it is, and I don't go looking. There is no admin screen in Eos for reading anyone's account. Reading a person's conversation would take me deliberately writing code to do it. That is a promise, not a lock, and I would rather tell you that than pretend the lock exists.
Every value in the No rows above is encrypted before it's written to the database, by the app itself, using AES-256-GCM. Each value gets its own random nonce and is bound to the exact table and column it lives in, so a value moved somewhere else fails to decrypt rather than quietly reading as something it isn't. The database only ever holds ciphertext for those columns. So do the database's backups.
This is not end-to-end encryption, and I won't call it that. End-to-end would mean only your device could ever read your words. Eos can't work that way: the AI that replies to you runs on a server and has to read what you said. So the encryption protects your words at rest, against a stolen copy of the database, a stolen backup, or someone who gets read access to the database. It does not protect them from the running app, or from me.
What stays readable even encrypted: the metadata in the Yes rows. Someone with the raw database could tell that an account exists, how active it is, and when. They could not tell what was said.
There is one encryption key. It lives in the secret store of the hosting provider and is loaded into the running server's memory at start-up. It is never written to the database, the logs, or the code. Eos has to hold it: without it, it couldn't read your history back to you or write a reply.
I hold it too. I can read the hosting environment, so I could take the key and the database together and decrypt everything. I say this plainly because it's true of every service that processes your words on a server, and most of them don't say it. What I've done about it is remove every easy path: no admin tooling reads user data, no script decrypts it, and the code that could is tested to make sure it doesn't exist.
If the key were ever lost, every encrypted value would be unreadable forever. There's no recovery path by design. It's backed up offline, and it can be rotated: every row re-encrypted under a new key, verified before the old one is retired.
Two companies process your words, each for exactly one job. Neither trains on them, neither sells them, and both are named here so you can read their own policies.
Eos thinks with Claude, made by Anthropic, through Anthropic's API under their commercial terms. That matters: the consumer Claude app has its own, different rules, and none of them apply here. To write each reply, Eos sends Anthropic your message, the conversation so far, and the memories and profile details Eos keeps to reply well. The same happens when Eos writes your weekly chapter, a reflection, a story, or a morning note, and when it checks a message for signs of crisis. Under those terms Anthropic does not use anything sent through Eos to train its models, and deletes it from their systems within 30 days, unless a specific item is flagged for a safety review, in which case they may keep that item longer.
Voice calls run on Hume. During a call, Hume receives your voice, to turn it into text and to read the tone of it, and Eos's words, to speak them. Zero data retention is switched on for the Eos account, so Hume keeps nothing after the call: no recordings, no transcripts. What you said becomes text inside Eos, encrypted like everything else. The tone readings are used in the moment and are not stored.
Three more services see a little, none of them your words. Render hosts the server and the database, so it holds the ciphertext and the metadata described above. Resend delivers account emails only, like a verification link or a password reset, and sees your email address and that email. Dodo Payments handles your membership and card; Eos sees your membership status, never your card. If you sign in with Google, Google tells Eos your email address and nothing else, and Eos tells Google nothing.
Eos keeps what you share for as long as you have an account, because remembering is the point. Deletion is real deletion, and it's yours to do at any time:
A memory Eos updates in a conversation replaces the old one; a memory that's no longer true is hidden from everything, not kept.
Two honest footnotes. The hosting provider keeps automated backups of the database for a limited time; a deleted row can survive in those until they expire, still encrypted, then it's gone there too. And the record that a payment happened is kept, because accounting requires it; it holds no content.
On the processors' side: Anthropic's copy is deleted within 30 days on its own. Hume never had one.
Here is what a stolen copy of the database would give someone: the email addresses of everyone with an account, when each person joined and was active, their settings and membership status, and ciphertext for everything else. It would not give them a single conversation, memory, or mood.
Here is what I would do:
The worst case is the key and the database being taken together. If that ever happened, I would say so, in those words.
If you find a security problem in Eos, I want to hear about it, and I'd rather hear from you than find out another way. Write to hello@eoscompanion.com with what you found and how to reproduce it. I'll reply as quickly as I can, usually within a few days, keep you informed while it's fixed, and credit you here if you'd like.
Good-faith research is welcome: I won't take legal action against anyone who reports a problem responsibly, keeps other people's data out of it, and gives me reasonable time to fix it. Please don't test against other people's accounts. There is no bug bounty, only thanks. The machine-readable version of this is at /.well-known/security.txt.
The smaller things, listed so you don't have to take them on trust:
Questions about any of this: hello@eoscompanion.com. I answer them myself.