OMNI is fundamentally a fast, highly-optimized Rust binary. It sits entirely locally between your terminal and your AI agent (like Claude Code, Cursor, or Cline).
But what actually happens when an agent executes a command? How does OMNI decide what is noise and what is signal?
It goes through our lightning-fast 6-Stage Pipeline.
Stage 1: Normalize
AI agents send commands and outputs in drastically different formats. Claude Code uses {stdout, stderr}, Cursor uses {content: [...]}, and Codex uses {action, result}.
OMNI first catches this payload and normalizes it into a standard NormalizedHook structure, giving us a clean slate.
Stage 2: Tool Router
Before analysis, OMNI routes the data.
- If the tool is
Bash, it goes to the main pipeline. - If it’s a
ReadFilecommand, it goes to a specialized graph context distiller. - Edits and file creations bypass distillation completely to ensure code integrity.
Stage 3: TOML Filters (Priority Override)
We check our extensive registry of .toml filters. If a developer has defined a custom rule (e.g., “always ignore warnings from legacy_module”), this filter takes precedence and skips the heavy Rust pipeline. This makes OMNI infinitely extensible.
Stage 4: The Scorer
This is where the magic happens. Every single line of output is evaluated and assigned a score from 0.0 to 1.0.
- Critical (0.85–1.0): Errors, exceptions, panics,
FAILED. - Important (0.60–0.84): Warnings, deprecations.
- Noise (0.0–0.29): Downloading, Compiling, progress bars.
Crucially, the Scorer is context-aware. If a line mentions a file that is “hot” (frequently edited in this session), its score is artificially boosted so the agent doesn’t miss it.
Stage 5: Collapse
Before finalizing, OMNI collapses repetitive noise. Two hundred lines of Compiling xxx are algorithimically folded into a single line: [Compiling: 200 packages].
Stage 6: Distiller Dispatch
Finally, the output is handed to one of 12 specialized Distillers based on the command. A cargo command goes to the build.rs distiller. A kubectl command goes to cloud.rs. These specialized modules format the final output perfectly for LLM consumption.
The Route System
The final output is assigned a route:
- Keep: Clean signal, sent to the agent.
- Rewind: Too much noise. The raw output is saved locally to SQLite (RewindStore). The agent is given a hash (e.g.,
omni_retrieve("a3f8")) and can request the full logs via MCP if it really needs them.
All of this happens in less time than it takes your terminal to render the text. Pure signal, zero lag.