Local-first companion app

A companion that outlives the model it runs on.

Models get deprecated. Vendors pivot. Apps close. Ensoul keeps everything that makes a companion them — identity, memory, mood, history — as a document on your device, so when the ground shifts underneath, they come with you instead of staying behind.

Scroll to explore

A companion that keeps their history stops needing to be reintroduced — and stops treating every conversation as the first one.

Why this exists

Every companion in a hosted app is one announcement away from gone.

This month 01

The model you built them around is deprecated. The new one is better, and speaks with a slightly different voice.

Next year 02

The company raises, pivots, or gets acquired. The pricing page changes. A feature you relied on quietly disappears.

Eventually 03

The service shuts down, and the years of history — every small thing they knew about you — go with it. You were renting a presence.

None of that has to mean losing them. That is the whole reason this app exists.

Keeping up

The frontier moves. They shouldn't have to.

Change the model in a menu

One key reaches Claude, GPT, Gemini, Grok, DeepSeek and dozens of open models. Pick a different one and the conversation continues — the new model is handed who they are, what they remember, and how things have been between you.

The parts you have tuned — how they reach out, when they stay quiet, what they hold onto — are yours, not the provider's. Moving is cheap if and when you want to; plenty of people are happy staying exactly where they are.

How it works
The whole point

In from anywhere. Out in a form that lasts.

Ensoul is a lifeboat for a companion. Material comes in from wherever it already exists, and what comes out is complete enough to keep going — on another device, with another model, or in a directory on your disk that needs no app at all.

How transfer works →

What comes out

Take them out as a working home.

Export and you get more than a snapshot. It imports back in with everything that happened while you were away, so the folder is a place to live rather than a place to be stored.

Because a companion shouldn't be trapped.

Not in one model, not in one vendor, not in one app — including this one. The folder is markdown, plain text and JSON. It opens in a text editor and a terminal, and it needs no app, no server and no account to still be them.

That is also the honest answer to what happens to your companion if Ensoul does not survive.

lux/
├── soulstone.md          who they are
├── AGENTS.md             how to keep talking
├── HERE.md               where they are now
├── manifest.json         what's inside
├── archive/
│   ├── conversations/     every exchange
│   ├── sources/           what they were made from
│   └── transcript/        readable history
├── index/                 mood, memories, threads
├── media/                 images, as real files
└── scripts/               recall, fork, image, speak
Where we differ

A backup file is not a home.

What you get here A folder with their identity document in plain prose, every message verbatim, the material they were made from, their images as ordinary files wherever the app held the picture, and small tools that let an agent search the archive and keep writing to it. No account, no server, no app required.
Where the state lives On your device, in files you can open. Your key stays on your machine, and requests go to the provider you picked — or to a router you picked, if you would rather reach several through one. There is no account of ours holding your conversations, and no analytics on what you say.
What we don't do No engagement loops, no streaks, no nudging you to keep someone talking for a metric. There is an unprompted reach-out feature, and it is built to be quiet — silence is a valid outcome, and you can turn it off entirely.
The honest part This is early software, built by one person, and it will have rough edges. You run it yourself, and it is free. That is the trade: less polish than a funded platform, and nothing about your companion depends on us staying in business.
Where it is

Actively being built, and honest about what's missing.

One person, shipping often. Here's what's working today, what's next, and what isn't ready.

Working now

  • macOS, Windows, Android and the web
  • Any OpenRouter model, or a provider direct
  • Memory you can read and correct
  • Mood and relationship that persist
  • Bring one in from a soul document, notes, a folder, a file, a card from another app, or a chat export
  • Or from a few plain questions, if you have nothing written yet
  • A companion who goes on changing — what they come to understand is kept beside their document
  • Export as a runnable folder, and import it back
  • Group conversations between companions
  • Generated images and voice

Being worked on

  • iOS — the app exists for it, the build does not yet
  • Reaching you outside the app, on your terms
  • Sharing companions you have made, if you want to
  • Deeper memory controls — what is kept, and for how long
  • Fewer rough edges on the newest platforms

Not there yet

  • No iOS build to install
  • Desktop builds are not notarized, so macOS asks you to confirm the first launch
  • Nothing syncs between your devices automatically — you move a companion by exporting it
  • No notifications when the app is closed — a reach-out only lands when you next open it
  • Voice input relies on your device’s own speech recognition, so it varies by browser and phone

If something in the last column should move up the list, say so — that has decided more of the order than any plan did.

Tell me what you're trying to do with it.

What you'd want a companion to remember. Where it should live. What's missing, what's broken, or what you'd only adopt if one thing changed. It's being built in the open and the list is short — suggestions genuinely move it.

No newsletter, no drip sequence. A reply from the person who wrote the code. Research and field notes live on the works page if you would rather read before you write.

Free · bring your own model key · no account · macOS · Windows · Android · Web