FoureverBack to Fourever
The honest version

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.

WhatCan I see it?Why
What you write in the group and in private chats, and what the characters say backNoEncrypted 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 descriptionNoEncrypted the same way.
What the characters remember about youNoEncrypted the same way as what you wrote.
Your nameNoEncrypted.
That a crisis message was detected, and whenPartlyI can see the time. What you said, which words triggered it, and which country's helpline you were shown are encrypted.
Your passwordNoStored 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 verifiedYesPlain 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 messagesYesTimestamps and counts. That you wrote, not what you wrote.
Country, timezone, language, age band, and the picture you picked from the avatar libraryYesPlain 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.

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:

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:

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:

Questions about any of this: hello@eoscompanion.com. I answer them myself.