Use when installing, verifying or configuring OMNI, when command output carries an `[OMNI: ...]` marker, or when output looks shorter than expected. OMNI is a local hook that shortens shell output before the model reads it and hands back a handle for what it cut.
373 stars
0 votes
0 copies
0 views
Added September 23, 2026
ai-agentsshellgitdatabase
Works with
claude code
cursor
vscode
terminal
mcp
Security analysis
A100/100
Scanned September 23, 2026
$npx -y skills add fajarhide/omni --skill omni --agent claude-code
Installs into .claude/skills of the current project.
Are you the author of Omni?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/fajarhide-omni)
---
name: omni
description: "Use when installing, verifying or configuring OMNI, when command output carries an `[OMNI: ...]` marker, or when output looks shorter than expected. OMNI is a local hook that shortens shell output before the model reads it and hands back a handle for what it cut."
---
# OMNI
OMNI runs on the machine, as a hook the agent host calls. It rewrites the output
of a shell tool call before the model reads it, and every cut it makes leaves a
marker and a handle to fetch the bytes back. No account, no telemetry, nothing
about the machine leaves it.
## Install
```
brew install fajarhide/tap/omni
omni init
```
Without Homebrew, take the release archive for the platform from
<https://github.com/fajarhide/omni/releases>, pull the line for that archive out
of the `SHA256SUMS` published beside it into a file of its own, and verify it
with `sha256sum -c <that file>`, or `shasum -a 256 -c <that file>` on macOS.
Then untar and put the binary on the path. Two things decide whether the check is
worth anything. The manifest line has to reach the tool as a file rather than a
pipe, because a `grep` that matches nothing sends an empty stream and macOS reads
that as a pass, so a mistyped archive name would install unverified. And the
verification has to gate the untar with `&&`, because a shell running pasted
lines carries on past a failed one.
**Do not name a host you have not established you are running in.** With no
terminal to draw its menu on, which is the case when an agent runs it, `omni init`
configures the host it is running inside and prints which one it picked. If it
cannot name the host, a plain shell for instance, it stops and lists the flags
rather than installing somewhere nobody asked for. Only then pick one:
`--claude`, `--cursor`, `--codex`, `--gemini` and the rest under
`omni init --help`. `omni init --all` takes every supported host and also writes
a `.vscode/mcp.json` in the working directory.
The hooks land in that host's own configuration, and **the host has to restart
before they run**, so say that rather than reporting the install as active.
## Verify
```
omni doctor
```
A healthy install names the binary, the config directory, the database, and one
line per host:
```
Binary: omni v0.7.5 [LATEST]
Config dir: ~/.omni/ [OK]
Database: ~/.omni/omni.db (0 distillations, 0 sessions) [OK]
Agent Integrations:
Claude Code: Full, 5 checks [OK]
```
`Full` is the line to check: it means this host applies the rewrite, so the model
reads shortened output. `MCP-only` means memory and session state and no shell
distillation. `omni doctor --fix` repairs what it can, and reports what it could
not rather than claiming success.
## Reading a marker
A marker means bytes were cut and can be fetched back. Do not treat the shortened
output as the whole output, and do not write a file back from output that carries
one.
| marker | what happened |
| --- | --- |
| `[OMNI: 40 lines omitted, omni retrieve <handle> for full output]` | the distiller kept the signal and archived the rest |
| `[OMNI: 40 lines already shown, omni retrieve <handle>]` | those lines are in this session's context already |
| `[OMNI: identical to the 40 lines already shown, omni retrieve <handle>]` | the whole re-run matched an earlier one |
| `[OMNI: 40 lines not shown here, omni retrieve <handle>]` | another session in this project saw them and **this one never did**, so retrieve before relying on them |
| `[OMNI: identical to 40 lines from an earlier session, none shown here, omni retrieve <handle>]` | the whole reply matched an earlier session's, and none of it arrived here |
| `[OMNI: 2 sensitive value(s) redacted]` | values under a key that names a credential |
Pull the full bytes with the command the marker prints:
```
omni retrieve <handle>
```
The `omni_retrieve` MCP tool does the same without a shell. Reach for either
whenever the answer depends on what was cut: a count, an exact line, or a file
being rewritten from what was read.
## When output looks wrong rather than short
Corrupted output, a success reported for something that failed, or a marker
written into a file is a bug, not compression. Capture the command and its output
and file it at <https://github.com/fajarhide/omni/issues>, then get a clean copy
by running the command through `omni exec` with the pipeline off:
```
OMNI_PASSTHROUGH=1 omni exec <the command>
```