0mni
A TUI coding agent that combines Claude, Gemini, and Codex into a single CLI. Uses your locally installed coding agents as the runtime — no API keys needed.
┌─────────────────────────────────────────┐
│ 0mni v0.1.0 · ● claude-sonnet-4-6 │
├─────────────────────────────────────────┤
│ │
│ You: Fix the login bug in auth.ts │
│ │
│ ● Claude: I'll look at auth.ts... │
│ → read_file src/auth.ts │
│ → edit_file src/auth.ts │
│ │
│ Done. Fixed the null check on line 42. │
│ │
├─────────────────────────────────────────┤
│ > _ │
└─────────────────────────────────────────┘
Install
npm install -g omni-cli
Or run directly:
npx omni-cli "fix the failing tests"
Prerequisites
You need at least one of these coding agents installed and authenticated:
0mni uses your existing CLI authentication. No separate API keys required.
Usage
omni
omni "explain this codebase"
omni --provider claude "fix the bug"
omni -p gemini "search for the error"
omni -p codex "refactor the auth module"
omni --auto "find and fix the performance issue"
omni -m claude-opus-4-6 "design the new API"
omni --yolo "fix all lint errors"
Slash Commands
Inside the TUI, use these commands:
/claude | Switch to Claude |
/gemini | Switch to Gemini |
/codex | Switch to Codex |
/auto | Toggle auto-routing |
/model <name> | Set a specific model |
/clear | Clear conversation |
/cost | Show token usage and cost |
/help | Show all commands |
Auto-Routing
When --auto is enabled, omni classifies your task and routes to the best provider:
| Complex reasoning, debugging | Claude | Best at multi-step reasoning |
| Code generation, review | Claude | Strong code understanding |
| Search, web queries | Gemini | Built-in Google Search grounding |
| Multimodal (images) | Gemini | Best multimodal support |
| Refactoring | Codex | Optimized for code transforms |
| Simple Q&A | Claude Haiku | Fast and cheap |
How It Works
0mni is a TUI wrapper that spawns your installed coding agents as subprocesses:
0mni TUI (React + Ink)
│
├── claude -p "prompt" --output-format stream-json
├── gemini -p "prompt" --output-format stream-json
└── codex exec "prompt" --json
Each CLI handles its own:
- Tool execution (file editing, shell commands, search)
- Authentication (OAuth, API keys)
- Sandboxing and permissions
omni parses the streaming JSON output and displays it in a unified terminal UI.
Skills
0mni supports skills.sh for extensibility:
omni skills add vercel-labs/agent-skills
omni skills add anthropic/skills
omni skills list
Configuration
Create .omni/config.toml in your project or ~/.config/omni/config.toml globally:
defaultProvider = "claude"
autoRoute = false
yolo = false
[models]
claude = "claude-sonnet-4-6"
gemini = "gemini-2.5-flash"
codex = "gpt-5.4"
License
MIT