Skip to main content

Configuration reference

Configuration resolves in a fixed precedence order: command-line flag › environment variable › config file › compiled-in default. You can override anything at any layer without touching the others.

Source: README ## Configuration section.


Config file

Format: TOML. Location resolved in this order:

  1. --config flag
  2. MIDNIGHT_MANUAL_CONFIG environment variable
  3. $XDG_CONFIG_HOME/midnight-manual/config.toml

Inspect the effective, merged configuration at any time:

mnm config show # config file + defaults
mnm config show --effective # config + env + flag overrides (secrets redacted)

Full example

[server]
url = "https://midnight-manual.midnightntwrk.expert"

[models]
embedding = "voyage-context-3" # remote VoyageAI general embedder (contextualized)
code_embedding = "voyage-code-3" # remote VoyageAI code embedder (second vector)
# voyage_api_key = "…" # optional — BYOK embedding + reranking
# voyage_timeout_secs = 120 # optional — per-request Voyage embed timeout

[rerank]
location = "auto" # auto (default) | local | server | off
model = "rerank-2.5" # rerank-2.5 (default) | rerank-2.5-lite

[telemetry]
enabled = true
# endpoint = "https://gauge-telemetry.fly.dev" # optional — override the Gauge endpoint

Config keys

[server]

KeyDefaultDescription
urlhttps://midnight-manual.midnightntwrk.expertCorpus cloud server URL.

[models]

KeyDefaultDescription
embeddingvoyage-context-3Remote VoyageAI general embedder (contextualized).
code_embeddingvoyage-code-3Remote VoyageAI code embedder (second vector for dual-embedding).
voyage_api_key(unset)Your Voyage API key for BYOK embedding and reranking. When unset, embedding and reranking are proxied by the hosted server.
voyage_timeout_secs120Per-request timeout in seconds for Voyage embedding calls.

[rerank]

KeyDefaultDescription
locationautoWhere reranking runs: auto picks local when a Voyage key is set, else server; local forces BYOK; server forces server-side; off disables reranking.
modelrerank-2.5Voyage rerank model: rerank-2.5 or rerank-2.5-lite (lower latency, billed at half tokens server-side).

[telemetry]

KeyDefaultDescription
enabledtrueTelemetry opt-in. Set false to disable. Equivalent to MIDNIGHT_MANUAL_DISABLE_TELEMETRY=1.
endpointhttps://gauge-telemetry.fly.devGauge telemetry endpoint override.

Environment variables

VariableDescription
MIDNIGHT_MANUAL_SERVERCorpus URL, same effect as --server.
MIDNIGHT_MANUAL_CONFIGConfig file path.
MIDNIGHT_MANUAL_DISABLE_TELEMETRYSet to 1 to opt out of telemetry.
MIDNIGHT_MANUAL_GAUGE_ENDPOINTOverride the Gauge telemetry endpoint (default https://gauge-telemetry.fly.dev).
MIDNIGHT_MANUAL_MCP_BINDBind address for mnm mcp serve --http (default 127.0.0.1:2400). The --bind flag wins over this.
VOYAGE_API_KEYYour Voyage key for BYOK embedding and reranking. Unset means embedding and reranking are proxied by the hosted server.
VOYAGE_TIMEOUT_SECSPer-request timeout in seconds for Voyage embedding calls (default 120). Flag form: --voyage-timeout-secs.
MIDNIGHT_MANUAL_RERANKRerank placement: auto | local | server | off. Same as --rerank.
MIDNIGHT_MANUAL_RERANK_MODELVoyage rerank model: rerank-2.5 | rerank-2.5-lite. Same as --rerank-model.
RUST_LOGLog verbosity (error, warn, info, debug, trace). Same as --log-level.

Operator-only settings (admin command visibility, the server-side user store, and the JWT signing secret) are documented in Operator & admin reference.


Precedence summary

For any setting, the order of precedence is:

  1. Command-line flag (highest)
  2. Environment variable
  3. Config file
  4. Compiled-in default (lowest)

The --effective flag on mnm config show displays the fully resolved values (secrets redacted) so you can confirm what the CLI will actually use.

See CLI configuration for a guided walkthrough.