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

What it costs

Not zero. Here is the whole bill.

Latency

Median of 12 runs each, release binary, measured end to end through the post-hook:

fresh database205 MB database
git status (496 B)21.1 ms60.7 ms
cargo test (16.5 KB)24.5 ms64.5 ms

Payload size barely matters. Database size does, and that is the number to watch as your archive grows.

The distillation itself is single-digit milliseconds. Almost all of the rest is the archive write. Earlier releases measured 82 ms and 276 ms on the same machine, and the difference was three fixes rather than faster hardware: a tokenizer loaded per command for a reporting column, 249 line-filter regexes compiled whether or not their filter matched, and a connection pool opening four SQLite handles in a process that exits after one payload.

Measure latency by removal, not by a unit-test timer. A microbenchmark in the suite reported 66 ms for work that an A/B on the release binary put at 34.3 ms. Only the second kind of number is quotable.

Memory

Flat. The pipeline works on streams, so a 20,000 line log does not cost more resident memory than a short one.

Disk

One SQLite file at ~/.omni/omni.db.

Archived content is capped at 64 KB per block. That cap came from a measurement: archiving every lossy distillation cost 83.1 MB over 30 days, and the cap brought it to 13.3 MB while still covering 3,604 of 3,657 rows.

Benchmark traces are pruned at seven days (OMNI_TRACE_RETENTION_DAYS). That prune is why no published figure can be re-derived a week after it was measured.

Tokens

The thing you came for, and the honest version has two halves.

What it saves. Over 6,656 real commands on 0.7.3: 14.9% fewer bytes across the whole mix. By class, the spread is enormous:

classfilterswith the ledger
build and test76.9%78.0%
file reads0.0%25.0%
git, gh4.4%22.1%
search4.8%13.3%
infra4.4%8.2%
everything else0.6%6.9%

What it costs. Every marker is bytes the agent pays for, and 97.3% of calls save nothing while still paying the pipeline’s latency. On short output the marker can exceed the saving outright.

There is also a cost no byte count can express: a retrieval. When the agent needs content behind a handle, it pays a round trip it would not have paid if the bytes had simply arrived. Project-scope folds carry three times the profitability bar for exactly that reason.

The cost that is not OMNI’s to pay

On a flat-rate plan, compression does not reduce a bill at all. What it buys is session lifetime and fewer re-runs. Prompt-cache reads bill about a tenth of fresh input, so bytes saved once are not dollars saved per turn.

This is why the project’s own primary measure is context-window pressure for the same job, and reduction percentage is a diagnostic rather than a headline. See Where OMNI is going.

If it panics

It fails open. The raw output passes through and your agent never sees an error. Every hook runs inside catch_unwind, and a database that will not open costs session context rather than the whole pipeline.