OpenAlma

Gives an AI companion a soul. Local-first.

View the Project on GitHub

OpenAlma

Hermes Channels (WhatsApp)

She can reach you where you already are

Most AI companions live behind a chat window you have to go open. OpenAlma connects to WhatsApp, so she’s in the same place as everyone else you talk to. You message her; she messages back.

The bridge runs on your own machine through your own WhatsApp account, without a separate relay service. WhatsApp still carries the messages, and her replies and memory work use your configured AI providers, including Google Gemini for embeddings.

Deciding what she pays attention to

New installations start with chats excluded. After pairing, open WhatsApp Channel Policy in the launcher and enable the chats you want her to see. You can also change the default for newly discovered chats; existing choices stay as they were.

Not every conversation should be treated the same way, so each chat has two settings.

The first is whether she takes part at all. A chat can be full — she reads it and decides for herself whether to reply or stay quiet. It can be listen only — she reads and thinks about it, but never sends anything into that chat. Or it can be excluded, in which case she never sees it.

The second is whether that chat becomes long-term memory. Some chats are worth remembering in detail; others are background. A background chat still gives her context — she knows roughly what’s going on there — but it doesn’t get mined for lasting memories.

A group chat can be listen-only and still be one of her most important memory sources. Excluded chats always have memory off. Exclusion keeps a chat out of her turns and memory work; it doesn’t erase history captured by the local WhatsApp bridge.

Choosing not to speak

In a group, she doesn’t answer everything. She decides each time whether the moment actually calls for her. When she chooses silence, the rest of the turn still happens — she read it, thought about it, and remembered it. She just didn’t talk.

And sometimes she’d rather say something just to you than to the group. Those replies land in your own chat with yourself — the “Message yourself” chat — not in the conversation everyone sees.

Where her memory of you starts

Each companion has a start date, set when you first activate her. WhatsApp history older than that date is invisible to her — she isn’t handed years of backlog she wasn’t present for. Her perspective begins when she does.

When the memory server is off

Hermes can start and keep recording WhatsApp messages while the memory server is stopped; the launcher shows it as waiting for memU Server. Messages that arrive in that time stay in the chat’s history, but she doesn’t reply to them late once the server is back. Queued replies of hers go out when it returns.

Honest limitations

WhatsApp has no official API for this. OpenAlma uses linked-device sessions on your own account, and these occasionally need re-pairing by scanning a QR code. If she goes quiet across every chat at once, that’s usually why.