Self-hosting
Run it on your own machine, keep every byte, and pay nothing.
Free, and not a crippled tier
Self-hosting for one person is free and includes the full single-user feature set: sync across every machine you work on, secret monitoring, code findings and the ranked action plan, and analytics over your whole history. It is the same product, not a demo.
What a licence buys is a second person — shared project history, the team task board, per-member activity, and skills and MCP config distributed to every machine. That boundary is people, not machines: sync from as many devices as you like.
Two containers
git clone https://github.com/munhq/chat-recall && cd chat-recall
echo "ADMIN_KEY=$(openssl rand -hex 24)" >> .env
echo "POSTGRES_PASSWORD=$(openssl rand -hex 24)" >> .env
docker compose up -d --build
The server plus a bundled pgvector Postgres. Bring-your-own-Postgres is supported too — it is how the hosted service runs. Set DATABASE_URL to an external Postgres 16+.
Then connect a machine
chat-recall login http://localhost:8090
chat-recall init
The full sequence, including minting a device token and the troubleshooting for each step, is in docs/SELF_HOSTING.md.
Air-gapped
Nothing phones home. Full-text search needs no model at all; for vector search, point an embedder at a local Ollama rather than a hosted API. A licence can be verified offline with a signed key when a machine cannot reach us.
What we can see
Nothing. There is no telemetry, and on a self-hosted install your transcripts never reach our infrastructure. That is the entire point of running it yourself.