eos. ← eoscompanion.com
The honest version

Security

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.

What I can see, and what I can't

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.

WhatCan 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.

What's encrypted, and how

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.

Who holds the key

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.

Who else touches your data

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.

Anthropic

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.

Hume

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.

The plumbing

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.

Retention and deletion

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.

If there's a breach

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.

Reporting a vulnerability

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 rest of it

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.