Skip to content

Configuration

Remem reads remem.toml and environment variables. Environment variables are most useful for deployment secrets and addresses; the TOML file contains the storage, search, lifecycle, job, and metrics settings.

VariableDefaultDescription
REMEM_SERVER_API_KEY(empty)Server credential. Required in production.
REMEM_SERVER_ENVdevelopmentSet production to enforce the production credential check.
REMEM_SERVER_HTTP_ADDR127.0.0.1:4545HTTP and MCP listener address.
REMEM_STORAGE_PATH./dataPebble data directory.
REMEM_TENANT_DEFAULTdefaultDefault tenant for requests without an explicit tenant.
REMEM_MCP_URLhttp://127.0.0.1:4545/mcpURL used by the stdio MCP bridge.
REMEM_MCP_API_KEY(empty)Credential forwarded by the stdio MCP bridge.

The complete configuration surface is available in the repository’s config/remem.toml example. Environment variables follow the same section names, for example REMEM_JOBS_WORKERS maps to [jobs].workers.

Remem 0.5 uses Pebble for durable local storage. sync_writes = true is the safe default: acknowledged writes are synced before the request returns. The vector index, text index, graph, and lifecycle state are maintained alongside the corpus and rebuilt by the administrative tools when needed.

The default embedding model is pplx-embed-context-v1-0.6b at 1,024 dimensions, installed into REMEM_MODEL_DIR on first start rather than shipped in the image. Search supports semantic, keyword, and hybrid modes. Search type is explicit on every request so callers can choose the behavior they need.

To compute vectors in your own application, configure embedding.provider = "external", set embedding.external_model_id and vector.dimension, and supply vectors with REST requests. See Use your own embedder for the full setup.

In production, Remem refuses to start without REMEM_SERVER_API_KEY. Send the key as a bearer token:

Terminal window
curl http://localhost:4545/api/v1/memories \
-H "Authorization: Bearer $REMEM_SERVER_API_KEY"

The readiness and basic health endpoints remain available for deployment probes. Keep the server behind your normal network boundary and use a long, random key.

Every memory belongs to a tenant. The Community build provides a single-tenant deployment boundary by default, while the storage and API model are tenant-aware so future multi-tenant and horizontally scaled deployments can build on the same foundation.

Start from config/remem.toml when you need settings beyond the defaults:

[storage]
path = "/var/lib/remem"
engine = "pebble"
sync_writes = true
[server]
env = "production"
http_addr = "0.0.0.0:4545"
[lifecycle]
enabled = true
sweep_interval = "1h"
[jobs]
workers = 4

Mount the file into a container only when you need to override built-in defaults. Invalid values fail at startup rather than being silently ignored.