diegosouzapw/omniroute1 file

Omni Version Manager

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

Specification
Skill ID
diegosouzapw/omniroute/omni-version-manager
Publisher
diegosouzapw
Repository
omniroute
Installs
0
Files
1
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

diegosouzapw/omniroute/omni-version-managerInstalls these files
  • SKILL.md

What this skill tells the agent

<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->

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

Use this skill in a project

Open any RiverX project, search the Skills panel for diegosouzapw/omniroute/omni-version-manager, and install it in one click.

Use this skill