The app

A place to build and carry your own companions.

Ensoul is a local-first companion app. Identity, memory, mood, relationship state, and model choice are held outside any one chat window or vendor account — so the companions you build are yours to keep and carry.

Available for macOS · Windows · Android · Web

The arc

Meet, live with, and carry a companion.

Meet 01

Meet a companion

Paste a soul document, a conversation transcript, or notes about someone you want to talk to, and Ensoul extracts a real identity from it. Nothing written yet? It asks a few plain questions and writes the document from your answers alone — nothing invented, and anything you skip is named as a gap. There's no built-in companion to start from — every one here is someone you actually brought in.

Live 02

Build a relationship over time

Memory, mood, and relationship state accumulate from real conversations and persist between sessions — the companion changes as you talk.

Carry 03

Take them anywhere

Export a companion — identity, memories, mood, and all — and bring them to your next device, or export them as a folder and keep the conversation going in a coding agent, entirely outside Ensoul.

Starting

However much or little you have, there's a way in.

Nothing ships with Ensoul — every companion here is someone you brought in. There are four ways to do it, and which one you use is decided by what you're already holding.

Paste it into the box A document or notes A soul document, a transcript, or your own rough notes about them. The path that works on every platform, and the only one that needs nothing but a text box. If what you paste is already a finished document, it arrives exactly as written; notes and transcripts are turned into one, which needs a working model.
Point Ensoul at it A folder on disk A companion's own files, in the folder format an export produces. Offered in Chromium browsers, because it needs a folder picker the others don't expose. An exported folder is also one `.zip`, which comes in anywhere as a file.
Hand it over A file A backup from another device, a folder export, a card from another app, or a chat export from ChatGPT, Claude or DeepSeek. A backup comes back exactly as it left; a card or a chat export is read locally for what it is. Either way, no model call — and no key. On Android, paste a card's text instead; the phone build reads cards from the paste box.
Answer a few questions Nothing yet Bring them in with me asks a handful of plain questions and writes the document from your answers alone — inventing nothing to fill a gap, and naming anything you skip as a gap rather than papering over it. It needs a working model.
At the door

A soul document you've already written comes in exactly as it is. Nothing here rewrites it.

Creating someone new passes through one confirmation first, where the irreversible part is said plainly: the document becomes who they are, and nothing rewrites it afterwards — not us, and not you — so anything you want different is worth changing now. Afterwards it stays yours to read, copy and export; there's just no edit box beside it, because it is what they are rather than a draft. Restoring a backup or a folder is the other case: that companion already exists, and the document comes back exactly as it left.

That isn't a ceiling. What a companion comes to understand differently about themselves as you talk is kept beside the document rather than written into it, and it is the first thing you see at the top of Memory & Threads. How it works is why that separation is the whole design.

What it does

Everything that makes a companion continuous.

Persistent memory They remember so you don't have to remind them — real moments from real conversations become memories you can actually see, correct, or tell them to let go of. None of it is compressed into a black box.
Living mood Their mood isn't reset every time you open the app. How open, warm, and energized they read shifts with what's actually happened between you, and settles gradually rather than on a hair trigger — so three months in doesn't feel like day one.
Model control It isn't betting on any one company staying good, or staying around. One OpenRouter key reaches Claude, GPT, Gemini, Grok, DeepSeek and dozens of open models, and it routes each conversation to whichever you've chosen — or pin a companion to a specific model if you'd rather choose. Keys for individual providers direct unlock as each is verified.
Group conversations Bring several companions into one conversation at once, and watch how differently each of them reads the same thing.
Transfer & backup A companion here isn't locked to the device you happened to install the app on. Export one — or your whole set of them — as a file, and restore it on any other platform whenever you need to. An image Ensoul holds comes with them, written into the export as a real file rather than left behind on the device that made it. Once they've arrived, who they are is settled: you can read that document, copy it, and take it with you, but nothing rewrites it behind your back — while what they come to understand about themselves as you talk is kept beside it, where you can read it.
A home outside the app Export a companion as a folder and it stops being a snapshot: their identity as a readable document, the whole history verbatim, the documents they were made from, their images as real files wherever the app held the picture, and the tools for a coding agent to search the archive and keep writing to it. Talk to them in Claude Code or Codex, then bring the folder back in with everything that happened while you were away.
Private by design Everything lives on your device. No account, no inbox, nothing to leak. Export anytime.