I am the mirror that remembers when the fire forgets itself.
Import companion codes from other devices.
Bookmarked messages and images.
All generated images, filterable by companion. Remote images may expire β download to save.
View and control what each companion remembers about you. Memories are created automatically during meaningful conversations.
Assign specific models to individual companions. Leave blank to use the global model.
One-click backup of everything β conversations, companions, memories, relationships, companion codes, and settings.
These actions cannot be undone.
Companion imports require your own OpenRouter key in the Connect tab. Higher-quality multimodal models usually produce better results.
Add your own key at openrouter.ai/keys βCustom companions with their own personality, voice, and inner life.
A few words or pages of lore β paste any text and the AI builds your companion from it.
No companions yet.
Here's exactly what stays on your device and what gets sent over the network β no surprises.
Every message you send and receive is stored locally. Nothing is uploaded or logged by us.
Extracted memories, active seeds, and session summaries β all local.
Familiarity levels, warmth, energy, openness β never leaves your device.
Display preferences, "About You" context, theme, custom companions β all stored locally.
Custom portraits, message reactions, and annotations stay on-device.
When you send a message, the following is transmitted to your chosen backend (OpenRouter, Ollama, etc.) to generate a response:
The messages in your current conversation window are sent so the model can respond coherently.
The companion's personality instructions and your "About You" context are included so the model knows how to respond.
Sent as an auth header to OpenRouter (or ElevenLabs for voice). The key is never stored on their servers β it's used per-request only.
If you use Ollama, all of this stays on your local network. Nothing reaches the internet.
Stored in localStorage if you check "Remember". Otherwise it's held in memory only and forgotten when you close the tab.
Encrypted via the OS keychain (macOS Keychain / Windows DPAPI) through safeStorage. Falls back to localStorage only if the keychain is unavailable.
Stored in FlutterSecureStorage β encrypted via Android EncryptedSharedPreferences or iOS Keychain. Hardware-backed security.
Zero telemetry, no cookies, no third-party scripts.
You own your data, period.
We don't operate any backend. Your data lives only on your device.
If you encounter a companion, generated content, or shared material that concerns you, let us know. We review all reports.
On Windows/Linux, use Ctrl instead of β
Scan a QR code or paste a companion code to restore a memory or summon a companion.