oomniv0.3.0

agents

For agents and operators

omni is built on a shared stack of small Rust libraries, so the same binary is also an MCP server, reports its own failures to an issue board, and updates itself from tagged releases.

MCP server

omni mcp stdio serves the Model Context Protocol over standard input and output; omni mcp tools prints the same tool list as JSON without starting a server. Agents can do more than read status: send types into a device and devices shows which devices are connected.

ToolArgumentsDoes
sendtext, key, combo, scroll, relay, device, tokenCasts one command. Through a relay it reports delivery, where 0 means the device is not connected; otherwise it returns the wire line
devicesrelay, tokenLists device ids connected to a relay hub
statusName, version, update repository and capabilities
configThe resolved targets and transports
doctorprobeRead-only health checks, optionally with reachability probes
self_update_status, _check, _runSelf-update state, a check for a newer release, and an update
feedback_reportkind, summary, detail, severity, labels, …Reports a structured event through the configured route
feedback_statusThe resolved feedback route, without secrets
{ "mcpServers": { "omni": { "command": "omni", "args": ["mcp", "stdio"] } } }

The CLI stack

LibraryGives omni
mcp-cliA typed command surface that is also the MCP tool list, and JSON envelopes for --json
updatable-cliomni update and the staged-update promotion at start-up
feedback-cliStructured error, performance and feedback events, sent to standard error or a webhook

The same stack and conventions are shared with the owner's other command-line tools, so their flags, envelopes and update behaviour look alike.

Feedback to issues

Failures, performance observations and explicit feedback are emitted as events. By default they go to standard error. Pointed at a webhook, each becomes a JSON object posted to it; a receiving service, such as an agent orchestrator's bead hook, decides what happens next (here: open an issue on the omni-cli board).

{"kind":"error","component":"omni","summary":"…","detail":"…"}
VariableEffect
FEEDBACK_WEBHOOK_BASE_URLA shared hook namespace; omni posts to base/omni-cli, so each tool reports to its own path
FEEDBACK_WEBHOOK_URLAn explicit full URL, which wins over the base URL
FEEDBACK_WEBHOOK_TOKEN_ENVThe name of the variable that holds the bearer token
FEEDBACK_COMPONENT, FEEDBACK_PROJECTOverride the defaults omni and omni-cli; the project is also the path appended to the base URL

With neither URL set, events go to standard error. The token itself is never a flag or a file in the repository; only the name of the variable that holds it is configured.

Self-update

omni update checks the repository's tagged releases and stages a newer binary as omni_next. On the next start, omni promotes the staged binary atomically and runs it before doing anything else. Under Nix the service modules prefer a self-updated ~/.local/bin/omni when one exists (preferLocalBinary), so updates do not wait for a system rebuild.

omni statusomni v0.3.0update repo: harryaskham/omni-clifeedback:    true (stderr)