关于 cli-serve
cli-serve 是用于启动、停止和管理 OmniRoute 服务的命令行技能,也涵盖设置、诊断、备份、隧道和配置管理。
主要功能
- 01启动、停止和重启服务
- 02配置端口、守护进程和恢复
- 03运行设置向导与健康诊断
- 04备份和恢复配置及数据库
- 05管理开机启动和公共隧道
- 06查看配置与实时日志
适用场景
- 01重启或停止 OmniRoute 实例
- 02在 CI 或 Docker 中配置 OmniRoute
- 03部署前检查服务健康状态
- 04恢复服务前创建备份
MCP 相关
可通过命令行的 stdio 传输选项将 OmniRoute 启动为 MCP 服务。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cheaper-inference/ omniroute --skill cli-serve安装后在 Claude Code 中输入/cli-serve确认已加载。
详细介绍
概览
通过命令行启动、停止和重启 OmniRoute 服务。管理守护进程模式、端口配置、自动恢复、系统托盘集成以及打开控制面板的快捷方式。
快速安装
npm install -g omniroute # or: npx omniroute
omniroute --version
子命令
dashboard
标志:
--url--port <port>--tui
示例:
omniroute dashboard
restart
标志:
--port <port>
示例:
omniroute restart
serve
标志:
--port <port>--no-open--daemon--log--no-recovery--max-restarts <n>--headless--tray--no-tray--ready-timeout <ms>--tls-cert <path>--tls-key <path>
示例:
omniroute serve
stop
标志:
--port <port>
示例:
omniroute stop
设置
omniroute 二进制文件随 OmniRoute 服务一同提供。它既是服务启动器,也是功能完备的管理命令行工具,包含 39 个组中的 250 多条命令。
安装
npm install -g omniroute # npm registry
# or: use the binary bundled with the desktop app
需要 Node.js ≥22.22.2 或 ≥24。
验证:
omniroute --version # prints installed version
omniroute --help # full command tree
连接
每条与服务通信的命令行命令都会读取两个值:
| 来源 | 变量 / 标志 |
|---|---|
| 基础 URL | OMNIROUTE_BASE_URL 或 --base-url |
| API 密钥 | OMNIROUTE_API_KEY 或 --api-key |
默认基础 URL:http://localhost:20128
export OMNIROUTE_BASE_URL="http://localhost:20128"
export OMNIROUTE_API_KEY="sk-..." # from Dashboard → API Manager
对于远程服务:
export OMNIROUTE_BASE_URL="https://your-server.com"
全局标志
| 标志 | 说明 |
|---|---|
--base-url <url> | 为本次调用指定服务 URL |
--api-key <key> | 为本次调用指定 API 密钥 |
--output <format> | 输出格式:table(默认)、json、jsonl、csv |
--json | --output json 的简写 |
--non-interactive | 禁用提示 — 适用于 CI / shell 脚本 |
--no-open | 启动时不自动打开浏览器 |
--port <n> | 覆盖默认端口 20128 |
--help、-h | 显示当前命令的帮助信息 |
--version、-v | 打印已安装的版本 |
输出格式
所有列表命令都支持 --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
快速入门:一次性启动服务并配置提供商
# 1. Start server
omniroute
# 2. (First run) interactive setup wizard
omniroute setup
# 3. Verify everything is healthy
omniroute doctor
命令行工具能力技能
错误
Connection refused→ 服务未运行;运行omniroute或omniroute serve401 Unauthorized→ API 密钥错误或缺失command not found: omniroute→ 不在 PATH 中;检查npm root -g或重新安装doctor报告 SQLite 不兼容 → 在应用目录中运行npm rebuild better-sqlite3
管理生命周期
需要 omniroute 命令行工具。请参阅上文的安装和全局标志部分。
服务生命周期
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)
设置与预配
交互式向导
omniroute setup # Step-by-step interactive setup
非交互式(CI / Docker)
omniroute setup --non-interactive \
--password 'admin-password' \
--add-provider \
--provider openai \
--api-key 'sk-...' \
--test-provider
非交互式设置的环境变量:
| 变量 | 用途 |
|---|---|
OMNIROUTE_SETUP_PASSWORD | 管理员密码(≥8 个字符) |
OMNIROUTE_PROVIDER | 提供商 ID(例如 openai、anthropic) |
OMNIROUTE_PROVIDER_NAME | 连接的显示名称 |
OMNIROUTE_PROVIDER_BASE_URL | 可选的 OpenAI 兼容基础 URL 覆盖值 |
OMNIROUTE_API_KEY | 提供商 API 密钥 |
OMNIROUTE_DEFAULT_MODEL | 可选的默认模型 |
DATA_DIR | 覆盖 OmniRoute 数据目录 |
诊断
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
执行的检查:配置、数据库、存储/加密、端口、Node 运行时、原生二进制文件(better-sqlite3)、内存、服务存活状态。
任何检查失败时,退出代码都将非零 —— 适用于 CI:
omniroute doctor --json | jq '.checks[] | select(.status=="fail")'
备份与恢复
omniroute backup # Snapshot config + SQLite DB to ~/.omniroute/backups/
omniroute restore # Restore from a previous snapshot (interactive picker)
自动启动(系统托盘 / 启动时)
omniroute autostart enable # Register OmniRoute as a system startup item
omniroute autostart disable # Remove startup registration
omniroute autostart status # Show current autostart state
在 Linux 上:创建 systemd 用户服务(~/.config/systemd/user/omniroute.service),并启用 linger,使服务能够在重启后于没有图形登录的情况下启动;在桌面会话中,还会添加带有 --tray 的 XDG 自动启动项。在 macOS 上:创建 LaunchAgent plist。在 Windows 上:创建注册表启动项。
隧道(公共 URL)
通过安全隧道公开本地 OmniRoute 实例:
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
隧道 URL 会打印出来,可在远程计算机上用作 OMNIROUTE_BASE_URL。
配置与环境
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)
恢复
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
只有在 STORAGE_ENCRYPTION_KEY 丢失且需要重新输入所有提供商 API 密钥时,才使用 reset-encrypted-columns --force。
日志
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)
更新
omniroute update # Check for a newer version and prompt to update
错误
doctor显示STORAGE_ENCRYPTION_KEY missing→ 在.env中设置密钥,或运行reset-encrypted-columns --force清除并重新输入凭据doctor报告原生二进制文件检查失败 → 在 OmniRoute 应用目录中运行npm rebuild better-sqlite3tunnel create cloudflare卡住 → 确保已安装cloudflared:brew install cloudflare/cloudflare/cloudflared