
cli-serve
Start, stop, and restart the OmniRoute server from the CLI. Manage daemon mode, port configuration, auto-recovery, system tray integration, and the dashboard open shortcut.
- Installs
- 1.1K
- Last 24h
- +22
- Trending rank
- #5470
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/cheaper-inference/omniroute --skill cli-serve- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads cli-serve automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Overview
Start, stop, and restart the OmniRoute server from the CLI. Manage daemon mode, port configuration, auto-recovery, system tray integration, and the dashboard open shortcut.
Quick install
npm install -g omniroute # or: npx omniroute
omniroute --version
Subcommands
dashboard
Flags:
--url--port <port>--tui
Example:
omniroute dashboard
restart
Flags:
--port <port>
Example:
omniroute restart
serve
Flags:
--port <port>--no-open--daemon--log--no-recovery--max-restarts <n>--headless--tray--no-tray--ready-timeout <ms>--tls-cert <path>--tls-key <path>
Example:
omniroute serve
stop
Flags:
--port <port>
Example:
omniroute stop
Setup
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
npm install -g omniroute # npm registry
# or: use the binary bundled with the desktop app
Requires Node.js ≥22.22.2 or ≥24.
Verify:
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
export OMNIROUTE_BASE_URL="http://localhost:20128"
export OMNIROUTE_API_KEY="sk-..." # from Dashboard → API Manager
For a remote server:
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:
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
# 1. Start server
omniroute
# 2. (First run) interactive setup wizard
omniroute setup
# 3. Verify everything is healthy
omniroute doctor
CLI capability skills
| Capability | Skill |
|---|---|
| Backup & restore | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-backup-sync/SKILL.md |
| Provider & key management | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-providers/SKILL.md |
Cloud agents (omniroute cloud …) | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-backup-sync/SKILL.md |
| Evals & benchmarking | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-eval/SKILL.md |
Errors
Connection refused→ server not running; runomnirouteoromniroute serve401 Unauthorized→ wrong or missing API keycommand not found: omniroute→ not in PATH; checknpm root -gor re-installdoctorreports SQLite incompatible →npm rebuild better-sqlite3in the app directory
Admin lifecycle
Requires the omniroute CLI. See the install and global-flags sections above.
Server lifecycle
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
omniroute setup # Step-by-step interactive setup
Non-interactive (CI / Docker)
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
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:
omniroute doctor --json | jq '.checks[] | select(.status=="fail")'
Backup & restore
omniroute backup # Snapshot config + SQLite DB to ~/.omniroute/backups/
omniroute restore # Restore from a previous snapshot (interactive picker)
Autostart (system tray / startup)
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 service (~/.config/systemd/user/omniroute.service) and enables linger so the service can start after reboot without a graphical login; on desktop sessions it also adds an XDG autostart entry with --tray. On macOS: LaunchAgent plist. On Windows: registry startup entry.
Tunnels (public URL)
Expose a local OmniRoute instance via a secure tunnel:
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
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
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
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
omniroute update # Check for a newer version and prompt to update
Errors
doctorshowsSTORAGE_ENCRYPTION_KEY missing→ set the key in.envor runreset-encrypted-columns --forceto wipe and re-enter credentialsdoctorreports native binary fail →npm rebuild better-sqlite3in the OmniRoute app directorytunnel create cloudflarehangs → ensurecloudflaredis installed:brew install cloudflare/cloudflare/cloudflared
FAQ
What does the cli-serve skill do?
Start, stop, and restart the OmniRoute server from the CLI. Manage daemon mode, port configuration, auto-recovery, system tray integration, and the dashboard open shortcut.
How do I install cli-serve?
Run npx skills add https://github.com/cheaper-inference/omniroute --skill cli-serve in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cli-serve/ (personal) or .claude/skills/cli-serve/ (project).
Which AI agents can use cli-serve?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is cli-serve safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains cli-serve?
It is published by cheaper-inference in cheaper-inference/omniroute. It has 1,075 recorded installs.
More from cheaper-inference/omniroute
omni-combos-routing
cheaper-inference/omniroute
Create and manage routing combos with 19 strategies (priority, weighted, round-robin, Auto-combo, and more). Configure fallback chains, test routing outcomes, and retrieve combo metrics.
cli-setup
cheaper-inference/omniroute
Run initial setup, configure global CLI settings, manage environment variables, check for updates, and configure autostart via the CLI setup and config commands.
omni-mcp
cheaper-inference/omniroute
Connect to the OmniRoute MCP server (110 tools, 3 transports: SSE/stdio/HTTP). Covers routing, cache, compression, memory, skills, providers, and audit tools across 33 permission scopes.
omni-providers
cheaper-inference/omniroute
Manage provider connections, API keys, OAuth flows, and connection tests via the REST API. List, add, update, remove, and test AI provider integrations across OmniRoute's 375-provider catalog.
cli-routing
cheaper-inference/omniroute
Create, list, update, and delete routing combos from the CLI. Test routing strategies, inspect combo metrics, and configure fallback chains interactively.
omni-auth
cheaper-inference/omniroute
Manage API key authentication and session tokens. Start here to authenticate requests via Bearer token, obtain session cookies, and configure login requirements for the OmniRoute API.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.