Agent Skillsdiegosouzapw/OmniRoute › omni-version-manager

omni-version-manager

GitHub

管理本地嵌入式服务(9Router、CLIProxyAPI)的安装、启停、重启、更新及状态监控,支持自动启动配置和密钥轮换。

skills/omni-version-manager/SKILL.md diegosouzapw/OmniRoute

Trigger Scenarios

需要安装或更新本地嵌入的服务 管理服务生命周期如启动停止重启 查看服务状态或日志

Install

npx skills add diegosouzapw/OmniRoute --skill omni-version-manager -g -y
More Options

Use without installing

npx skills use diegosouzapw/OmniRoute@omni-version-manager

指定 Agent (Claude Code)

npx skills add diegosouzapw/OmniRoute --skill omni-version-manager -a claude-code -g -y

安装 repo 全部 skill

npx skills add diegosouzapw/OmniRoute --all -g -y

预览 repo 内 skill

npx skills add diegosouzapw/OmniRoute --list

SKILL.md

Frontmatter
{
    "name": "omni-version-manager",
    "description": "Install, start, stop, restart, and update embedded services (9Router, CLIProxyAPI). Monitor service status, retrieve logs, and configure auto-start for local-only service endpoints."
}

Overview

Install, start, stop, restart, and update embedded services (9Router, CLIProxyAPI). Monitor service status, retrieve logs, and configure auto-start for local-only service endpoints.

Authentication

All requests require a valid Bearer token or session cookie. Obtain a token via POST /api/auth/login or configure REQUIRE_API_KEY=false for local development.

Endpoints

POST /api/services/9router/install

Install 9Router from npm

