Privacy & your data
OpenMind's promise is in the tagline: Talk it. Map it. Own it. The 'own it' part is load-bearing — here's what that actually means.
What we store
Your messages and the files you attach, the extracted graph (nodes + edges + their embeddings, and the raw extraction output), your project metadata, the provider API keys you store (encrypted), your display name and profile picture, token counts for each chat reply and extraction, and authentication artefacts (your email, magic-link tokens). We don't profile you, we don't run analytics on your conversations, and we don't sell anything.
Where it lives
On the hosted demo: a Supabase Postgres in the EU (Stockholm, eu-north-1). Once a week an encrypted backup of that database is taken and kept for 14 days as a GitHub Actions artifact, which GitHub stores in the US; only a key held outside GitHub can decrypt it. Row-level security ensures one user's project rows are invisible to every other user — enforced by the database itself, not by application code. On self-host: wherever you put it. That's the whole point.
Who can read it
You — except your profile picture, which sits in public storage so anyone can load it without signing in. The maintainers can technically read raw rows on the hosted demo for debugging, but we don't, and we'd ask first. LLM providers (Anthropic, OpenAI, Ollama, LM Studio) see what each call needs: a chat reply sends that conversation's latest messages (up to 69); an extraction sends your message, or an attached file's text in chunks, plus the slice of the graph it works on; an Ask call sends your question plus the part of the graph it retrieved. On the hosted service these calls run on your own API key. Separately, where embeddings are on (OpenAI on the hosted service), extraction sends your message, or each chunk of an attached file's text, and each new node's kind, label and summary to the embedding provider, and search and Ask send your query. The “Embed” button sends the kind, label and summary of every node in the project that has no embedding, in a shared project other members' nodes too. On the hosted service that also runs on your own OpenAI key: without one stored, none of it is sent and your nodes are saved without embeddings.
Export everything
Settings → Account → 'Download my data' produces a single ZIP with every project you own — its messages, nodes and edges as JSON, plus the four text-format mindmap exports; attachments are not included. Readable in any text editor. Use it to migrate to a self-host, archive your work, or just verify what we have.
Delete your account
Settings → Danger zone → 'Delete account' first removes the files uploaded to your projects and your profile picture from file storage, then deletes your account and, in one database transaction, every project you own with its conversations, messages, nodes, edges, embeddings and attachment records, along with your stored provider keys. If a file cannot be removed, your account is not deleted and you can try again. Type-the-email-to-confirm prevents accidents. The deletion is immediate and irreversible — there's no soft-delete grace period. Not removed by it: the messages you sent in projects other people own, and the files attached to them, stay in those projects (a file you uploaded there but never sent is removed), your email stays on any waitlist or invitation record, the token counts recorded for your chat replies and extractions stay with their link to you, the project and the message cleared, and on the hosted service the weekly encrypted backup keeps a copy for up to 14 days.
Self-host if you want full control
OpenMind ships as a docker-compose stack for your own hardware, from a laptop to a GPU server for a team. See the self-hosting guide. Same code as the hosted demo; your stored data never leaves your infrastructure, and with a local model of your choice (Ollama, LM Studio) no model call does either.
Training data — not collected
The hosted service does not use your projects to train models, and it offers no setting to contribute them.