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.
安装方式
cp -r skills/cli-serve ~/.claude/skills/cli-serve把该 skill 目录放进客户端 skills 目录。不同客户端的目录可能不同,Claude Code 默认是 ~/.claude/skills/
https://raw.githubusercontent.com/diegosouzapw/OmniRoute/7f3cbb046b3706bf0bbc047b7eaa0cbada8d9e50/skills/cli-serve/SKILL.md下载后另存为 ~/.claude/skills/cli-serve/SKILL.md。链接锁定采集时的 commit,内容与本站展示一致。
整仓一次性获取:git clone --depth 1 https://github.com/diegosouzapw/OmniRoute.git
依赖与权限
- 需要 API Key —— 使用前需配置相应的密钥环境变量
- 需要联网访问外部服务
- 依赖外部命令:
nodenpmdockerjqnpxbrew - 以上为按正文与 frontmatter 自动推断的信号,仅供参考;安装前建议先阅读原文。
SKILL.md 正文
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->
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>--tray--no-tray--ready-timeout <ms>--tls-cert <path>--tls-key <path>
Example:
omniroute serve
stop
Example:
omniroute stop
<!-- skill:custom-start -->
<!-- Aggregated from: omniroute-cli (setup + index), omniroute-cli-admin (lifecycle/setup/backup/tunnel) -->
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
<!-- skill:custom-end -->
质量与来源
- 所属仓库
- diegosouzapw/OmniRoute
- 仓库星标
- 7.6 万
- 最近更新
- 昨天
- 采集时间
- 今天
- commit
- 7f3cbb046b37
- 内容指纹
- sha256:ed15d344e6f6c44
- 文件路径
- skills/cli-serve/SKILL.md