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

MCP tools

omni init registers OMNI as an MCP server, which gives the agent tools it can call itself without going through you. This page describes all 25. Your host is told about a subset.

What your host is told about

Tool definitions sit in the prefix of every request, so a tool nobody calls is re-read on every request of every session rather than paid for once. OMNI advertises the set your host’s tier can use:

tieradvertised
Fullomni_retrieve, omni_explain_savings
Handoff-first, and any host OMNI does not recognisethose two, plus omni_remember, omni_recall, omni_run, omni_find_noise, omni_context_breakdown, omni_history
MCP-onlyomni_remember, omni_recall, omni_retrieve, omni_knowledge, plus omni_run: no hook means the host’s own tool output is never rewritten, so omni_run is the only path by which the model reads less

Full-tier hosts get the shortest list because they are the ones whose shell OMNI already hooks. Measured across 256 recorded sessions, those two tools carry 138 of the 149 calls in 467 bytes, while the other six cost 1,631 bytes for 11 calls in the life of the corpus. A Handoff-first host never has its built-in tool output rewritten, so MCP is the only door OMNI has there and nothing is priced away.

On Claude Code the shortest list is still not free, and the bytes are the smaller half of why: the host discards the whole prompt cache when an MCP server connects or disconnects with its tools loaded. Supported agents has what that means and how to run the hooks without it.

An unadvertised tool is not callable on that tier either, so the way back is the CLI or the override:

toolon a Full-tier host
omni_runomni exec <command>
omni_rememberomni remember '<fact>'
omni_context_breakdownomni stats --view context
omni_historyomni stats --view detail, which folds repeated commands into one row with a count instead of listing every call
omni_recall, omni_find_noiseno CLI equivalent; OMNI_MCP_TOOLS=all

OMNI_MCP_TOOLS=all advertises all 25, and omni doctor says which set is in force and which host it resolved:

  MCP tools:      2 of 25 advertised to claude_code (OMNI_MCP_TOOLS=all restores the rest)

Confirm the list against your own binary rather than this page:

{ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"p","version":"1"}}}'
  echo '{"jsonrpc":"2.0","method":"notifications/initialized"}'
  echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'; } \
| omni --mcp | tail -1 | jq -r '.result.tools[].name'

Getting content back

toolwhat it does
omni_retrieveRetrieve full content a marker omitted, by its handle
omni_runRun a shell command and return distilled output
omni_signal_extractExtract signal from raw text, without the hook pipeline

omni_run matters most on hosts that cannot rewrite their built-in shell tool. There, it is the only path to distilled output, which is why omni init --cursor installs a rule telling the agent to prefer it.

Understanding what OMNI did

toolwhat it does
omni_explain_savingsRoute, filter, input and output bytes, savings % per recent command
omni_historyRecent distillations with per-call savings and ratios
omni_context_breakdownToken breakdown by source for the current turn
omni_densityHow much signal against noise in a piece of text
omni_budgetToken budget usage and compression efficiency for this session

These four are the right answer to “is OMNI helping here”. Pull the numbers rather than forming an impression.

Memory

toolwhat it does
omni_rememberStore a decision, gotcha or constraint
omni_recallSemantic search across engrams, knowledge and distillation history
omni_knowledgeQuery or store cross-session project knowledge
omni_insightTop recurring issues and error patterns across the project
omni_adaptive_insightsRetrieval patterns, as a judgement on distillation effectiveness
omni_handoffExport session state as portable markdown, no network needed

omni_handoff is MCP only. The CLI subcommand of that name was removed.

toolwhat it does
omni_sessionSession state: status, context, clear
omni_searchSearch this session’s history
omni_queryQuery distillation history with the fixed query forms
omni_agentsOther agents currently active on this project

Tuning

toolwhat it does
omni_find_noiseAnalyse recent raw traces for repetitive noise

Advisory only, and the learner treats “repeated” as “noise”. It has suggested stripping ^metadata:, ^spec:, code fences and ^\[stderr\], which are structure and the error channel. Never paste its output anywhere without reading it line by line.

Loops

toolwhat it does
omni_loop_statusOne-call status check for an orchestrator before each iteration
omni_loop_memoryRead and write loop memory that survives session restarts
omni_set_loop_contextUpdate loop context dynamically
omni_budget_statusBudget status for this iteration. Call before expensive work.
omni_verifyAs a checker sub-agent, evaluate the maker agent’s recent work

See Loop engineering.

A tool that is not one

omni_auto_noise appears as a string in the server source and is not a tool. It is a filter name passed to the TOML generator. Calling it returns -32602 tool not found.

It has been miscounted before: a source grep for "omni_*" returns 27, and 27 is therefore wrong wherever it appears. Run the tools/list call above for the count.

What left the surface

omni_context was advertised until 0.7.7 and had never been called once across 253 recorded sessions, so it cost 189 bytes in the prefix of every request for a capability nobody reached for. It is omni context <file> now, which costs nothing per request:

omni context src/ledger/mod.rs

An agent can still reach it through omni_run.