Security
LAST UPDATED · NOVEMBER 3, 2026
You'll tell Kai, Maya, Benny and Zoe 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 Fourever, 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 Fourever. What you say in 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 write in the group and in private chats, and what the characters say back | No | Encrypted before it's saved. Only the running app can read it, and only to show it to you and reply. |
| Your group's name and description | No | Encrypted the same way. |
| What the characters remember about you | No | Encrypted the same way as what you wrote. |
| Your name | No | Encrypted. |
| 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 account emails, like a password reset, and nothing else. |
| When you were active: message times, sign-in times, how many messages | Yes | Timestamps and counts. That you wrote, not what you wrote. |
| Country, timezone, language, age band, and the picture you picked from the avatar library | Yes | Plain settings. Fourever uses them to know which helpline to show, to keep the app 18+, and to show your picture. |
"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 Fourever 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. Fourever can't work that way: the AI that writes the characters' replies 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. Fourever has to hold it: without it, it couldn't show you your chats 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 AI services process your words, each for one job, and a third turns your voice into text when you use the mic and your browser can't. All are named here so you can read their own policies.
OpenRouter, and the model it reaches
The characters' replies are written by an AI model reached through OpenRouter, which passes the request to the company that runs the model (today, a DeepSeek model). To write a reply, Fourever sends your message, the conversation so far, and what the characters remember about you. OpenRouter says it doesn't store prompts or replies by default, and keeps request details such as token counts and timing. The company running the model handles your words under its own policy. While the characters' replies are still being built, they are fixed placeholder lines and nothing is sent to this service.
Anthropic
Every message you send is checked for signs of crisis by Claude, made by Anthropic, through Anthropic's API under their commercial terms, so you can be pointed to real help. Once memory is switched on, Anthropic also picks out what's worth remembering. For the crisis check, Anthropic receives your message on its own: not your name, your account or the rest of the conversation. Under those terms Anthropic does not use anything sent through Fourever 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. The consumer Claude app has its own, different rules, and none of them apply here.
- Anthropic's commercial terms, the ones that apply to Fourever
- How long Anthropic keeps API data
- Anthropic's privacy policy
Deepgram, only for the mic
You can speak a message instead of typing it. Chrome, Edge and most Android phones turn speech into text themselves, and Fourever receives only the text; that part is between you and your browser's maker. Where a browser can't (Firefox, Safari with Siri off, and the browsers inside apps like Instagram), the mic records a clip of at most 90 seconds, which goes to Fourever's server and on to Deepgram to be written out, and the text comes back into the box. Nothing is sent until you press send. Deepgram receives the clip and its language, nothing else. Fourever holds the clip in memory for that one request and never stores or logs it, or the text. Every request tells Deepgram to opt out of keeping it, so it isn't kept or used to train their models.
The plumbing
Two more services see a little, neither 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. If you sign in with Google, Google tells Fourever your email address and nothing else, and Fourever tells Google nothing.
Voice calls and paid plans from the old Eos are gone. Hume and Dodo Payments no longer receive anything.
Retention and deletion
Fourever keeps your chats for as long as you have an account, so they're there when you come back. Deletion is real deletion, and it's yours to do at any time:
- One memory. On your You page, tap Forget next to anything the characters remember. It's gone from every chat.
- Everything. On your You page, choose Delete my account and confirm with your password. Every message, memory, your group, picture, safety records and your account itself are erased in one transaction, immediately. Every signed-in device is signed out. No recycle bin, no thirty-day grace period.
Removing a single message isn't in the app yet. Deleting your account removes all of them.
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 if you paid for the old Eos, 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. OpenRouter doesn't keep the words by default; the model provider's own policy covers its side.
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 ciphertext for everything else. It would not give them a single conversation or memory.
Here is what I would do:
- Sign every device out, everywhere, so any stolen session cookie stops working.
- Rotate every secret and, if there was any chance the key was exposed, rotate the encryption key and re-encrypt everything under it.
- Email every affected person within 72 hours of confirming it, saying exactly what was taken and what wasn't, in the same plain words as this page. No "out of an abundance of caution", no burying it.
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 Fourever, 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:
- Everything travels over TLS, in the browser and between the server and the database.
- Passwords are hashed with bcrypt, checked against known breaches when you set one, and rate-limited per account after repeated wrong guesses.
- Sign-in cookies are HTTP-only and secure. Changing your password or your email address signs your other devices out.
- Deleting your account or changing your email or password requires your current password, so a stolen cookie alone can't do any of them.
- There's no photo upload. Your picture comes from our own avatar library.
- Fourever runs no ad trackers. The public pages (the home page, this one, privacy and terms) count visits with Cloudflare Web Analytics, a privacy-respecting service that sets no cookies, fingerprints nobody and tells me only how many people came, which pages they read and where they came from. Once you're signed in, nothing reports anything about you to anyone.
- Every route has a ceiling, so a stuck client or a stolen cookie can't run wild.
Questions about any of this: hello@eoscompanion.com. I answer them myself.