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 all-MiniLM-L6-v2 at 384 dimensions. Search supports semantic, keyword, and hybrid modes. Search type is explicit on every request so callers can choose the behavior they need.

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.