Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Install, start, stop, restart, and update embedded services (9Router, CLIProxyAPI). Monitor service status, retrieve logs, and configure auto-start for local-only service endpoints.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 102% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 209% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 123% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 120% | 0% |
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->
Install, start, stop, restart, and update embedded services (9Router, CLIProxyAPI). Monitor service status, retrieve logs, and configure auto-start for local-only service endpoints.
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.
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.
bashcurl -X POST https://localhost:20128/api/services/9router/install \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Start 9Router
Spawns the 9Router process. Idempotent if already running. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/9router/start \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Stop 9Router
Gracefully stops 9Router (SIGTERM → 15 s → SIGKILL). Idempotent. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/9router/stop \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Restart 9Router
Equivalent to stop() then start() under the operation lock. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/9router/restart \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Update 9Router to a newer npm version
Stops the service (if running), installs the newer npm version, then restarts. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/9router/update \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
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.
bashcurl -X POST https://localhost:20128/api/services/9router/rotate-key \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Get 9Router status
Returns combined live supervisor state and DB metadata. LOCAL_ONLY — loopback only.
bashcurl https://localhost:20128/api/services/9router/status \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Toggle 9Router auto-start
When enabled, 9Router starts automatically on the next OmniRoute boot. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/9router/auto-start \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Install CLIProxyAPI from npm
Installs the CLIProxyAPI package under DATA_DIR/services/cliproxy/. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/cliproxy/install \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Start CLIProxyAPI
Spawns the CLIProxyAPI process. Idempotent if already running. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/cliproxy/start \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Stop CLIProxyAPI
Gracefully stops CLIProxyAPI. Idempotent. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/cliproxy/stop \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Restart CLIProxyAPI
stop() then start() under the operation lock. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/cliproxy/restart \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Update CLIProxyAPI to a newer npm version
Stops, installs newer version, restarts. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/cliproxy/update \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Get CLIProxyAPI status
Returns live supervisor state and DB metadata (no apiKeyMasked — CLIProxyAPI does not use an injected API key). LOCAL_ONLY — loopback only.
bashcurl https://localhost:20128/api/services/cliproxy/status \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Toggle CLIProxyAPI auto-start
When enabled, CLIProxyAPI starts automatically on the next OmniRoute boot. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/cliproxy/auto-start \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Install Mux from npm
Installs the mux npm package (coder/mux — local agent-orchestration daemon) under DATA_DIR/services/mux/. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/mux/install \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Start Mux
Spawns mux server --host 127.0.0.1 --port <port>. Idempotent if already running. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/mux/start \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Stop Mux
Gracefully stops Mux. Idempotent. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/mux/stop \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Restart Mux
stop() then start() under the operation lock. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/mux/restart \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Update Mux to a newer npm version
Stops, installs newer version, restarts. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/mux/update \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Get Mux status
Returns live supervisor state and DB metadata. LOCAL_ONLY — loopback only.
bashcurl https://localhost:20128/api/services/mux/status \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Toggle Mux auto-start
When enabled, Mux starts automatically on the next OmniRoute boot. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/mux/auto-start \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
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.
bashcurl -X POST https://localhost:20128/api/services/bifrost/install \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Start Bifrost
Starts the supervised Bifrost process. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/bifrost/start \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Stop Bifrost
Stops the supervised Bifrost process. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/bifrost/stop \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Restart Bifrost
Restarts the supervised Bifrost process. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/bifrost/restart \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
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.
bashcurl -X POST https://localhost:20128/api/services/bifrost/update \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Get Bifrost status
Returns live and DB status for the supervised Bifrost service. LOCAL_ONLY — loopback only.
bashcurl https://localhost:20128/api/services/bifrost/status \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Toggle Bifrost auto-start
When enabled, Bifrost starts automatically on the next OmniRoute boot. LOCAL_ONLY — loopback only.
bashcurl -X POST https://localhost:20128/api/services/bifrost/auto-start \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
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.
bashcurl https://localhost:20128/api/services/{name}/logs \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
See the full OpenAPI specification at GET /api/openapi/spec or docs/openapi.yaml for detailed request/response schemas.
Other measured skills in the registry, with their headline benchmark lift.