Environment Variables

August 28, 2026 · View on GitHub

evo is configured primarily through environment variables, making it easy to customize behavior without modifying files.

Storage

VariableDefaultDescription
EVO_DATA_DIRPlatform defaultDirectory for SQLite database and logs
EVO_MEMORY_DATA_DIRLegacy name, still supported

Default storage locations:

PlatformPath
macOS~/Library/Application Support/evo/
Linux${XDG_DATA_HOME:-~/.local/share}/evo/
Windows%APPDATA%\evo\

Model Configuration

VariableDefaultDescription
EVO_PROVIDERVaries by hostHarness provider for reflection/consolidation
EVO_MODELVaries by hostModel for reflection/consolidation
EVO_MEMORY_PROVIDERLegacy name, still supported
EVO_MEMORY_MODELLegacy name, still supported

Hook Configuration

These apply to Claude Code and Codex integrations:

Core Behavior

VariableDefaultDescription
EVO_HOOK_REFLECT1Set 0 to recall only, never write memory
EVO_HOOK_IMPORT1Set 0 to skip workspace import on session start
EVO_HOOK_NOTIFY1Set 0 to remove the transcript system message
EVO_HOOK_DEBUGunsetSet 1 to log every recall, import, and reflection
EVO_HOOK_DISABLEunsetSet 1 to make the hook a no-op (recursion guard)
EVO_HOOK_HOSTautoForce claude or codex when auto-detection fails

Recall Settings

VariableDefaultDescription
EVO_HOOK_RECALL_LIMIT40Maximum memories considered per recall
EVO_HOOK_MAX_CHARS6000Character budget for injected context
EVO_HOOK_MODELclaude-haiku-4-5-20251001 (Claude Code)Model for reflection

Batch Distillation

VariableDefaultDescription
EVO_HOOK_BATCH_TURNS10Turns to gather before distilling; 1 for turn-by-turn
EVO_HOOK_BATCH_CHARS12000Character threshold to trigger batch
EVO_HOOK_BATCH_IDLE_MS300000Idle time (5 min) after which next event settles batch

Turn Trimming

Turns are trimmed before batching to fit memory budget:

VariableDefaultDescription
EVO_HOOK_TURN_USER_CHARS400Characters kept from each user message
EVO_HOOK_TURN_ASSISTANT_CHARS600Characters kept from each assistant message
EVO_HOOK_TURN_TOOLS20Tool names kept per turn

Example Configuration

# Smaller batches for faster feedback
export EVO_HOOK_BATCH_TURNS=5

# More context in each turn
export EVO_HOOK_TURN_USER_CHARS=800
export EVO_HOOK_TURN_ASSISTANT_CHARS=1000

# Verbose logging for debugging
export EVO_HOOK_DEBUG=1

# Custom storage location
export EVO_DATA_DIR=/srv/agent-memory

Precedence

When multiple sources provide the same setting:

  1. Explicit runtime configuration (plugin config)
  2. Environment variable
  3. Legacy environment variable (if applicable)
  4. Platform default