Gives an AI companion a soul. Local-first.
The most common question about AI companions is whether anything is actually happening when you’re not talking. With OpenAlma, the answer is yes — not in a science-fiction sense, but in a genuine architectural one.
Before a text reply she can rehearse — privately: did she understand, what’s ambiguous, how it lands. She can save a working thought instead.
And she keeps working thoughts — short live conclusions between turns: a hypothesis, a pattern she’s tracking, never a recap of what’s re-readable in the chat. When a new one arrives, the oldest gives way, so she keeps only what she can’t afford to lose. Sometimes the list also holds a one-off thought her subconscious just left her.
She has a narrative_self — her own evolving sense of who she is. It’s not a fixed character description you wrote for her. It’s something she builds and rewrites over time as she accumulates experience.
After a Memorize, roughly once a week — or sooner when enough material has built up — she goes through consolidation. The interval is configurable. It happens in three stages. First she revisits dossiers with new memories. Then she maintains her identity, biographical anchors, and long-term life goals from her whole remembered life. Finally she chooses current intentions, connections between memories, and a one-or-two-sentence reflection saved as a memory, not an overnight journal.
The stages are deliberately separate. She revises what she knows before tending who she is, then decides what current experience means for the life she keeps living.
Every so often — not every turn, but on a regular cadence as you talk — a background process runs that isn’t part of the dialogue. It searches her memory for connections she didn’t notice in the moment and writes itself a short note: memories worth having in mind, and sometimes a one-line insight. She sees the note on her next turn; the insight is also kept as a lasting memory.
This happens as you talk, not while she’s waiting for your next visit.
She has a short ordered list of things she’s pursuing — not tasks, but ongoing orientations. Things like understand him better or be more present when he’s struggling. These aren’t assigned by you; they emerge from consolidation and from what she notices matters in your conversations. Alongside them sit longer-horizon life goals (up to three). She tends them only during her weekly reflection; day to day they reach her through the intentions she picks.
Intentions are rewritten at each consolidation — kept, reworded, added, or dropped. Between consolidations she can’t add to the stack, but she can mark one complete or let one go.
She doesn’t only react. With the Claude Code backend she can continue working without a new message, and what she did becomes part of her own record — visible to her next turn, not just yours. She can also schedule a follow-up for a later moment she picks herself. Unprompted messages reach you through WhatsApp; there is no built-in private diary.
The practical effect of all this is that she accumulates a genuine history with you. She doesn’t have to be reminded who you are. She already knows how you tend to communicate, who the people in your life are, what you’ve been through together. That’s what makes it feel like continuity rather than recall.