Self-Hosting
Mindr itself is a lightweight CLI and MCP server process — it has no server component to deploy. What you self-host is the Remembr backend, which provides cloud storage and semantic search for memories.
If you use the default SQLite backend, there is nothing to host: memories live in .mindr/mindr.sqlite on your local machine.
SQLite (default)
No infrastructure required. Memories are stored locally. This is the right choice for solo developers or small teams where cross-machine persistence is not needed.
# .mindr/config.toml
[storage]
backend = "sqlite"
sqlite_path = ".mindr/mindr.sqlite"
The SQLite file is excluded from git by default (.gitignore already contains /data/*.sqlite). If you want to share memories across machines, use Remembr.
Remembr cloud
Sign up at remembr.io and create an organization. Then configure Mindr:
# .mindr/config.toml
[storage]
backend = "remembr"
sqlite_path = ".mindr/mindr.sqlite" # kept as local fallback cache
[remembr]
base_url = "https://api.remembr.io"
org_id = "your-org-id"
# api_key = "..." — prefer the env var below
Set the API key as an environment variable (do not commit it):
export REMEMBR_API_KEY=your-api-key
Or store it in .env (already in .gitignore):
REMEMBR_API_KEY=your-api-key
Migrate from SQLite to Remembr
If you started with SQLite and want to move to Remembr:
- Update your config to
backend = "remembr"and fill inremembr.* - Run the migration:
mindr migrate sqlite-to-remembr --dry-run # preview
mindr migrate sqlite-to-remembr # execute
Migration is one-way and additive — it copies memories to Remembr without deleting them from SQLite.
Self-hosting Remembr
Remembr can be run on-premises. Refer to the Remembr self-hosting docs for setup instructions. Once deployed, point Mindr at your instance:
[remembr]
base_url = "https://remembr.internal.example.com"
org_id = "your-org-id"
CI/CD usage
In CI pipelines where you want agents to read project context, set the Remembr credentials as secrets and run mindr generate agents-md as a pre-step:
- name: Refresh AGENTS.md
env:
REMEMBR_API_KEY: ${{ secrets.REMEMBR_API_KEY }}
run: mindr generate agents-md
Or commit a pre-generated AGENTS.md to the repository and let agents read it directly without running Mindr in CI.
Security considerations
- The local UI (
mindr ui) binds to127.0.0.1only. Remote connections are rejected with 403. - The MCP server communicates over stdio — it never opens a network port.
REMEMBR_API_KEYshould always be set via environment variable, not committed in config files.- The SQLite file contains all stored memories. Treat it with the same sensitivity as a
.envfile.