mcpField
C
cli-serve

cli-serve

github.com/diegosouzapw云与 DevOps82.6k972 次安装今天更新
代码仓库

关于 cli-serve

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

主要功能

  1. 01启动、停止和重启服务器
  2. 02配置守护进程模式与端口
  3. 03执行健康检查和设置
  4. 04备份与恢复服务器数据
  5. 05管理隧道和开机启动

适用场景

  1. 01在指定端口重启服务器
  2. 02在 CI 中检查服务器状态
  3. 03恢复配置和数据库快照
  4. 04通过隧道公开本地实例

MCP 相关

该技能介绍如何通过 stdio 传输将 OmniRoute 作为 MCP 服务启动。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/diegosouzapw/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