Installs the 9router npm package under DATA_DIR/services/9router/. Uses execFile (no shell interpolation — hard rule #13). LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/9router/install \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/9router/start

Start 9Router

Spawns the 9Router process. Idempotent if already running. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/9router/start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/9router/stop

Stop 9Router

Gracefully stops 9Router (SIGTERM → 15 s → SIGKILL). Idempotent. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/9router/stop \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/9router/restart

Restart 9Router

Equivalent to stop() then start() under the operation lock. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/9router/restart \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/9router/update

Update 9Router to a newer npm version

Stops the service (if running), installs the newer npm version, then restarts. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/9router/update \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/9router/rotate-key

Rotate the 9Router API key

Generates a new API key, encrypts it at-rest, and restarts the service to apply it. The plaintext key is never returned. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/9router/rotate-key \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/services/9router/status

Get 9Router status

Returns combined live supervisor state and DB metadata. LOCAL_ONLY — loopback only.

curl https://localhost:20128/api/services/9router/status \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/services/9router/auto-start

Toggle 9Router auto-start

When enabled, 9Router starts automatically on the next OmniRoute boot. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/9router/auto-start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/9router/auto-restart-adopted

Toggle 9Router auto-restart-when-adopted

When enabled, an externally-adopted (not OmniRoute-spawned) 9Router process is restarted under OmniRoute's own supervisor on the next health-check cycle instead of being left as adopted-only. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/9router/auto-restart-adopted \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/cliproxy/install

Install CLIProxyAPI from npm

Installs the CLIProxyAPI package under DATA_DIR/services/cliproxy/. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/cliproxy/install \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/cliproxy/start

Start CLIProxyAPI

Spawns the CLIProxyAPI process. Idempotent if already running. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/cliproxy/start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/cliproxy/stop

Stop CLIProxyAPI

Gracefully stops CLIProxyAPI. Idempotent. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/cliproxy/stop \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/cliproxy/restart

Restart CLIProxyAPI

stop() then start() under the operation lock. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/cliproxy/restart \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/cliproxy/update

Update CLIProxyAPI to a newer npm version

Stops, installs newer version, restarts. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/cliproxy/update \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/services/cliproxy/status

Get CLIProxyAPI status

Returns live supervisor state and DB metadata (no apiKeyMasked — CLIProxyAPI does not use an injected API key). LOCAL_ONLY — loopback only.

curl https://localhost:20128/api/services/cliproxy/status \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/services/cliproxy/auto-start

Toggle CLIProxyAPI auto-start

When enabled, CLIProxyAPI starts automatically on the next OmniRoute boot. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/cliproxy/auto-start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/cliproxy/auto-restart-adopted

Toggle CLIProxyAPI auto-restart-when-adopted

When enabled, an externally-adopted (not OmniRoute-spawned) CLIProxyAPI process is restarted under OmniRoute's own supervisor on the next health-check cycle instead of being left as adopted-only. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/cliproxy/auto-restart-adopted \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/mux/install

Install Mux from npm

Installs the mux npm package (coder/mux — local agent-orchestration daemon) under DATA_DIR/services/mux/. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/mux/install \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/mux/start

Start Mux

Spawns mux server --host 127.0.0.1 --port <port>. Idempotent if already running. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/mux/start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/mux/stop

Stop Mux

Gracefully stops Mux. Idempotent. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/mux/stop \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/mux/restart

Restart Mux

stop() then start() under the operation lock. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/mux/restart \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/mux/update

Update Mux to a newer npm version

Stops, installs newer version, restarts. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/mux/update \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/services/mux/status

Get Mux status

Returns live supervisor state and DB metadata. LOCAL_ONLY — loopback only.

curl https://localhost:20128/api/services/mux/status \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/services/mux/auto-start

Toggle Mux auto-start

When enabled, Mux starts automatically on the next OmniRoute boot. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/mux/auto-start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/mux/auto-restart-adopted

Toggle Mux auto-restart-when-adopted

When enabled, an externally-adopted (not OmniRoute-spawned) Mux process is restarted under OmniRoute's own supervisor on the next health-check cycle instead of being left as adopted-only. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/mux/auto-restart-adopted \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/bifrost/install

Install Bifrost

Installs the @maximhq/bifrost npm package under DATA_DIR/services/bifrost/. The package downloads the Go binary on first run. Accepts an optional version field (semver or latest). LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/bifrost/install \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/bifrost/start

Start Bifrost

Starts the supervised Bifrost process. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/bifrost/start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/bifrost/stop

Stop Bifrost

Stops the supervised Bifrost process. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/bifrost/stop \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/bifrost/restart

Restart Bifrost

Restarts the supervised Bifrost process. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/bifrost/restart \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/bifrost/update

Update Bifrost

Updates Bifrost to the latest npm version. Stops the running process, installs the new version, and restarts if it was previously running. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/bifrost/update \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/services/bifrost/status

Get Bifrost status

Returns live and DB status for the supervised Bifrost service. LOCAL_ONLY — loopback only.

curl https://localhost:20128/api/services/bifrost/status \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/services/bifrost/auto-start

Toggle Bifrost auto-start

When enabled, Bifrost starts automatically on the next OmniRoute boot. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/bifrost/auto-start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/bifrost/auto-restart-adopted

Toggle Bifrost auto-restart-when-adopted

When enabled, an externally-adopted (not OmniRoute-spawned) Bifrost process is restarted under OmniRoute's own supervisor on the next health-check cycle instead of being left as adopted-only. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/bifrost/auto-restart-adopted \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/dario/install

Install Dario from npm

Installs the @askalf/dario npm package (Claude-account-pool proxy) under DATA_DIR/services/dario/. Uses execFile (no shell interpolation — hard rule #13). LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/install \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/dario/start

Start Dario

Spawns the Dario process. Idempotent if already running. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/dario/stop

Stop Dario

Gracefully stops Dario. Idempotent — returns a stopped status even if no supervisor is currently tracking the process. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/stop \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/dario/restart

Restart Dario

Equivalent to stop() then start() under the operation lock. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/restart \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/dario/update

Update Dario to a newer npm version

Stops the service (if running), installs the newer npm version, then restarts it if it was running before the update. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/update \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/services/dario/status

Get Dario status

Returns combined live supervisor state and DB metadata, including the auto-start / auto-restart-adopted flags and whether an update is available. LOCAL_ONLY — loopback only.

curl https://localhost:20128/api/services/dario/status \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/services/dario/auto-start

Toggle Dario auto-start

When enabled, Dario starts automatically on the next OmniRoute boot. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/auto-start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/dario/auto-restart-adopted

Toggle Dario auto-restart-when-adopted

When enabled, an externally-adopted (not OmniRoute-spawned) Dario process is restarted under OmniRoute's own supervisor on the next health-check cycle instead of being left as adopted-only. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/auto-restart-adopted \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/dario/admin/login-start

Start a Dario account-pool login (device-code style)

Forwards to the running Dario instance's POST /admin/login/start using the stored admin token. The operator opens the returned authorize_url, approves in their own Claude account, then posts the displayed code to /admin/login-complete. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/admin/login-start \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

POST /api/services/dario/admin/login-complete

Complete a Dario account-pool login

Forwards to the running Dario instance's POST /admin/login/complete. On success the account becomes routable immediately (Dario hot-reloads its pool). LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/admin/login-complete \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/services/dario/admin/accounts

List Dario account-pool accounts

Forwards to the running Dario instance's GET /admin/accounts. LOCAL_ONLY — loopback only.

curl https://localhost:20128/api/services/dario/admin/accounts \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

DELETE /api/services/dario/admin/accounts

Remove a Dario account-pool account

Forwards to the running Dario instance's DELETE /admin/accounts/<alias>. The alias is taken from a ?alias= query param or a { alias } JSON body. LOCAL_ONLY — loopback only.

curl -X DELETE https://localhost:20128/api/services/dario/admin/accounts \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

GET /api/services/dario/admin/import-from-omniroute

List OmniRoute claude connections eligible for Dario import

Returns eligible OmniRoute claude OAuth provider connections (metadata only — id/name/email/org tier, never tokens) so the UI can offer a picker when more than one exists. LOCAL_ONLY — loopback only.

curl https://localhost:20128/api/services/dario/admin/import-from-omniroute \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/services/dario/admin/import-from-omniroute

Import an OmniRoute claude connection's OAuth tokens into Dario

Writes the source connection's access/refresh token pair directly into Dario's own account-file store (~/.dario/accounts/<alias>.json), reusing the shared Claude Code OAuth client_id, then restarts the Dario supervisor so it picks up the new account. LOCAL_ONLY — loopback only.

curl -X POST https://localhost:20128/api/services/dario/admin/import-from-omniroute \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/services/{name}/logs

Stream service logs via SSE

Returns a Server-Sent Events stream from the service's in-memory ring buffer (5 MB, circular). Sends a snapshot event with historical lines first, then live log events, plus a heartbeat every 15 s. LOCAL_ONLY — loopback only.

curl https://localhost:20128/api/services/{name}/logs \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

Payloads

See the full OpenAPI specification at GET /api/openapi/spec or docs/openapi.yaml for detailed request/response schemas.

Version History

  • 3d7ed7a Current 2026-08-20 06:20
  • 1cafd32 2026-07-25 11:48

Same Skill Collection

skills/cli-a2a/SKILL.md
skills/cli-backup-sync/SKILL.md
skills/cli-batches/SKILL.md
skills/cli-chat/SKILL.md
skills/cli-compression/SKILL.md
skills/cli-contexts/SKILL.md
skills/cli-cost-usage/SKILL.md
skills/cli-eval/SKILL.md
skills/cli-health/SKILL.md
skills/cli-keys/SKILL.md
skills/cli-mcp/SKILL.md
skills/cli-models/SKILL.md
skills/cli-plugins-skills/SKILL.md
skills/cli-policy-audit/SKILL.md
skills/cli-providers/SKILL.md
skills/cli-resilience/SKILL.md
skills/cli-routing/SKILL.md
skills/cli-serve/SKILL.md
skills/cli-setup/SKILL.md
skills/cli-skill-collector/SKILL.md
skills/cli-tunnel/SKILL.md
skills/config-codex-cli/SKILL.md
skills/omni-agents-a2a/SKILL.md
skills/omni-api-keys/SKILL.md
skills/omni-auth/SKILL.md
skills/omni-budget/SKILL.md
skills/omni-cache/SKILL.md
skills/omni-cli-tools/SKILL.md
skills/omni-combos-routing/SKILL.md
skills/omni-compression/SKILL.md
skills/omni-context-rtk/SKILL.md
skills/omni-db-backups/SKILL.md
skills/omni-github-skills/SKILL.md
skills/omni-inference/SKILL.md
skills/omni-mcp/SKILL.md
skills/omni-models/SKILL.md
skills/omni-providers/SKILL.md
skills/omni-proxies/SKILL.md
skills/omni-resilience/SKILL.md
skills/omni-settings/SKILL.md
skills/omni-sync-cloud/SKILL.md
skills/omni-tunnels/SKILL.md
skills/omni-usage-logs/SKILL.md
skills/omni-webhooks/SKILL.md
skills/ponytail/SKILL.md

Metadata

Files
0
Version
3d7ed7a
Hash
a3e965d6
Indexed
2026-07-25 11:48

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-22 06:15
浙ICP备14020137号-1 $mapa de visitantes$