Environment variables
Pulse reads configuration from environment variables and an optional.env file via pydantic-settings. The base settings class is CoreSettings (okto-pulse-core/src/okto_pulse/core/infra/config.py:22); the community edition extends it with CommunitySettings (okto-pulse/src/okto_pulse/community/config.py:7).
Both use:
- Field name → env var name. Every field on
CoreSettingsandCommunitySettingsaccepts an env var equal to the field name uppercased.data_dir⇒DATA_DIR,kg_base_dir⇒KG_BASE_DIR, etc. - Case-insensitive.
DATA_DIR,data_dir, andData_Dirare equivalent. We use uppercase throughout this page by convention. .envis loaded automatically from the working directory ofokto-pulse serve. Useful for local development; production should set vars in the process environment.
CoreSettings are read directly by the CLI, the MCP server, or the Docker image — they are called out explicitly in their sections below.
For runtime tuning rationale, see Server configuration. For the on-disk layout these variables control, see Storage paths. Source-of-truth for the table below is 80-pulse-feature-inventory.md:178–211.
CLI runtime control
These variables gate the CLI itself — they are read byokto-pulse serve and friends, not by CoreSettings.
OKTO_PULSE_PORT and OKTO_PULSE_MCP_PORT must be set before okto_pulse.community.main is imported — the module evaluates app = create_community_app() at import time and bakes the values into the Web UI’s /config.js. The CLI does this for you; if you embed Pulse in your own Python process, set both before any import okto_pulse.community.main.Server
These map toCoreSettings fields (config.py:22–60, inventory:751–765).
Storage
These map toCoreSettings and CommunitySettings fields (inventory:185–189).
Knowledge graph — embeddings
Configures the embedding backend used for KG semantic search. (inventory:191–193)Knowledge graph — runtime tuning
LadybugDB engine sizing. The legacyKUZU prefix is retained in env-var names because the underlying engine is the Kùzu-derived LadybugDB (Kuzu retired 2026-05-03). All three are validated by pydantic.Field with the ranges shown.
Knowledge graph — consolidation queue
The KG worker pool that drains the SQLite consolidation queue and writes nodes/edges into LadybugDB. AllKG_QUEUE_* settings hot-reload via APScheduler with a 5-second debounce — no restart required. (inventory:790–793, config.py:80–87)
KG_MAX_QUEUE_DEPTH is deprecated and will be removed in v0.5.0. The settings_service maps the legacy value into KG_QUEUE_ALERT_THRESHOLD and emits a DeprecationWarning at startup. Source: config.py:67–70.Knowledge graph — relevance decay
The decay tick recomputes node relevance scores so old, unread decisions sink. Hot-reloadable throughPUT /settings/runtime — APScheduler reschedules the job in place. (inventory:206–208, config.py:90–95)
MCP tracing
Independent of standard logging, Pulse can record every MCP tool call as JSONL. Read at runtime bycore/mcp/trace_middleware.py:49,56.
MCP authentication
Authentication forokto-pulse MCP tools is configured via MCPSettings (config.py:110–117) with env_prefix="MCP_" — these are the only Pulse env vars that take a prefix.
For the auth flow itself — query-param vs. Bearer header vs.
.mcp.json discovery — see MCP reference / Authentication.
Docker-image-only
Set inside the officialghcr.io/oktolabsai/okto-pulse image; not configurable from CoreSettings. Source: okto-pulse/Dockerfile:28–29.
.env example
okto-pulse serve reads a .env file from its working directory. Useful for local development.
.env
Variables set in the process environment override values from
.env. Production deployments should set vars in the systemd unit, the Docker --env/-e flag, or the orchestrator manifest — not check a .env into the repo.Hot-reloadable vs. restart-required
Most settings are read once at startup. TheKG_QUEUE_* and KG_DECAY_TICK_* families are an exception — they hot-reload while the process is running.
Related
Server configuration
Ports, bind hosts, CORS, logging, and worker tuning in depth.
Storage paths
The on-disk layout the storage variables control, plus backup and migration.
MCP reference
The 216 MCP tools, including auth flow and the tracing knobs above.
Docker install
The pre-baked container that sets
HOST, MCP_HOST, DATA_DIR, and HF_HOME for you.