Your inner life should not become someone else’s dataset.
We encrypt what we can, minimize what the server holds, and explain the moments when an AI provider must process your words.
01
Your passkey unlocks your account key.
IndividuateAI uses passkeys instead of passwords. Your passkey unlocks the key that protects your account data. (Technical detail: synced passkeys can store key access with WebAuthn largeBlob, with a PRF-based wrap as a fallback where supported.)
02
Saved content is encrypted in layers.
Sensitive account content is encrypted with a per-user data-encryption key. The SQLite database is encrypted again at rest with SQLCipher.
03
There is no master recovery key.
A separate recovery key can unlock your account if your passkeys are unavailable. If every passkey and the recovery key are lost, we cannot restore the account.
04
The model must read a message to answer it.
Encryption protects stored data. It cannot hide a message from the model while the model works on it. Requests go to providers set to zero-retention handling by default, but the model still has to read your words to reply.
05
Voice has its own processing boundary.
Speech recognition and synthesis use Deepgram’s EU endpoints. Audio and text must be processed long enough to perform the requested transcription or playback.
06
The implementation is inspectable.
The application source is published under AGPL-3.0. You can inspect how authentication, encryption, memory and provider routing are implemented.
Encryption protects storage. It does not make computation invisible.
When you send a message, the application server briefly needs access to the unlocked account key, and the selected AI provider needs the message content to produce a response. Background memory extraction also processes relevant conversation text.
Do not put information into any AI service that you cannot accept being processed by its infrastructure. For needs requiring professional confidentiality, speak with a qualified human therapist under the rules that apply where you live.