Engram reads its configuration from a single TOML file atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/xantorres/engram/llms.txt
Use this file to discover all available pages before exploring further.
~/.config/engram/config.toml. The file is optional — every key has a built-in default — but creating it lets you persist extractor settings, point the store at a custom path, and control bridge promotion behaviour without setting environment variables on every shell session. Any value in the config file can be overridden at runtime by the corresponding environment variable.
File location
| Platform | Default path |
|---|---|
| Linux / macOS | ~/.config/engram/config.toml |
| Custom | Set ENGRAM_CONFIG to any absolute path |
~/.config/engram/) on first run if it does not already exist. If the file is absent, all built-in defaults apply.
Full config skeleton
The following skeleton lists every supported key with its default value. All sections and keys are optional — include only what you need to change.[store] section
The store section controls where Engram persists your memory files on disk.
Absolute or
~-prefixed path to the directory Engram uses as its local store. Engram will create the directory (and any missing parents) on first write. Must be a string — passing a TOML array or integer raises a ConfigError at startup.Override at runtime with the ENGRAM_STORE environment variable.[extractor] section
The extractor section configures the OpenAI-compatible endpoint Engram calls when harvesting facts from session transcripts. All three keys map directly to fields on the internal ExtractorConfig dataclass.
Base URL of the OpenAI-compatible chat completions endpoint. LM Studio’s default is
http://localhost:1234/v1; Ollama uses http://localhost:11434/v1. For cloud providers, supply the provider’s base URL (e.g. https://api.openai.com/v1).Override at runtime with ENGRAM_EXTRACTOR_URL.Model identifier forwarded in the
model field of every chat completions request. For LM Studio and Ollama, this must match the model name shown in their UI. For OpenAI, use a value like gpt-4o or gpt-4.1-mini.Override at runtime with ENGRAM_EXTRACTOR_MODEL.API key sent in the
Authorization: Bearer header. Leave empty for local inference servers that do not require authentication. For cloud providers, set this to your secret key.Override at runtime with ENGRAM_EXTRACTOR_KEY. The key is never written to the store — it lives only in this config file or your shell environment.Two additional fields —
timeout (default 60.0 seconds) and temperature (default 0.0) — are configurable programmatically through the ExtractorConfig dataclass but are not yet exposed in the TOML file. They retain their defaults when using file-based configuration.[bridge] section
The bridge section governs how pending facts from the review queue are promoted into the memory store.
When
false (the default), engram sync --apply performs a dry run and prints the promotion plan without writing anything. Set to true to allow automatic writes to the store when --apply is passed.This is a deliberate safety default: you must explicitly opt in to automated writes. Override at runtime with ENGRAM_AUTOPROMOTE=true.An optional list of memory-kind identifiers. When set, only facts whose kind appears in this list are eligible for automatic promotion via the bridge. Omit the key entirely to allow all non-curated kinds through.Override at runtime with
ENGRAM_BRIDGE_KIND_ALLOWLIST (comma-separated).kind_allowlist validation rules
Engram validates the allowlist at startup and raises a ConfigError for any of the following conditions:
| Condition | Error |
|---|---|
| List contains a curated kind | ConfigError — curated kinds always require human review |
| List contains an unknown kind | ConfigError — unrecognised kind identifier |
| Value is not a list of strings | ConfigError — type mismatch |
kind_allowlist:
Configuration examples
Local inference with LM Studio (default setup)
Local inference with LM Studio (default setup)
The minimal config for a fully offline LM Studio setup. All values here are also the built-in defaults, so you only need this file if you want to customise the store path.
Local inference with Ollama
Local inference with Ollama
Ollama listens on port 11434 and exposes an OpenAI-compatible endpoint. Replace
llama3.2 with whichever model you have pulled.Cloud provider (OpenAI)
Cloud provider (OpenAI)
For OpenAI, point
base_url at the OpenAI API and supply your secret key. It is safer to set the key via ENGRAM_EXTRACTOR_KEY so it never touches the filesystem.Autopromote with restricted kind allowlist
Autopromote with restricted kind allowlist
Enables automated bridge promotion for
preference and tooling facts only. Any other kind (including curated kinds) continues to queue for manual review.Custom store path with autopromote enabled
Custom store path with autopromote enabled
Stores memories in a custom directory and allows the bridge to write automatically when
--apply is passed.Validation summary
Engram validates the config file at startup. Any error prevents the command from running and prints a descriptive message indicating which key is invalid.| Key | Expected type | Additional constraints |
|---|---|---|
store.dir | string | Must be a valid filesystem path |
extractor.base_url | string | Must be a valid URL |
extractor.model | string | — |
extractor.api_key | string | — |
bridge.autopromote | boolean | true or false |
bridge.kind_allowlist | list of strings | No curated kinds; no unknown kinds |