Platforms

Ensoul runs on web, desktop (macOS and Windows), and Android. All three are built from one shared core, so a companion, their memory and their conversations behave the same everywhere — but the platforms are not interchangeable, and this page is the honest version of what works where.

What works where

Capability Web Desktop Android
Chat, memory, moods, groups, imagesYesYesYes
Bring in a file (.json / .zip)YesYesYes
Bring in from a folderChromium onlyUntestedNo
Bring in a card from another app (.json)YesYesPaste the card's text instead
Back up companion (.json)YesYesYes
Export the soul document (.md)YesYesYes
Build a companion from questionsYesYesYes
Export as a folder for an agentYesYesYes
Full backup of everythingYesYesYes
Images the app holds survive an exportYesYesYes
Local models (Ollama)Needs origin setupYesNo
Reading replies aloudElevenLabs onlyElevenLabs onlyElevenLabs only
DictationChromium / SafariDepends on engineDevice engine
Web access settingYesYesYes
Theme switch (system / light / dark)YesYesFollows device
Keys stored in OS secure storageNoYesYes
Automatic updatesn/aManual on macOS, automatic on WindowsManual reinstall
Installable as an appAdd to Home ScreenNative appNative app

Two rows surprise people. Local models work in the desktop app without setup but need Ollama to be told to accept requests from a web page's origin — see Local models, under Settings → Models, keys & APIs. And OpenAI voice can't be used on any platform yet: the app doesn't accept an OpenAI key, and separately OpenAI refuses cross-origin requests from a browser tab — so even once the key is enabled, that path will be desktop-only. ElevenLabs is the one that works today.

One pair of rows is worth reading together. Import by browsing to a folder is Chromium-only, because it needs a browser API that only Chromium has — but that is about pointing at a directory, not about the folder format. A folder export is one .zip, and every row that mentions exporting or importing a file is a plain Yes on all three platforms. If you are moving a companion, use the zip and ignore the directory row entirely.

One thing applies to all three: there is no offline mode — Ensoul doesn't work without a connection. Replies come from a model provider, so offline there is nothing to talk to. Your companions, memories and history are all still there — they just can't answer until you're back.

Web

Runs at app.ensoul.so in any modern browser — nothing to install, and it can be installed to your home screen or dock as a PWA. Data is stored in the browser's own local storage, so clearing site data, or using a different browser or a private window, means starting fresh unless you've backed up first. See Transfer & Backup.

Folder import needs the File System Access API, which today means Chrome, Edge or another Chromium browser. On Safari and Firefox the option simply isn't offered.

Desktop — macOS & Windows

The desktop app is the same client in a native shell, which buys four things: your API keys go into the operating system's secure storage rather than browser storage, files are saved and opened through real system dialogs, local models are reachable without any origin setup, and it updates itself. It's also the only place the OpenAI paths — chat, reading aloud, and dictation's hosted fallback — could run, because a browser refuses those cross-origin requests; they're still waiting on the app accepting an OpenAI key.

Builds are currently distributed outside the app stores and are not notarized, so first launch needs one manual approval step. It's a one-time thing:

macOS

Right-click the app → Open → Open in the dialog, or System Settings → Privacy & Security → Open Anyway. Apple Silicon, macOS 11 or newer.

Windows

Windows SmartScreen shows a warning — click More info → Run anyway. Requires Windows 10 or later, 64-bit.

◇

Because the builds aren't yet signed by a recognised developer, macOS and Windows will keep warning you until that's done. The warnings are expected, not a sign that something is wrong with your download.

Android

A full native app, and the only mobile build today. It isn't distributed through the Play Store, so installing means sideloading: open the APK, allow installs from that source when prompted, then install. You can turn that permission back off afterwards — it only affects future installs, not the app itself. The build takes Flutter's default minimum Android version rather than pinning one, so there's no official floor to quote yet — anything reasonably recent will run it.

The mobile app has no theme switch — it follows your device — and no local-model support. It has no browse-to-a-folder button either (see the note above the table: the folder .zip still imports fine, from either the bring-in screen or Settings → Data). Its settings are laid out as a list rather than the web app's tabbed screen, which is documented on Settings & Tools.

iOS

Not built yet. There is no iOS app to install and no TestFlight build — treat any iOS download link you see elsewhere as incorrect.

← Why No Accounts Contact & Support →

Was this article helpful?

Thanks for the feedback.