mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-05-02 00:00:23 +00:00
Merged PRs: - #582 — model prefix stripping option (closes #568) - #581 — npm publish workflow fix (refs #579) Local changes: - Restored stashed i18n, CLI tools, and maintenance banner updates - 926 tests passing
344 lines
9.9 KiB
Markdown
344 lines
9.9 KiB
Markdown
# CLI Tools Setup Guide — OmniRoute
|
|
|
|
This guide explains how to install and configure all supported AI coding CLI tools
|
|
to use **OmniRoute** as the unified backend, giving you centralized key management,
|
|
cost tracking, model switching, and request logging across every tool.
|
|
|
|
---
|
|
|
|
## How It Works
|
|
|
|
```
|
|
Claude / Codex / OpenCode / Cline / KiloCode / Continue / Kiro / Cursor / Copilot
|
|
│
|
|
▼ (all point to OmniRoute)
|
|
http://YOUR_SERVER:20128/v1
|
|
│
|
|
▼ (OmniRoute routes to the right provider)
|
|
Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ...
|
|
```
|
|
|
|
**Benefits:**
|
|
|
|
- One API key to manage all tools
|
|
- Cost tracking across all CLIs in the dashboard
|
|
- Model switching without reconfiguring every tool
|
|
- Works locally and on remote servers (VPS)
|
|
|
|
---
|
|
|
|
## Supported Tools (Dashboard Source of Truth)
|
|
|
|
The dashboard cards in `/dashboard/cli-tools` are generated from `src/shared/constants/cliTools.ts`.
|
|
Current list (v3.0.0-rc.16):
|
|
|
|
| Tool | ID | Command | Setup Mode | Install Method |
|
|
| ---------------- | ------------- | ------------ | ---------- | -------------- |
|
|
| **Claude Code** | `claude` | `claude` | env | npm |
|
|
| **OpenAI Codex** | `codex` | `codex` | custom | npm |
|
|
| **Factory Droid**| `droid` | `droid` | custom | bundled/CLI |
|
|
| **OpenClaw** | `openclaw` | `openclaw` | custom | bundled/CLI |
|
|
| **Cursor** | `cursor` | app | guide | desktop app |
|
|
| **Cline** | `cline` | `cline` | custom | npm |
|
|
| **Kilo Code** | `kilo` | `kilocode` | custom | npm |
|
|
| **Continue** | `continue` | extension | guide | VS Code |
|
|
| **Antigravity** | `antigravity` | internal | mitm | OmniRoute |
|
|
| **GitHub Copilot**| `copilot` | extension | custom | VS Code |
|
|
| **OpenCode** | `opencode` | `opencode` | guide | npm |
|
|
| **Kiro AI** | `kiro` | app/cli | mitm | desktop/CLI |
|
|
|
|
### CLI fingerprint sync (Agents + Settings)
|
|
|
|
`/dashboard/agents` and `Settings > CLI Fingerprint` use `src/shared/constants/cliCompatProviders.ts`.
|
|
This keeps provider IDs aligned with CLI cards and legacy IDs.
|
|
|
|
| CLI ID | Fingerprint Provider ID |
|
|
| ------ | ----------------------- |
|
|
| `kilo` | `kilocode` |
|
|
| `copilot` | `github` |
|
|
| `claude` / `codex` / `antigravity` / `kiro` / `cursor` / `cline` / `opencode` / `droid` / `openclaw` | same ID |
|
|
|
|
Legacy IDs still accepted for compatibility: `copilot`, `kimi-coding`, `qwen`.
|
|
|
|
---
|
|
|
|
## Step 1 — Get an OmniRoute API Key
|
|
|
|
1. Open the OmniRoute dashboard → **API Manager** (`/dashboard/api-manager`)
|
|
2. Click **Create API Key**
|
|
3. Give it a name (e.g. `cli-tools`) and select all permissions
|
|
4. Copy the key — you'll need it for every CLI below
|
|
|
|
> Your key looks like: `sk-xxxxxxxxxxxxxxxx-xxxxxxxxx`
|
|
|
|
---
|
|
|
|
## Step 2 — Install CLI Tools
|
|
|
|
All npm-based tools require Node.js 18+:
|
|
|
|
```bash
|
|
# Claude Code (Anthropic)
|
|
npm install -g @anthropic-ai/claude-code
|
|
|
|
# OpenAI Codex
|
|
npm install -g @openai/codex
|
|
|
|
# OpenCode
|
|
npm install -g opencode-ai
|
|
|
|
# Cline
|
|
npm install -g cline
|
|
|
|
# KiloCode
|
|
npm install -g kilocode
|
|
|
|
# Kiro CLI (Amazon — requires curl + unzip)
|
|
apt-get install -y unzip # on Debian/Ubuntu
|
|
curl -fsSL https://cli.kiro.dev/install | bash
|
|
export PATH="$HOME/.local/bin:$PATH" # add to ~/.bashrc
|
|
```
|
|
|
|
**Verify:**
|
|
|
|
```bash
|
|
claude --version # 2.x.x
|
|
codex --version # 0.x.x
|
|
opencode --version # x.x.x
|
|
cline --version # 2.x.x
|
|
kilocode --version # x.x.x (or: kilo --version)
|
|
kiro-cli --version # 1.x.x
|
|
```
|
|
|
|
---
|
|
|
|
## Step 3 — Set Global Environment Variables
|
|
|
|
Add to `~/.bashrc` (or `~/.zshrc`), then run `source ~/.bashrc`:
|
|
|
|
```bash
|
|
# OmniRoute Universal Endpoint
|
|
export OPENAI_BASE_URL="http://localhost:20128/v1"
|
|
export OPENAI_API_KEY="sk-your-omniroute-key"
|
|
export ANTHROPIC_BASE_URL="http://localhost:20128/v1"
|
|
export ANTHROPIC_API_KEY="sk-your-omniroute-key"
|
|
export GEMINI_BASE_URL="http://localhost:20128/v1"
|
|
export GEMINI_API_KEY="sk-your-omniroute-key"
|
|
```
|
|
|
|
> For a **remote server** replace `localhost:20128` with the server IP or domain,
|
|
> e.g. `http://192.168.0.15:20128`.
|
|
|
|
---
|
|
|
|
## Step 4 — Configure Each Tool
|
|
|
|
### Claude Code
|
|
|
|
```bash
|
|
# Via CLI:
|
|
claude config set --global api-base-url http://localhost:20128/v1
|
|
|
|
# Or create ~/.claude/settings.json:
|
|
mkdir -p ~/.claude && cat > ~/.claude/settings.json << EOF
|
|
{
|
|
"apiBaseUrl": "http://localhost:20128/v1",
|
|
"apiKey": "sk-your-omniroute-key"
|
|
}
|
|
EOF
|
|
```
|
|
|
|
**Test:** `claude "say hello"`
|
|
|
|
---
|
|
|
|
### OpenAI Codex
|
|
|
|
```bash
|
|
mkdir -p ~/.codex && cat > ~/.codex/config.yaml << EOF
|
|
model: auto
|
|
apiKey: sk-your-omniroute-key
|
|
apiBaseUrl: http://localhost:20128/v1
|
|
EOF
|
|
```
|
|
|
|
**Test:** `codex "what is 2+2?"`
|
|
|
|
---
|
|
|
|
### OpenCode
|
|
|
|
```bash
|
|
mkdir -p ~/.config/opencode && cat > ~/.config/opencode/config.toml << EOF
|
|
[provider.openai]
|
|
base_url = "http://localhost:20128/v1"
|
|
api_key = "sk-your-omniroute-key"
|
|
EOF
|
|
```
|
|
|
|
**Test:** `opencode`
|
|
|
|
---
|
|
|
|
### Cline (CLI or VS Code)
|
|
|
|
**CLI mode:**
|
|
|
|
```bash
|
|
mkdir -p ~/.cline/data && cat > ~/.cline/data/globalState.json << EOF
|
|
{
|
|
"apiProvider": "openai",
|
|
"openAiBaseUrl": "http://localhost:20128/v1",
|
|
"openAiApiKey": "sk-your-omniroute-key"
|
|
}
|
|
EOF
|
|
```
|
|
|
|
**VS Code mode:**
|
|
Cline extension settings → API Provider: `OpenAI Compatible` → Base URL: `http://localhost:20128/v1`
|
|
|
|
Or use the OmniRoute dashboard → **CLI Tools → Cline → Apply Config**.
|
|
|
|
---
|
|
|
|
### KiloCode (CLI or VS Code)
|
|
|
|
**CLI mode:**
|
|
|
|
```bash
|
|
kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key
|
|
```
|
|
|
|
**VS Code settings:**
|
|
|
|
```json
|
|
{
|
|
"kilo-code.openAiBaseUrl": "http://localhost:20128/v1",
|
|
"kilo-code.apiKey": "sk-your-omniroute-key"
|
|
}
|
|
```
|
|
|
|
Or use the OmniRoute dashboard → **CLI Tools → KiloCode → Apply Config**.
|
|
|
|
---
|
|
|
|
### Continue (VS Code Extension)
|
|
|
|
Edit `~/.continue/config.yaml`:
|
|
|
|
```yaml
|
|
models:
|
|
- name: OmniRoute
|
|
provider: openai
|
|
model: auto
|
|
apiBase: http://localhost:20128/v1
|
|
apiKey: sk-your-omniroute-key
|
|
default: true
|
|
```
|
|
|
|
Restart VS Code after editing.
|
|
|
|
---
|
|
|
|
### Kiro CLI (Amazon)
|
|
|
|
```bash
|
|
# Login to your AWS/Kiro account:
|
|
kiro-cli login
|
|
|
|
# The CLI uses its own auth — OmniRoute is not needed as backend for Kiro CLI itself.
|
|
# Use kiro-cli alongside OmniRoute for other tools.
|
|
kiro-cli status
|
|
```
|
|
|
|
---
|
|
|
|
### Cursor (Desktop App)
|
|
|
|
> **Note:** Cursor routes requests through its cloud. For OmniRoute integration,
|
|
> enable **Cloud Endpoint** in OmniRoute Settings and use your public domain URL.
|
|
|
|
Via GUI: **Settings → Models → OpenAI API Key**
|
|
|
|
- Base URL: `https://your-domain.com/v1`
|
|
- API Key: your OmniRoute key
|
|
|
|
---
|
|
|
|
## Dashboard Auto-Configuration
|
|
|
|
The OmniRoute dashboard automates configuration for most tools:
|
|
|
|
1. Go to `http://localhost:20128/dashboard/cli-tools`
|
|
2. Expand any tool card
|
|
3. Select your API key from the dropdown
|
|
4. Click **Apply Config** (if tool is detected as installed)
|
|
5. Or copy the generated config snippet manually
|
|
|
|
---
|
|
|
|
## Built-in Agents: Droid & OpenClaw
|
|
|
|
**Droid** and **OpenClaw** are AI agents built directly into OmniRoute — no installation needed.
|
|
They run as internal routes and use OmniRoute's model routing automatically.
|
|
|
|
- Access: `http://localhost:20128/dashboard/agents`
|
|
- Configure: same combos and providers as all other tools
|
|
- No API key or CLI install required
|
|
|
|
---
|
|
|
|
## Available API Endpoints
|
|
|
|
| Endpoint | Description | Use For |
|
|
| -------------------------- | ----------------------------- | --------------------------- |
|
|
| `/v1/chat/completions` | Standard chat (all providers) | All modern tools |
|
|
| `/v1/responses` | Responses API (OpenAI format) | Codex, agentic workflows |
|
|
| `/v1/completions` | Legacy text completions | Older tools using `prompt:` |
|
|
| `/v1/embeddings` | Text embeddings | RAG, search |
|
|
| `/v1/images/generations` | Image generation | DALL-E, Flux, etc. |
|
|
| `/v1/audio/speech` | Text-to-speech | ElevenLabs, OpenAI TTS |
|
|
| `/v1/audio/transcriptions` | Speech-to-text | Deepgram, AssemblyAI |
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
| Error | Cause | Fix |
|
|
| ------------------------- | ----------------------- | ------------------------------------------ |
|
|
| `Connection refused` | OmniRoute not running | `pm2 start omniroute` |
|
|
| `401 Unauthorized` | Wrong API key | Check in `/dashboard/api-manager` |
|
|
| `No combo configured` | No active routing combo | Set up in `/dashboard/combos` |
|
|
| `invalid model` | Model not in catalog | Use `auto` or check `/dashboard/providers` |
|
|
| CLI shows "not installed" | Binary not in PATH | Check `which <command>` |
|
|
| `kiro-cli: not found` | Not in PATH | `export PATH="$HOME/.local/bin:$PATH"` |
|
|
|
|
---
|
|
|
|
## Quick Setup Script (One Command)
|
|
|
|
```bash
|
|
# Install all CLIs and configure for OmniRoute (replace with your key and server URL)
|
|
OMNIROUTE_URL="http://localhost:20128/v1"
|
|
OMNIROUTE_KEY="sk-your-omniroute-key"
|
|
|
|
npm install -g @anthropic-ai/claude-code @openai/codex opencode-ai cline kilocode
|
|
|
|
# Kiro CLI
|
|
apt-get install -y unzip 2>/dev/null; curl -fsSL https://cli.kiro.dev/install | bash
|
|
|
|
# Write configs
|
|
mkdir -p ~/.claude ~/.codex ~/.config/opencode ~/.continue
|
|
|
|
cat > ~/.claude/settings.json <<< "{\"apiBaseUrl\":\"$OMNIROUTE_URL\",\"apiKey\":\"$OMNIROUTE_KEY\"}"
|
|
cat > ~/.codex/config.yaml <<< "model: auto\napiKey: $OMNIROUTE_KEY\napiBaseUrl: $OMNIROUTE_URL"
|
|
cat >> ~/.bashrc << EOF
|
|
export OPENAI_BASE_URL="$OMNIROUTE_URL"
|
|
export OPENAI_API_KEY="$OMNIROUTE_KEY"
|
|
export ANTHROPIC_BASE_URL="$OMNIROUTE_URL"
|
|
export ANTHROPIC_API_KEY="$OMNIROUTE_KEY"
|
|
EOF
|
|
|
|
source ~/.bashrc
|
|
echo "✅ All CLIs installed and configured for OmniRoute"
|
|
```
|