mcpField
C
cli-serve

cli-serve

github.com/cheaper-inference云与 DevOps82.3k1.1k 次安装今天更新
代码仓库

关于 cli-serve

cli-serve 是用于启动、停止和管理 OmniRoute 服务的命令行技能,也涵盖设置、诊断、备份、隧道和配置管理。

主要功能

  1. 01启动、停止和重启服务
  2. 02配置端口、守护进程和恢复
  3. 03运行设置向导与健康诊断
  4. 04备份和恢复配置及数据库
  5. 05管理开机启动和公共隧道
  6. 06查看配置与实时日志

适用场景

  1. 01重启或停止 OmniRoute 实例
  2. 02在 CI 或 Docker 中配置 OmniRoute
  3. 03部署前检查服务健康状态
  4. 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
连接

每条与服务通信的命令行命令都会读取两个值:

来源变量 / 标志
基础 URLOMNIROUTE_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
命令行工具能力技能
能力技能
备份与恢复https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-backup-sync/SKILL.md
提供商与密钥管理https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-providers/SKILL.md
云端 Agent(omniroute cloud …)https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-backup-sync/SKILL.md
评估与基准测试https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-eval/SKILL.md
错误
  • Connection refused → 服务未运行;运行 omniroute 或 omniroute serve
  • 401 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-sqlite3
  • tunnel create cloudflare 卡住 → 确保已安装 cloudflared:brew install cloudflare/cloudflare/cloudflared

评论

支持 Markdown