mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-26 09:52:11 +03:00
feat(skills): add 5 CLI skills + AgentSkills / OmniSkills dashboard pages (#2284)
feat(skills): add 5 CLI skills + AgentSkills / OmniSkills dashboard pages Integrated into release/v3.8.0
This commit is contained in:
committed by
GitHub
parent
bb0ec76f24
commit
0edf90bb5a
@@ -15,21 +15,26 @@ through `$OMNIROUTE_URL/v1/...` with `Authorization: Bearer $OMNIROUTE_KEY`.
|
||||
|
||||
## Skills index
|
||||
|
||||
| Capability | Manifest |
|
||||
| ------------------------ | ---------------------------------------------------------------- |
|
||||
| Entry point + setup | [omniroute/SKILL.md](omniroute/SKILL.md) |
|
||||
| Chat / code-gen | [omniroute-chat/SKILL.md](omniroute-chat/SKILL.md) |
|
||||
| Image generation | [omniroute-image/SKILL.md](omniroute-image/SKILL.md) |
|
||||
| Text-to-speech | [omniroute-tts/SKILL.md](omniroute-tts/SKILL.md) |
|
||||
| Speech-to-text | [omniroute-stt/SKILL.md](omniroute-stt/SKILL.md) |
|
||||
| Embeddings | [omniroute-embeddings/SKILL.md](omniroute-embeddings/SKILL.md) |
|
||||
| Web search | [omniroute-web-search/SKILL.md](omniroute-web-search/SKILL.md) |
|
||||
| Web fetch (URL→markdown) | [omniroute-web-fetch/SKILL.md](omniroute-web-fetch/SKILL.md) |
|
||||
| MCP server (37 tools) | [omniroute-mcp/SKILL.md](omniroute-mcp/SKILL.md) |
|
||||
| A2A protocol | [omniroute-a2a/SKILL.md](omniroute-a2a/SKILL.md) |
|
||||
| Routing & combos | [omniroute-routing/SKILL.md](omniroute-routing/SKILL.md) |
|
||||
| Token compression | [omniroute-compression/SKILL.md](omniroute-compression/SKILL.md) |
|
||||
| Monitoring & health | [omniroute-monitoring/SKILL.md](omniroute-monitoring/SKILL.md) |
|
||||
| Capability | Manifest |
|
||||
| ------------------------ | -------------------------------------------------------------------- |
|
||||
| Entry point + setup | [omniroute/SKILL.md](omniroute/SKILL.md) |
|
||||
| Chat / code-gen | [omniroute-chat/SKILL.md](omniroute-chat/SKILL.md) |
|
||||
| Image generation | [omniroute-image/SKILL.md](omniroute-image/SKILL.md) |
|
||||
| Text-to-speech | [omniroute-tts/SKILL.md](omniroute-tts/SKILL.md) |
|
||||
| Speech-to-text | [omniroute-stt/SKILL.md](omniroute-stt/SKILL.md) |
|
||||
| Embeddings | [omniroute-embeddings/SKILL.md](omniroute-embeddings/SKILL.md) |
|
||||
| Web search | [omniroute-web-search/SKILL.md](omniroute-web-search/SKILL.md) |
|
||||
| Web fetch (URL→markdown) | [omniroute-web-fetch/SKILL.md](omniroute-web-fetch/SKILL.md) |
|
||||
| MCP server (37 tools) | [omniroute-mcp/SKILL.md](omniroute-mcp/SKILL.md) |
|
||||
| A2A protocol | [omniroute-a2a/SKILL.md](omniroute-a2a/SKILL.md) |
|
||||
| Routing & combos | [omniroute-routing/SKILL.md](omniroute-routing/SKILL.md) |
|
||||
| Token compression | [omniroute-compression/SKILL.md](omniroute-compression/SKILL.md) |
|
||||
| Monitoring & health | [omniroute-monitoring/SKILL.md](omniroute-monitoring/SKILL.md) |
|
||||
| CLI entry point | [omniroute-cli/SKILL.md](omniroute-cli/SKILL.md) |
|
||||
| CLI admin & lifecycle | [omniroute-cli-admin/SKILL.md](omniroute-cli-admin/SKILL.md) |
|
||||
| CLI providers & keys | [omniroute-cli-providers/SKILL.md](omniroute-cli-providers/SKILL.md) |
|
||||
| CLI cloud agents | [omniroute-cli-cloud/SKILL.md](omniroute-cli-cloud/SKILL.md) |
|
||||
| CLI evals & benchmarks | [omniroute-cli-eval/SKILL.md](omniroute-cli-eval/SKILL.md) |
|
||||
|
||||
## Format
|
||||
|
||||
|
||||
145
skills/omniroute-cli-admin/SKILL.md
Normal file
145
skills/omniroute-cli-admin/SKILL.md
Normal file
@@ -0,0 +1,145 @@
|
||||
---
|
||||
name: omniroute-cli-admin
|
||||
description: Manage the OmniRoute server lifecycle via CLI — start/stop/restart, non-interactive setup, diagnostics (omniroute doctor), backup/restore, autostart, and tunnel management. Use when the user wants to operate the OmniRoute server, automate provisioning, or troubleshoot the runtime.
|
||||
---
|
||||
|
||||
# OmniRoute — CLI Admin
|
||||
|
||||
Requires the `omniroute` CLI. See [CLI entry-point skill](https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli/SKILL.md) for install + global flags.
|
||||
|
||||
## Server lifecycle
|
||||
|
||||
```bash
|
||||
omniroute # Start server (default port 20128)
|
||||
omniroute serve # Explicit alias
|
||||
omniroute --port 3000 # Override port
|
||||
omniroute --no-open # Don't auto-open browser
|
||||
omniroute --mcp # Start as MCP server (stdio transport)
|
||||
|
||||
omniroute stop # Stop the running server
|
||||
omniroute restart # Restart the server
|
||||
|
||||
omniroute dashboard # Open dashboard in browser
|
||||
omniroute open # Alias for dashboard
|
||||
omniroute status # Runtime status (uptime, requests, providers)
|
||||
```
|
||||
|
||||
## Setup & provisioning
|
||||
|
||||
### Interactive wizard
|
||||
|
||||
```bash
|
||||
omniroute setup # Step-by-step interactive setup
|
||||
```
|
||||
|
||||
### Non-interactive (CI / Docker)
|
||||
|
||||
```bash
|
||||
omniroute setup --non-interactive \
|
||||
--password 'admin-password' \
|
||||
--add-provider \
|
||||
--provider openai \
|
||||
--api-key 'sk-...' \
|
||||
--test-provider
|
||||
```
|
||||
|
||||
Environment variables for non-interactive setup:
|
||||
|
||||
| Variable | Purpose |
|
||||
| ----------------------------- | -------------------------------------------- |
|
||||
| `OMNIROUTE_SETUP_PASSWORD` | Admin password (≥8 chars) |
|
||||
| `OMNIROUTE_PROVIDER` | Provider id (e.g. `openai`, `anthropic`) |
|
||||
| `OMNIROUTE_PROVIDER_NAME` | Display name for the connection |
|
||||
| `OMNIROUTE_PROVIDER_BASE_URL` | Optional OpenAI-compatible base URL override |
|
||||
| `OMNIROUTE_API_KEY` | Provider API key |
|
||||
| `OMNIROUTE_DEFAULT_MODEL` | Optional default model |
|
||||
| `DATA_DIR` | Override OmniRoute data directory |
|
||||
|
||||
## Diagnostics
|
||||
|
||||
```bash
|
||||
omniroute doctor # Full health check
|
||||
omniroute doctor --json # Machine-readable JSON
|
||||
omniroute doctor --no-liveness # Skip HTTP health probe
|
||||
omniroute doctor --host 0.0.0.0 # Override liveness host
|
||||
omniroute doctor --liveness-url <url> # Full URL override
|
||||
```
|
||||
|
||||
Checks performed: Config, Database, Storage/encryption, Port, Node runtime, Native binary (better-sqlite3), Memory, Server liveness.
|
||||
|
||||
Exit code is non-zero if any check fails — useful in CI:
|
||||
|
||||
```bash
|
||||
omniroute doctor --json | jq '.checks[] | select(.status=="fail")'
|
||||
```
|
||||
|
||||
## Backup & restore
|
||||
|
||||
```bash
|
||||
omniroute backup # Snapshot config + SQLite DB to ~/.omniroute/backups/
|
||||
omniroute restore # Restore from a previous snapshot (interactive picker)
|
||||
```
|
||||
|
||||
## Autostart (system tray / startup)
|
||||
|
||||
```bash
|
||||
omniroute autostart enable # Register OmniRoute as a system startup item
|
||||
omniroute autostart disable # Remove startup registration
|
||||
omniroute autostart status # Show current autostart state
|
||||
```
|
||||
|
||||
On Linux: creates a systemd user unit. On macOS: LaunchAgent plist. On Windows: registry startup entry.
|
||||
|
||||
## Tunnels (public URL)
|
||||
|
||||
Expose a local OmniRoute instance via a secure tunnel:
|
||||
|
||||
```bash
|
||||
omniroute tunnel list # List active tunnels
|
||||
omniroute tunnel create cloudflare # Start a Cloudflare Tunnel (free)
|
||||
omniroute tunnel create tailscale # Start a Tailscale funnel
|
||||
omniroute tunnel create ngrok # Start an ngrok tunnel
|
||||
omniroute tunnel stop <id> # Stop a running tunnel
|
||||
```
|
||||
|
||||
The tunnel URL is printed and can be used as `OMNIROUTE_BASE_URL` from remote machines.
|
||||
|
||||
## Config & environment
|
||||
|
||||
```bash
|
||||
omniroute config show # Display current effective configuration
|
||||
omniroute env show # List all OmniRoute environment variables
|
||||
omniroute env get <KEY> # Get a single env var value
|
||||
omniroute env set <KEY> <value> # Set an env var (temporary — until restart)
|
||||
```
|
||||
|
||||
## Recovery
|
||||
|
||||
```bash
|
||||
omniroute reset-password # Reset the admin password interactively
|
||||
omniroute reset-encrypted-columns # Dry-run: show encrypted credential columns
|
||||
omniroute reset-encrypted-columns --force # Null out encrypted credentials in SQLite
|
||||
```
|
||||
|
||||
Use `reset-encrypted-columns --force` only if `STORAGE_ENCRYPTION_KEY` was lost and you need to re-enter all provider API keys.
|
||||
|
||||
## Logs
|
||||
|
||||
```bash
|
||||
omniroute logs # Stream live request logs
|
||||
omniroute logs --json # JSON log entries
|
||||
omniroute logs --search <term> # Filter by term
|
||||
omniroute logs --follow # Tail mode (keep streaming)
|
||||
```
|
||||
|
||||
## Update
|
||||
|
||||
```bash
|
||||
omniroute update # Check for a newer version and prompt to update
|
||||
```
|
||||
|
||||
## Errors
|
||||
|
||||
- `doctor` shows `STORAGE_ENCRYPTION_KEY missing` → set the key in `.env` or run `reset-encrypted-columns --force` to wipe and re-enter credentials
|
||||
- `doctor` reports native binary fail → `npm rebuild better-sqlite3` in the OmniRoute app directory
|
||||
- `tunnel create cloudflare` hangs → ensure `cloudflared` is installed: `brew install cloudflare/cloudflare/cloudflared`
|
||||
120
skills/omniroute-cli-cloud/SKILL.md
Normal file
120
skills/omniroute-cli-cloud/SKILL.md
Normal file
@@ -0,0 +1,120 @@
|
||||
---
|
||||
name: omniroute-cli-cloud
|
||||
description: Control OmniRoute cloud agents (OpenAI Codex, Devin, Jules) from the CLI — create tasks, track status, approve plans, send messages, and manage sources. Use when the user wants to automate cloud coding agent workflows via the terminal.
|
||||
---
|
||||
|
||||
# OmniRoute — CLI Cloud Agents
|
||||
|
||||
Requires the `omniroute` CLI. See [CLI entry-point skill](https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli/SKILL.md) for install + global flags.
|
||||
|
||||
## Supported agents
|
||||
|
||||
| Agent | ID | Auth required |
|
||||
| -------------- | ------- | -------------- |
|
||||
| OpenAI Codex | `codex` | OpenAI API key |
|
||||
| Devin | `devin` | Devin API key |
|
||||
| Jules (Google) | `jules` | Google OAuth |
|
||||
|
||||
## Authenticate an agent
|
||||
|
||||
```bash
|
||||
omniroute cloud codex auth # Set / refresh Codex API key
|
||||
omniroute cloud devin auth # Set / refresh Devin API key
|
||||
omniroute cloud jules auth # OAuth login for Jules (opens browser)
|
||||
```
|
||||
|
||||
## List all agents
|
||||
|
||||
```bash
|
||||
omniroute cloud agents # Show all configured cloud agents + status
|
||||
omniroute cloud agents --json
|
||||
```
|
||||
|
||||
## Create a task
|
||||
|
||||
```bash
|
||||
omniroute cloud codex task create \
|
||||
--title "Add OAuth to the auth module" \
|
||||
--prompt "Implement Google OAuth 2.0 login in src/auth/oauth.ts"
|
||||
|
||||
omniroute cloud codex task create \
|
||||
--title "Fix test failures" \
|
||||
--prompt-file ./task-description.md # Read prompt from a file
|
||||
```
|
||||
|
||||
Same syntax for `devin` and `jules`:
|
||||
|
||||
```bash
|
||||
omniroute cloud devin task create --title "..." --prompt "..."
|
||||
omniroute cloud jules task create --title "..." --prompt "..."
|
||||
```
|
||||
|
||||
## List tasks
|
||||
|
||||
```bash
|
||||
omniroute cloud codex task list # All Codex tasks (table)
|
||||
omniroute cloud codex task list --json # JSON output
|
||||
```
|
||||
|
||||
## Get task details
|
||||
|
||||
```bash
|
||||
omniroute cloud codex task get <taskId> # Full task record
|
||||
omniroute cloud codex task status <taskId> # Status + progress only
|
||||
```
|
||||
|
||||
Task status values: `running`, `completed`, `failed`, `cancelled`.
|
||||
|
||||
## Approve a plan
|
||||
|
||||
Devin and Jules may pause for plan approval before writing code:
|
||||
|
||||
```bash
|
||||
omniroute cloud devin task approve <taskId> # Approve the proposed plan
|
||||
omniroute cloud jules task approve <taskId>
|
||||
```
|
||||
|
||||
## Send a message to a running task
|
||||
|
||||
```bash
|
||||
omniroute cloud codex task message <taskId> "Focus on the backend only, skip the UI"
|
||||
```
|
||||
|
||||
## List task sources (files touched)
|
||||
|
||||
```bash
|
||||
omniroute cloud codex task sources <taskId> # Files changed / created by the task
|
||||
```
|
||||
|
||||
## Cancel a task
|
||||
|
||||
```bash
|
||||
omniroute cloud codex task cancel <taskId>
|
||||
omniroute cloud devin task cancel <taskId>
|
||||
```
|
||||
|
||||
## Typical workflow
|
||||
|
||||
```bash
|
||||
# 1. Authenticate
|
||||
omniroute cloud codex auth
|
||||
|
||||
# 2. Create a task
|
||||
TASK_ID=$(omniroute cloud codex task create \
|
||||
--title "Refactor auth module" \
|
||||
--prompt "Extract JWT logic to src/auth/jwt.ts" \
|
||||
--output json | jq -r '.id')
|
||||
|
||||
# 3. Poll status
|
||||
omniroute cloud codex task status $TASK_ID
|
||||
|
||||
# 4. View touched files when complete
|
||||
omniroute cloud codex task sources $TASK_ID
|
||||
```
|
||||
|
||||
## Errors
|
||||
|
||||
- `auth required` → run `omniroute cloud <agent> auth` before any task commands
|
||||
- `task create` fails with 402 → agent billing limit reached; check your Codex/Devin/Jules account
|
||||
- `task approve` fails with 404 → task does not have a pending plan; check status first
|
||||
- `jules auth` browser flow fails → ensure Google account has Jules access; try `omniroute cloud jules auth` again
|
||||
113
skills/omniroute-cli-eval/SKILL.md
Normal file
113
skills/omniroute-cli-eval/SKILL.md
Normal file
@@ -0,0 +1,113 @@
|
||||
---
|
||||
name: omniroute-cli-eval
|
||||
description: Run and manage OmniRoute eval suites from the CLI — create suites, run benchmarks, watch live results, view scorecards, and compare model performance. Use when the user wants to benchmark models, validate quality regressions, or automate LLM evals in CI.
|
||||
---
|
||||
|
||||
# OmniRoute — CLI Evals
|
||||
|
||||
Requires the `omniroute` CLI. See [CLI entry-point skill](https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli/SKILL.md) for install + global flags.
|
||||
|
||||
## What are evals?
|
||||
|
||||
Evals are automated test suites that score LLM outputs against expected answers or rubrics. OmniRoute stores suites and run results in its local database.
|
||||
|
||||
## Eval suites
|
||||
|
||||
```bash
|
||||
omniroute eval suites list # List all eval suites
|
||||
omniroute eval suites list --json # JSON output
|
||||
|
||||
omniroute eval suites get <suiteId> # Full suite definition
|
||||
```
|
||||
|
||||
### Create a suite
|
||||
|
||||
```bash
|
||||
omniroute eval suites create \
|
||||
--name "code-quality" \
|
||||
--rubric "exact-match" \
|
||||
--samples-file ./samples.jsonl # JSONL: {input, expected_output}
|
||||
```
|
||||
|
||||
Rubric options: `exact-match`, `contains`, `llm-judge`, `regex`.
|
||||
|
||||
`--samples-file` format (one JSON object per line):
|
||||
|
||||
```jsonl
|
||||
{"input": "What is 2+2?", "expected_output": "4"}
|
||||
{"input": "Translate 'hello' to Spanish", "expected_output": "hola"}
|
||||
```
|
||||
|
||||
## Run an eval
|
||||
|
||||
```bash
|
||||
omniroute eval suites run <suiteId> \
|
||||
--model claude-sonnet-4-6 # Run suite against a specific model
|
||||
|
||||
omniroute eval suites run <suiteId> \
|
||||
--model gpt-4o \
|
||||
--watch # Live TUI progress (EvalWatch)
|
||||
```
|
||||
|
||||
The run is asynchronous. Use `--watch` for a live terminal dashboard or poll manually:
|
||||
|
||||
```bash
|
||||
RUN_ID=$(omniroute eval suites run <suiteId> --model claude-sonnet-4-6 --output json | jq -r '.id')
|
||||
omniroute eval get $RUN_ID
|
||||
```
|
||||
|
||||
## Manage runs
|
||||
|
||||
```bash
|
||||
omniroute eval list # List all eval runs
|
||||
omniroute eval list --json
|
||||
|
||||
omniroute eval get <runId> # Run details (status, model, score)
|
||||
omniroute eval results <runId> # Per-sample results
|
||||
omniroute eval scorecard <runId> # Full scorecard with pass/fail per sample
|
||||
omniroute eval cancel <runId> # Cancel a running eval
|
||||
```
|
||||
|
||||
## Scorecard output
|
||||
|
||||
```bash
|
||||
omniroute eval scorecard <runId> --output json
|
||||
```
|
||||
|
||||
Response fields per sample:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "sample-1",
|
||||
"score": 0.95,
|
||||
"passed": true,
|
||||
"input": "What is 2+2?",
|
||||
"output": "4",
|
||||
"expected": "4"
|
||||
}
|
||||
```
|
||||
|
||||
## Comparing models
|
||||
|
||||
Run the same suite against multiple models and compare:
|
||||
|
||||
```bash
|
||||
for MODEL in claude-sonnet-4-6 gpt-4o gemini-2.0-flash; do
|
||||
omniroute eval suites run $SUITE_ID --model $MODEL --output json | jq '{model: .model, score: .score}'
|
||||
done
|
||||
```
|
||||
|
||||
## CI integration
|
||||
|
||||
```bash
|
||||
# Run and fail CI if score drops below threshold
|
||||
SCORE=$(omniroute eval suites run $SUITE_ID --model claude-sonnet-4-6 --output json | jq -r '.score')
|
||||
python3 -c "import sys; score=float('$SCORE'); sys.exit(0 if score >= 0.90 else 1)"
|
||||
```
|
||||
|
||||
## Errors
|
||||
|
||||
- `suites create` fails with `invalid rubric` → use one of: `exact-match`, `contains`, `llm-judge`, `regex`
|
||||
- `suites run` returns `model not found` → verify model ID with `omniroute models --search <name>`
|
||||
- `eval get` shows `status: failed` → check `omniroute logs --search eval` for error details
|
||||
- `scorecard` returns empty results → the run may still be `running`; poll `omniroute eval get <runId>` until `status` is `completed`
|
||||
145
skills/omniroute-cli-providers/SKILL.md
Normal file
145
skills/omniroute-cli-providers/SKILL.md
Normal file
@@ -0,0 +1,145 @@
|
||||
---
|
||||
name: omniroute-cli-providers
|
||||
description: Manage OmniRoute provider connections, API keys, and routing combos via CLI — add/list/test/remove providers, rotate keys, run OAuth flows, list models, and create/switch combos. Use when the user wants to configure providers, manage credentials, or set up routing from the terminal.
|
||||
---
|
||||
|
||||
# OmniRoute — CLI Providers & Keys
|
||||
|
||||
Requires the `omniroute` CLI. See [CLI entry-point skill](https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli/SKILL.md) for install + global flags.
|
||||
|
||||
## Provider catalog (available providers)
|
||||
|
||||
```bash
|
||||
omniroute providers available # Full OmniRoute provider catalog
|
||||
omniroute providers available --search openai # Filter by id, name, alias
|
||||
omniroute providers available --category api-key # Filter by category
|
||||
omniroute providers available --json # Machine-readable JSON
|
||||
```
|
||||
|
||||
Categories: `api-key`, `oauth`, `free`, `local`, `combo`.
|
||||
|
||||
## Configured provider connections
|
||||
|
||||
```bash
|
||||
omniroute providers list # Connections in your DB
|
||||
omniroute providers list --json
|
||||
```
|
||||
|
||||
## Testing connections
|
||||
|
||||
```bash
|
||||
omniroute providers test <id|name> # Test one configured connection
|
||||
omniroute providers test-all # Test every active connection (TUI progress)
|
||||
omniroute providers validate # Local-only structural validation (no HTTP)
|
||||
```
|
||||
|
||||
`test-all` opens an interactive TUI that shows live pass/fail per connection. Use `--json` to get a machine-readable result:
|
||||
|
||||
```bash
|
||||
omniroute providers test-all --json
|
||||
```
|
||||
|
||||
## API key management (OmniRoute keys)
|
||||
|
||||
These manage the OmniRoute API keys issued under **API Manager** — not provider credentials.
|
||||
|
||||
```bash
|
||||
omniroute keys list # List all OmniRoute API keys
|
||||
omniroute keys add <provider> [apiKey] # Add an API key for a provider
|
||||
omniroute keys remove <provider> # Remove an API key
|
||||
omniroute keys regenerate <id> # Regenerate (rotate) a key
|
||||
omniroute keys revoke <id> # Revoke a key (disables it)
|
||||
omniroute keys reveal <id> # Show the full key value
|
||||
omniroute keys usage <id> # Show usage stats for a key
|
||||
|
||||
omniroute keys rotate <id> # Rotate + revoke old key atomically
|
||||
omniroute keys expiration list # List key expiration times
|
||||
```
|
||||
|
||||
### Key policies
|
||||
|
||||
```bash
|
||||
omniroute keys policy show <id> # Show rate-limit / permission policy
|
||||
omniroute keys policy set <id> \
|
||||
--rate-limit 100 \
|
||||
--rate-window minute \
|
||||
--permissions chat,models # Set policy on a key
|
||||
```
|
||||
|
||||
## Models
|
||||
|
||||
```bash
|
||||
omniroute models # List all models (all providers)
|
||||
omniroute models openai # Filter by provider
|
||||
omniroute models --search gpt # Search by name
|
||||
omniroute models --json # JSON output
|
||||
```
|
||||
|
||||
## OAuth providers
|
||||
|
||||
```bash
|
||||
omniroute oauth list # List OAuth-configured providers
|
||||
omniroute oauth login <provider> # Start browser-based OAuth flow
|
||||
omniroute oauth logout <provider> # Revoke OAuth token
|
||||
omniroute oauth status <provider> # Show token state + expiry
|
||||
omniroute oauth refresh <provider> # Force token refresh
|
||||
```
|
||||
|
||||
For OAuth providers (Gemini, Windsurf, Antigravity, etc.) the `login` command opens the OmniRoute dashboard OAuth flow in your browser.
|
||||
|
||||
## Provider nodes (multi-account routing)
|
||||
|
||||
Provider nodes let you attach multiple API keys / accounts to one logical provider for round-robin or failover.
|
||||
|
||||
```bash
|
||||
omniroute nodes list <provider> # List nodes for a provider
|
||||
omniroute nodes add <provider> --api-key <key> # Add a node
|
||||
omniroute nodes remove <provider> <nodeId> # Remove a node
|
||||
omniroute nodes test <provider> <nodeId> # Test one node
|
||||
```
|
||||
|
||||
## Routing combos (CLI)
|
||||
|
||||
Create and manage routing combos from the terminal:
|
||||
|
||||
```bash
|
||||
omniroute combo list # List all combos
|
||||
omniroute combo create <name> \
|
||||
--strategy priority \
|
||||
--targets anthropic/claude-opus-4-7,openai/gpt-4o # Create combo
|
||||
omniroute combo switch <name> # Activate a combo as default
|
||||
omniroute combo delete <name> # Delete a combo
|
||||
omniroute combo suggest --task "code review" # Ask OmniRoute to recommend a combo
|
||||
```
|
||||
|
||||
For the full REST API for combos see [omniroute-routing skill](https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-routing/SKILL.md).
|
||||
|
||||
## Quota & usage
|
||||
|
||||
```bash
|
||||
omniroute quota # Provider quota usage + reset times
|
||||
omniroute usage # Request + token usage summary
|
||||
omniroute cost # Cost breakdown (by provider/model)
|
||||
```
|
||||
|
||||
## Compression (CLI)
|
||||
|
||||
```bash
|
||||
omniroute compression status # Current compression mode + savings stats
|
||||
omniroute compression set --mode rtk # Enable RTK compression
|
||||
omniroute compression set --mode stacked # Enable stacked (RTK + Caveman)
|
||||
omniroute compression set --mode off # Disable compression
|
||||
omniroute compression preview --mode rtk --text "..." # Preview savings for sample text
|
||||
```
|
||||
|
||||
## Health
|
||||
|
||||
```bash
|
||||
omniroute health # Detailed health: circuit breakers, cache, memory
|
||||
```
|
||||
|
||||
## Errors
|
||||
|
||||
- `providers test <id>` fails with 401 → API key stored for that provider is wrong; use `keys remove` + `keys add` to reset it
|
||||
- `oauth login` opens but doesn't complete → the OAuth token endpoint may be firewalled; use API key auth instead
|
||||
- `combo create` fails with `strategy unknown` → use one of: `priority`, `weighted`, `round-robin`, `fill-first`, `least-used`, `cost-optimized`, `auto`, `random`, `strict-random`, `p2c`, `reset-aware`, `lkgp`, `context-optimized`, `context-relay`
|
||||
104
skills/omniroute-cli/SKILL.md
Normal file
104
skills/omniroute-cli/SKILL.md
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
name: omniroute-cli
|
||||
description: Entry point for the OmniRoute CLI (omniroute binary) — install, global flags, output formats, environment variables, and index of CLI capability skills. Use when the user wants to control OmniRoute from the terminal, automate workflows, or integrate with CI/CD.
|
||||
---
|
||||
|
||||
# OmniRoute — CLI (Entry Point)
|
||||
|
||||
The `omniroute` binary ships with the OmniRoute server. It is both the server launcher and a full management CLI with 250+ commands across 39 groups.
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
npm install -g omniroute # npm registry
|
||||
# or: use the binary bundled with the desktop app
|
||||
```
|
||||
|
||||
Requires Node.js ≥20.20.2, ≥22.22.2, or ≥24.
|
||||
|
||||
Verify:
|
||||
|
||||
```bash
|
||||
omniroute --version # prints installed version
|
||||
omniroute --help # full command tree
|
||||
```
|
||||
|
||||
## Connection
|
||||
|
||||
Every CLI command that talks to the server reads two values:
|
||||
|
||||
| Source | Variable / Flag |
|
||||
| -------- | ------------------------------------ |
|
||||
| Base URL | `OMNIROUTE_BASE_URL` or `--base-url` |
|
||||
| API key | `OMNIROUTE_API_KEY` or `--api-key` |
|
||||
|
||||
Default base URL: `http://localhost:20128`
|
||||
|
||||
```bash
|
||||
export OMNIROUTE_BASE_URL="http://localhost:20128"
|
||||
export OMNIROUTE_API_KEY="sk-..." # from Dashboard → API Manager
|
||||
```
|
||||
|
||||
For a remote server:
|
||||
|
||||
```bash
|
||||
export OMNIROUTE_BASE_URL="https://your-server.com"
|
||||
```
|
||||
|
||||
## Global flags
|
||||
|
||||
| Flag | Description |
|
||||
| ------------------- | -------------------------------------------------------- |
|
||||
| `--base-url <url>` | Override server URL for this invocation |
|
||||
| `--api-key <key>` | Override API key for this invocation |
|
||||
| `--output <format>` | Output format: `table` (default), `json`, `jsonl`, `csv` |
|
||||
| `--json` | Shorthand for `--output json` |
|
||||
| `--non-interactive` | Disable prompts — for CI / shell scripts |
|
||||
| `--no-open` | Don't auto-open the browser on start |
|
||||
| `--port <n>` | Override default port 20128 |
|
||||
| `--help`, `-h` | Show help for the current command |
|
||||
| `--version`, `-v` | Print the installed version |
|
||||
|
||||
## Output formats
|
||||
|
||||
All listing commands support `--output`:
|
||||
|
||||
```bash
|
||||
omniroute combo list # human-readable table
|
||||
omniroute combo list --output json # JSON array
|
||||
omniroute combo list --output jsonl # one JSON object per line
|
||||
omniroute combo list --output csv # CSV with header row
|
||||
```
|
||||
|
||||
## Quick start: one-shot server + provider setup
|
||||
|
||||
```bash
|
||||
# 1. Start server
|
||||
omniroute
|
||||
|
||||
# 2. (First run) interactive setup wizard
|
||||
omniroute setup
|
||||
|
||||
# 3. Verify everything is healthy
|
||||
omniroute doctor
|
||||
```
|
||||
|
||||
## CLI capability skills
|
||||
|
||||
| Capability | Skill |
|
||||
| ------------------------------------ | ----------------------------------------------------------------------------------------------------- |
|
||||
| Server admin + backup | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-admin/SKILL.md |
|
||||
| Provider & key management | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-providers/SKILL.md |
|
||||
| Cloud agents (Codex / Devin / Jules) | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-cloud/SKILL.md |
|
||||
| Evals & benchmarking | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-eval/SKILL.md |
|
||||
|
||||
## API skills (REST)
|
||||
|
||||
For direct HTTP usage instead of the CLI, see the [OmniRoute entry-point skill](https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute/SKILL.md).
|
||||
|
||||
## Errors
|
||||
|
||||
- `Connection refused` → server not running; run `omniroute` or `omniroute serve`
|
||||
- `401 Unauthorized` → wrong or missing API key
|
||||
- `command not found: omniroute` → not in PATH; check `npm root -g` or re-install
|
||||
- `doctor` reports SQLite incompatible → `npm rebuild better-sqlite3` in the app directory
|
||||
@@ -49,6 +49,16 @@ Use `data[].id` as `model` field in requests. Combos appear with `owned_by:"comb
|
||||
| Token compression | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-compression/SKILL.md |
|
||||
| Monitoring & health | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-monitoring/SKILL.md |
|
||||
|
||||
## CLI skills (omniroute binary)
|
||||
|
||||
| Capability | Raw URL |
|
||||
| ---------------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| CLI entry point | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli/SKILL.md |
|
||||
| CLI admin & lifecycle | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-admin/SKILL.md |
|
||||
| CLI providers & keys | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-providers/SKILL.md |
|
||||
| CLI cloud agents | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-cloud/SKILL.md |
|
||||
| CLI evals & benchmarks | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-eval/SKILL.md |
|
||||
|
||||
## Errors
|
||||
|
||||
- `401` → set/refresh `OMNIROUTE_KEY` (Dashboard → API Keys)
|
||||
|
||||
Reference in New Issue
Block a user