Skip to main content

Where config lives

All configuration is one dotenv-style file, created by memloom init:
The daemon reads it at startup. After editing it, restart (memloom stop, then any command). Real environment variables take precedence over the file, so a shell-provided or MCP-provided key overrides what’s written there. Set MEMLOOM_HOME to relocate the whole home directory (config and data).

Reference

MEMLOOM_AUTO_INDEX controls the background indexing that runs a few seconds after a save or file ingest (one LLM call per new item, debounced into batched runs). Set it to off if you want every LLM call to be explicit; memloom index and the Console still work either way. Offline mode never auto-indexes.
OPENROUTER_EMBED_PROVIDER exists because embedding latency varies wildly between hosts of the same model on OpenRouter: the same call has been observed taking 16s on one host and under a second on another. For the default model, memloom pins the fast host (nebius) automatically; set this only if you change models or want a different host.

The two modes

Offline mode is for trying memloom, tests, and air-gapped storage of text you’ll search by keywords. For real use, set the key.

The embedding fingerprint

A store’s vectors are only comparable to vectors from the same provider + model + dims. On first init, memloom stamps the store with the embedding fingerprint (e.g. openrouter:qwen/qwen3-embedding-8b@1024). Any later startup with a different fingerprint is refused with an explicit error, because mixed embedding spaces don’t fail with an error; they silently return garbage recall. Switching between offline and cloud mode (or changing embedding models) is a migration, not a dead end: stop the daemon and run memloom reembed, which recomputes every vector with the new provider and stamps the new fingerprint. The LLM model, by contrast, can be changed freely; it doesn’t touch the vector space.

Daemon endpoints

Both bind to 127.0.0.1 only, and the API’s CORS policy allows only localhost origins, so a public web page can’t drive your daemon.