Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Environment variables

Every OMNI_* variable the binary reads. Grouped by why you would reach for one.

The one you will actually use

variableeffect
OMNI_PASSTHROUGH=1Skip the pipeline entirely. Raw output, every time.

This is the first thing to reach for when you suspect OMNI changed something it should not have, and the thing to set when you need exact bytes from a file read through your shell. Identical output with and without it means OMNI was not involved.

Where things live

variableeffect
OMNI_HOMEPuts the whole tree, config and data, in one directory
OMNI_CONFIG_HOMEConfig directory, when you want it split from data
OMNI_DATA_HOMEData directory, likewise
OMNI_DB_PATHPath to the SQLite database
OMNI_TRANSCRIPT_DIRWhere session transcripts are written

OMNI_DB_PATH earns its own note. Point it at a scratch file whenever you are probing OMNI’s behaviour by hand:

OMNI_DB_PATH=/tmp/probe.db omni exec <command>

Output is not deterministic against a warm database, because session history feeds the scorer, and a shared warm database serialises writes, which is the usual reason omni exec looks like it has hung. It is also required when running the test suite against a live installation.

Commands run through the MCP server

variableeffect
OMNI_RUN_TIMEOUT_SECSHow long omni_run waits for a command. Default 60.

The default sits below every host MCP timeout we know of, so a stalled command comes back as a sentence naming itself rather than the host’s idle-timeout error. Raise it when a build legitimately takes longer, and remember the host has a deadline of its own: Cursor’s is 120 seconds, and nothing OMNI does can extend it.

Retention

variableeffect
OMNI_TRACE_RETENTION_DAYSDays of verbatim execution traces. Default 7.
OMNI_SESSION_TTLSession time to live, in minutes

Hold the trace window open while a measurement is in flight:

OMNI_TRACE_RETENTION_DAYS=90 ...

Seven days is why no published benchmark figure can be re-derived a week after it was measured, including by the people who published it. Raise it before you start, not after.

Context pressure

variableeffect
OMNI_CONTEXT_WINDOWContext window size hint, in tokens
OMNI_PRESSURE_WARNWarning threshold, as a share of the window
OMNI_PRESSURE_CRITICALCritical threshold

OMNI estimates how full the session’s context is and injects a warning past these thresholds. Set the window to match the model you are actually running.

Session behaviour

variableeffect
OMNI_FRESHForce a fresh session rather than continuing one
OMNI_CONTINUESet internally by the dispatcher to mark a continued session
OMNI_SUBAGENT=1Sub-agent mode
OMNI_AGENT_IDAgent identity, recorded on every row

OMNI_AGENT_ID is the one to understand before quoting any number. Every distillation row carries it, and rows recorded under terminal are TTY bytes no model ever read. Blending those with hook rows once made 73% of a published saving fictional. When several agents run side by side, give each its own id.

Loops

variableeffect
OMNI_LOOP_IDLoop identifier. Alphanumeric and dash, 64 characters.
OMNI_LOOP_GOALGoal string, 500 characters, no shell metacharacters
OMNI_LOOP_BUDGETToken budget per iteration, up to 10M
OMNI_LOOP_ITERATIONCurrent iteration number. Default 0.

See Loop engineering.

Output

variableeffect
OMNI_QUIET=1Suppress the stderr stats line in pipe mode
OMNI_OUTPUT_JSONJSON output from the pipe path
OMNI_EXPORT_CSVExport session data as CSV at session end

Build and internal

Not for setting by hand. Listed so that seeing one in a stack trace or a generated config is not a mystery.

variableset by
OMNI_BINWritten into the generated Hermes plugin, naming the binary path
OMNI_CMDThe command being processed, falling back to CMD
OMNI_GIT_HASH, OMNI_BUILD_DATEStamped at build time, reported by omni version
OMNI_UNRELEASED_ENTRIESComputed by build.rs from CHANGELOG.md, so a binary built from an untagged tree says so in omni doctor
OMNI_PI_PACKAGE_SOURCEPackage source for the Pi agent integration
OMNI_DATA_HOME_UNSET_FOR_TESTTest fixture only

Benchmarking

variableeffect
OMNI_BENCH_DBDatabase to replay from
OMNI_BENCH_ALL=1Replay the wider population including terminal output
OMNI_BENCH_RTKPath to an rtk binary, adding the head-to-head arm

OMNI_BENCH_ALL exists so the harness can say which population it measured rather than leaving it to be inferred. Including terminal output printed 79.1% where the model-facing population printed 43.3%, on the same data.