Skip to main content

Documentation Index

Fetch the complete documentation index at: https://septemberai.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

This page is the authoritative reference for every environment variable the Engine reads. Variables are loaded from a .env file or the OS environment (OS takes precedence). All feature-flag values are the lowercase strings "true" or "false" — not "1" / "0", not booleans, not numbers. If a variable is marked required and is missing at startup, the Engine fails to boot.

LLM provider and models

NameRequiredDefaultPurpose
LLM_PROVIDERyesopenaiWhich LLM to use: anthropic, openai, or gemini.
LLM_API_KEYyesAPI key for the selected provider.
LLM_MODELyesgpt-4oModel identifier (e.g. claude-sonnet-4-20250514).
MAX_TOKENSno4096Max output tokens per call.
GEMINI_API_KEYnoGoogle Gemini API key (required if provider is gemini).
PLANNER_MODELnoModel override for the planner sub-agent. Use a cheaper/faster model if set.
LIGHT_MODELnoModel override for lightweight tasks (compaction, summarization).
FALLBACK_MODELnoModel used if the primary model fails.

Embeddings

Embeddings always route to OpenAI in the current implementation, regardless of the chat-completion provider. You need an OpenAI key even if you’re using Anthropic or Gemini for chat.
NameRequiredDefaultPurpose
OPENAI_API_KEYyesOpenAI key, used for embeddings.
EMBEDDING_PROVIDERnoopenaiProvider for embeddings. Only openai is supported today.
EMBEDDING_MODELnotext-embedding-3-smallEmbedding model identifier.
EMBEDDING_DIMno1536Embedding dimension. Must match the model’s output.

Web search (optional)

NameRequiredDefaultPurpose
BRAVE_API_KEYnoBrave Search API key.
TAVILY_API_KEYnoTavily fallback key.

Storage and catalogs

NameRequiredDefaultPurpose
SQLITE_DB_PATHno/data/brain.sqlitePath to the per-user brain database.
CATALOG_DIRnoPath to the platform catalog (agents, skills, tools, core_soul.json).
MIGRATIONS_DIRnoPath to migration files. Auto-discovered when empty.

Asset Directory (MCP)

NameRequiredDefaultPurpose
AD_ENCRYPTION_KEYnoFernet key (base64-encoded 32 bytes) for encrypting MCP credentials at rest. Required if you use any MCP connector.
OAUTH_REDIRECT_BASE_URLnoBase URL for OAuth redirects (e.g. https://engine.example.com).

Learning Centre

NameRequiredDefaultPurpose
LC_BATCH_INTERVAL_HOURSno6.0Hours between automated batch runs.
LC_PROVIDERnoopenaiEmbedding provider for batch encoding.
LC_MODELnogpt-5.4-miniModel for batch consolidation.

Channel state and activity

These control how long execution checkpoints survive and how user activity state transitions.
NameRequiredDefaultPurpose
CHANNEL_STATE_TTL_ACTIVEno10800 (3 h)Seconds. Lifetime of checkpoints for active sessions.
CHANNEL_STATE_TTL_HITLno259200 (72 h)Seconds. Lifetime of checkpoints for HITL-blocked sessions.
ACTIVITY_IDLE_TIMEOUT_Sno300 (5 m)Seconds before active → idle.
ACTIVITY_AWAY_TIMEOUT_Sno1800 (30 m)Seconds before idle → away.
ACTIVITY_DISCONNECT_TIMEOUT_Sno3600 (1 h)Seconds before away → disconnected.

Permissions and sandboxing

NameRequiredDefaultPurpose
ASSET_DIRECTORY_SANDBOXEDno"true"When "true", Asset Directory tools run inside bwrap.
ALLOWED_ROOTSnoComma-separated absolute paths. Restricts file operations to these paths.
SUBPROCESS_SCRUB_MODEnodefaultEnv scrub level for subprocesses: off, default, or strict.

Server configuration

NameRequiredDefaultPurpose
ENGINE_API_KEYnoStatic API key. Use for development. Production should rotate.
ENGINE_KEY_HASHnoSHA-256 hash of ENGINE_API_KEY. Validated at startup.
ENGINE_LOG_LEVELnoINFOLog verbosity: DEBUG, INFO, WARNING, ERROR.
CORS_ORIGINSnoComma-separated origins (e.g. http://localhost:3000,https://app.example.com).
BAP_KEY_ROTATION_MIN_OVERLAP_SECONDSno0Minimum overlap window (seconds) when rotating API keys.
BAP_KEY_ROTATION_MAX_OVERLAP_SECONDSno300Maximum overlap window (seconds) when rotating API keys.
CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCYno10Max concurrent tool calls in the streaming executor.
INDUSTRYnoIndustry scoping for catalog loading. Empty loads everything.
PERSISTENCE_RETRYno"false"Retry persistent operations on transient failures.

Feature flags

All values are the strings "true" or "false" (case-insensitive).

Agent loop

NameDefaultPurpose
TOKEN_BUDGET_ENABLED"false"Token budget continuation loop in execution.
STOP_HOOKS_ENABLED"true"Run stop-hooks at turn boundaries.
PRE_TOOL_HOOKS_ENABLED"true"Run hooks before tool calls.
POST_TOOL_HOOKS_ENABLED"true"Run hooks after tool returns.
HOOKS_SETTINGS_LOAD_ENABLED"true"Load hooks from settings files.
REACTIVE_COMPACT_ENABLED"true"Recover from context overflow by compacting.
CACHE_HIT_MONITOR_ENABLED"true"Monitor prompt cache hit ratio.

Media handling

NameDefaultPurpose
MEDIA_ERROR_RECOVERY_ENABLED"false"Strip problematic media blocks and retry on errors.
MEDIA_PRESEND_VALIDATION_ENABLED"false"Validate media (size, content) before send.
MEDIA_IMAGE_RESIZE_ENABLED"false"Resize oversized images before send.
CONTENT_INGESTION_ENABLED"false"Chunk and store large media in ingestion_chunks.

Memory and compaction

NameDefaultPurpose
USE_INMEMORY_WMUse in-memory working memory backend instead of SQLite. Test/CI only.
FEATURE_CACHED_SNIP_PREPASSPre-pass snip computation for caching.
FEATURE_POST_COMPACT_HARDENED"true"Hardened post-processing after compaction.
FEATURE_STRUCTURED_FILE_EXTRACTION"true"Extract structured file references during compaction.

Sandbox

NameDefaultPurpose
FEATURE_WINDOWS_PATH_EVASION"true"Detect Windows-style path-evasion attempts.
FEATURE_DONT_ASKDisable permission prompts. Set only in trusted automation.
FEATURE_SED_VALIDATION"1"Validate sed commands before running.
FEATURE_DANGEROUS_REMOVAL"true"Detect and gate rm / shred of high-value paths.
FEATURE_TREE_KILL"true"Kill the entire process tree on task termination.
FEATURE_BG_WATCHDOG"true"Watchdog for orphaned background processes.

Other

NameDefaultPurpose
ENABLE_SIGINT_INTERRUPT"false"Install SIGINT handler. Disable in server mode.
QUERY_CHAIN_TRACKING_ENABLED"false"Trace query chains for observability.

Conventions

  • Booleans are strings. Always "true" or "false". Never 1 / 0, never bare true / false, never yes / no. The Engine’s loader is strict about this on purpose — typos become loud errors instead of silent defaults.
  • Paths are absolute. Anything that takes a path expects an absolute path inside the container.
  • Secrets never go in code. They go in .env, in your secret manager, or in environment variables passed at runtime.

See also