Omni is a terminal-based AI coding assistant: it reads your codebase, edits files, runs commands, and finishes programming tasks through natural language — with safety guardrails on every step.
- Install (pick one):
# Native binary, zero dependencies (includes full TUI)
curl -fsSL https://raw.githubusercontent.com/jacksonon/omni/main/scripts/install.sh | sh
# Or: npm package (console, requires Node >= 18)
npm install -g ./omni-<version>.tgz # built via `npm pack`- Set your API key (any OpenAI-compatible endpoint works):
export OMNI_API_KEY=sk-xxx
export OMNI_BASE_URL=https://api.deepseek.com/v1 # optional, defaults to OpenAI- Run it:
omni "show me the structure of this directory" # single task
omni # interactive sessionNo key at hand? npm run mock starts a local mock API for keyless end-to-end runs.
| Command | What it is |
|---|---|
omni |
Full-screen TUI: scrollable history, Markdown rendering, click-to-expand tool cards, / commands + @ file mentions |
omni mini |
Pure terminal CLI (Codex CLI style): same runtime, plain scrollback lines, Ctrl+T for the full transcript |
omni exec "<task>" |
Headless mode for scripts/pipes/CI: stdout carries only the result (--output-format text|json|stream-json) |
omni web |
Local backend (REST + SSE) + browser UI, multi-session sidebar |
| Desktop app | Standalone Electron app (mac/win/linux) from GitHub Releases, no Node needed |
This is a small, reproducible smoke benchmark — a sanity check that the loop, tools and streaming path work end-to-end. It is not a statistically rigorous evaluation and its numbers are not comparable to SWE-bench / Terminal-Bench style leaderboards.
npx tsx scripts/eval/run-headless-eval.ts --real --repeat 5 # real API (spends tokens; needs OMNI_API_KEY)
npm run eval:mock # deterministic, offline, CI-safe (no key)
npm run eval # broader task setSnapshot — model deepseek-v4.1-flash (OpenRouter pricing: in $0.15 / out $0.6 / cache $0.003 per 1M) · run 2026-10-12 · N = 5 runs × 3 smoke tasks.
| Task | Pass | Duration p50/p90/p99 | TTFT p50/p90/p99 | Avg tokens | Avg cost |
|---|---|---|---|---|---|
| Answer identity | 5/5 | 2535/4008/4008ms | 2430/3872/3872ms | 16,654 | $0.0006 |
| Arithmetic + tool | 5/5 | 2926/3360/3360ms | 2261/2625/2625ms | 16,727 | $0.0001 |
| Read file + answer | 5/5 | 6893/7415/7415ms | 2155/3106/3106ms | 36,126 | $0.0003 |
| Total | 15/15 | 3171/7224/7415ms | 2277/3106/3872ms | 347,534 | $0.0003/run |
How to read this honestly:
- N = 5 is tiny. In the table above
p99equals the max observed value, so it is a "worst case", not a true 99th percentile. The reporter now prints median + min–max for small samples and only shows p90/p99 onceN ≥ 20. - These are three trivial tasks (identity, arithmetic, one file read) — they exercise plumbing, not coding ability. Do not extrapolate them into a success-rate claim.
- Absolute latency/token/cost depend on the provider, gateway, region and prompt-cache warmth; only the command, model and task set are fixed. Prompt caching dominates here: warm runs cost ~$0.00006 (≈99% cache hits) vs ~$0.0025 cold (~40×).
- The raw structured report is written to
eval-report.json;npm run eval:mockis the deterministic offline variant suitable for CI.
Background reading (different tasks and harnesses — not a like-for-like comparison): the Berkeley HarnessTax study (Sep 2026, 21 model×harness pairs) found harness choice moves success rate only ±2–5% but cost up to ~2×; the Terminal-Bench leaderboard (tbench.ai) tracks harness×model success rates on real coding tasks.
- Agent loop: streams the model → runs tool calls in parallel → feeds results back; failures are returned to the model so it fixes its own mistakes
- Tools: files (
read/write/edit),search_code,run_command,skill,lspnavigation, plus runtime tools (delegatesubagents, MCP,web_fetch/web_search,ask_user, team board) - Safety first: permission tiers (
full/safe/ask/read), dangerous-command confirmation, approval UI, audit log, workspace trust, OS-level sandbox - Memory & sessions:
AGENTS.mdproject/global memory cascade, JSONL session persistence with resume/fork/rewind - Multi-model:
providersgroups (one gateway, many models),/modelswitching, Completions + Responses protocols, reasoning levels - Extensible: MCP servers, lifecycle hooks, skills, plugins, headless
exec/mcp-serverfor CI
JSON/JSONC, precedence: defaults → global (~/.config/omni/omni.json) → project (omni.json) → env vars → CLI args.
Full field reference: omni.example.jsonc.
| Doc | Content |
|---|---|
Doc/Usage-Guide.md · Doc/使用指导.md |
User manual (setup, commands, MCP, hooks, skills, FAQ) |
Doc/architecture.md · Doc/架构.md |
Module-by-module architecture reference |
Doc/Headless-Protocol.md |
Headless exec / mcp-server protocol |
Doc/roadmap.md |
Roadmap |
npm run dev -- "<task>" # run from source (tsx)
npm run typecheck # type checking
npm run build # typecheck + compile + bundle
npm run eval:mock # offline evaluation (deterministic, CI-friendly)BSD-3-Clause. Author: Jackson — contact via GitHub Issues or wang542413041@gmail.com.


{ "model": "deepseek-chat", "permission": "safe", "providers": { "bigmodel": { "baseURL": "https://open.bigmodel.cn/api/paas/v4", "apiKey": "{env:GLM_KEY}", "models": { "glm-4-flash": {} } } } }