Deploying Scalable Agents
microsoft/ai-agents-for-beginners
Take a working agent prototype to a scalable, observable production deployment on Microsoft Foundry.
Starts, stops and restarts the OmniRoute server from the omniroute CLI, with daemon mode, ports, TLS, auto-recovery, tray integration and a dashboard shortcut.
$ npx skills add diegosouzapw/OmniRoute --skill cli-serve -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install diegosouzapw/OmniRoute cli-serve --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/diegosouzapw/OmniRoute.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cli-serve .claude/skills/cli-serve && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cli-serve" agent skill from https://github.com/diegosouzapw/OmniRoute/tree/release%2Fv3.8.52/skills/cli-serve into .claude/skills/cli-serve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-serve", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/diegosouzapw/OmniRoute/tree/release%2Fv3.8.52/skills/cli-serveType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add diegosouzapw/OmniRoute --skill cli-serve -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install diegosouzapw/OmniRoute cli-serve --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/diegosouzapw/OmniRoute.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cli-serve .agents/skills/cli-serve && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cli-serve" agent skill from https://github.com/diegosouzapw/OmniRoute/tree/release%2Fv3.8.52/skills/cli-serve into .agents/skills/cli-serve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-serve", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add diegosouzapw/OmniRoute --skill cli-serve -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install diegosouzapw/OmniRoute cli-serve --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/diegosouzapw/OmniRoute.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cli-serve .cursor/skills/cli-serve && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cli-serve" agent skill from https://github.com/diegosouzapw/OmniRoute/tree/release%2Fv3.8.52/skills/cli-serve into .cursor/skills/cli-serve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-serve", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/diegosouzapw/OmniRoute.git --path skills/cli-serve--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add diegosouzapw/OmniRoute --skill cli-serve -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install diegosouzapw/OmniRoute cli-serve --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/diegosouzapw/OmniRoute.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cli-serve .gemini/skills/cli-serve && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cli-serve" agent skill from https://github.com/diegosouzapw/OmniRoute/tree/release%2Fv3.8.52/skills/cli-serve into .gemini/skills/cli-serve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-serve", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install diegosouzapw/OmniRoute cli-serveInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add diegosouzapw/OmniRoute --skill cli-serve -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/diegosouzapw/OmniRoute.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cli-serve .github/skills/cli-serve && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cli-serve" agent skill from https://github.com/diegosouzapw/OmniRoute/tree/release%2Fv3.8.52/skills/cli-serve into .github/skills/cli-serve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-serve", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add diegosouzapw/OmniRoute --skill cli-serve -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install diegosouzapw/OmniRoute cli-serve --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/diegosouzapw/OmniRoute.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cli-serve .opencode/skills/cli-serve && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cli-serve" agent skill from https://github.com/diegosouzapw/OmniRoute/tree/release%2Fv3.8.52/skills/cli-serve into .opencode/skills/cli-serve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-serve", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cli-serveStarts, stops and restarts the OmniRoute server from the omniroute CLI, with daemon mode, ports, TLS, auto-recovery, tray integration and a dashboard shortcut.
The omniroute binary is both the server launcher and a management CLI with 250+ commands across 39 groups. This skill covers the lifecycle ones: serve starts the server with options for port, daemon mode, logging, a restart limit, disabling auto-recovery, system tray on or off, a ready timeout and TLS certificate and key paths, stop and restart end or cycle it, and dashboard opens the web interface or prints its URL.
Setup notes say to install with npm, which needs Node.js 22.22.2 or later (or 24 and later), and to check the install with the version and help commands. Commands that talk to the server read a base URL and an API key from OMNIROUTE_BASE_URL and OMNIROUTE_API_KEY or from per-command flags. Global flags choose table, JSON, JSONL or CSV output and disable prompts for CI and shell scripts.
Read from SKILL.md and the folder at commit f8a8131. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmjqbrewFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OMNIROUTE_API_KEYSTORAGE_ENCRYPTION_KEYOMNIROUTE_SETUP_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
OmniRoute Server CLI loads about 2.6k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 504 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
NCRYPTION_KEY missing` → set the key in `.env` or run `reset-encrypted-columns --force` to wipe and re-enter credentialsAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from diegosouzapw/OmniRoute at commit f8a8131, republished under its MIT licence (© diegosouzapw). 504 words, ~2,609 tokens.
.claude/skills/cli-serve/SKILL.md (or your agent's skills folder).<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->
Start, stop, and restart the OmniRoute server from the CLI. Manage daemon mode, port configuration, auto-recovery, system tray integration, and the dashboard open shortcut.
npm install -g omniroute # or: npx omniroute
omniroute --versiondashboardFlags:
--url--port <port>--tuiExample:
omniroute dashboardrestartFlags:
--port <port>Example:
omniroute restartserveFlags:
--port <port>--no-open--daemon--log--no-recovery--max-restarts <n>--tray--no-tray--ready-timeout <ms>--tls-cert <path>--tls-key <path>Example:
omniroute servestopExample:
omniroute stop<!-- skill:custom-start -->
<!-- Aggregated from: omniroute-cli (setup + index), omniroute-cli-admin (lifecycle/setup/backup/tunnel) -->
The omniroute binary ships with the OmniRoute server. It is both the server launcher and a full management CLI with 250+ commands across 39 groups.
npm install -g omniroute # npm registry
# or: use the binary bundled with the desktop appRequires Node.js ≥22.22.2 or ≥24.
Verify:
omniroute --version # prints installed version
omniroute --help # full command treeEvery CLI command that talks to the server reads two values:
| Source | Variable / Flag |
|---|---|
| Base URL | OMNIROUTE_BASE_URL or --base-url |
| API key | OMNIROUTE_API_KEY or --api-key |
Default base URL: http://localhost:20128
export OMNIROUTE_BASE_URL="http://localhost:20128"
export OMNIROUTE_API_KEY="sk-..." # from Dashboard → API ManagerFor a remote server:
export OMNIROUTE_BASE_URL="https://your-server.com"| Flag | Description |
|---|---|
--base-url <url> | Override server URL for this invocation |
--api-key <key> | Override API key for this invocation |
--output <format> | Output format: table (default), json, jsonl, csv |
--json | Shorthand for --output json |
--non-interactive | Disable prompts — for CI / shell scripts |
--no-open | Don't auto-open the browser on start |
--port <n> | Override default port 20128 |
--help, -h | Show help for the current command |
--version, -v | Print the installed version |
All listing commands support --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| Capability | Skill |
|---|---|
| Server admin + backup | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-admin/SKILL.md |
| Provider & key management | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-providers/SKILL.md |
| Cloud agents (Codex / Devin / Jules) | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-cloud/SKILL.md |
| Evals & benchmarking | https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute-cli-eval/SKILL.md |
Connection refused → server not running; run omniroute or omniroute serve401 Unauthorized → wrong or missing API keycommand not found: omniroute → not in PATH; check npm root -g or re-installdoctor reports SQLite incompatible → npm rebuild better-sqlite3 in the app directoryRequires the omniroute CLI. See CLI entry-point skill for install + global flags.
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 setupomniroute setup --non-interactive \
--password 'admin-password' \
--add-provider \
--provider openai \
--api-key 'sk-...' \
--test-providerEnvironment variables for non-interactive setup:
| Variable | Purpose |
|---|---|
OMNIROUTE_SETUP_PASSWORD | Admin password (≥8 chars) |
OMNIROUTE_PROVIDER | Provider id (e.g. openai, anthropic) |
OMNIROUTE_PROVIDER_NAME | Display name for the connection |
OMNIROUTE_PROVIDER_BASE_URL | Optional OpenAI-compatible base URL override |
OMNIROUTE_API_KEY | Provider API key |
OMNIROUTE_DEFAULT_MODEL | Optional default model |
DATA_DIR | Override OmniRoute data directory |
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 overrideChecks performed: Config, Database, Storage/encryption, Port, Node runtime, Native binary (better-sqlite3), Memory, Server liveness.
Exit code is non-zero if any check fails — useful in 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 stateOn Linux: creates a systemd user service (~/.config/systemd/user/omniroute.service) and enables linger so the service can start after reboot without a graphical login; on desktop sessions it also adds an XDG autostart entry with --tray. On macOS: LaunchAgent plist. On Windows: registry startup entry.
Expose a local OmniRoute instance via a secure tunnel:
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 tunnelThe tunnel URL is printed and can be used as OMNIROUTE_BASE_URL from remote machines.
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 SQLiteUse reset-encrypted-columns --force only if STORAGE_ENCRYPTION_KEY was lost and you need to re-enter all provider API keys.
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 updatedoctor shows STORAGE_ENCRYPTION_KEY missing → set the key in .env or run reset-encrypted-columns --force to wipe and re-enter credentialsdoctor reports native binary fail → npm rebuild better-sqlite3 in the OmniRoute app directorytunnel create cloudflare hangs → ensure cloudflared is installed: brew install cloudflare/cloudflare/cloudflared<!-- skill:custom-end -->
© diegosouzapw, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/cli-serve of diegosouzapw/OmniRoute.
Open the folder on GitHubat commit f8a8131
OmniRoute Server CLI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| OmniRoute Server CLI this skilldiegosouzapw/OmniRoute | 74k | — | ~2.6k | Automated safety check: Notes | MIT | |
| Deploying Scalable Agentsmicrosoft/ai-agents-for-beginners | 77k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Deploying Scalable Agentsmicrosoft/ai-agents-for-beginners | 77k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Routing Architecturemajiayu000/litellm-rs | 117 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Infrastructuretheopenco/llmgateway | 1.7k | — | ~714 | Automated safety check: Pass | Custom licence | |
| SageMaker Production Defaultshuggingface/skills | 11k | 1 repos | ~6.9k | Automated safety check: Pass | Apache-2.0 |
microsoft/ai-agents-for-beginners
Take a working agent prototype to a scalable, observable production deployment on Microsoft Foundry.
microsoft/ai-agents-for-beginners
Take one working agent prototype go scalable, observable production deployment for Microsoft Foundry.
majiayu000/litellm-rs
LiteLLM-RS Routing Architecture. An agent skill from majiayu000/litellm-rs.
theopenco/llmgateway
Production infrastructure and request-origin facts for LLM Gateway — GCP hosting, production hostnames and which app serves each, deploy ordering, client IP extraction, forwarded headers, and…
huggingface/skills
Deploys SageMaker endpoints with autoscaling, CloudWatch alarms and tags on by default, using scripts for real-time, scale-to-zero and async setups.
Azure-Samples/get-started-with-ai-agents
Creates an azd environment, checks RBAC and model quota, provisions an AI agent app on Azure with azd up and health-checks the deployed app.
diegosouzapw/OmniRoute
Backup and restore OmniRoute data from the CLI. Trigger incremental snapshots, sync to cloud storage, manage backup schedules, and restore from archive files.
diegosouzapw/OmniRoute
Read and update global application settings: system prompts, thinking budget, IP filters, payload rules, combo defaults, and require-login configuration.
diegosouzapw/OmniRoute
Runs a scoped, read-only quality scan on a repository candidate and reports exact evidence, failures and frozen debt, without treating a static scan as release acceptance.
diegosouzapw/OmniRoute
Trigger system backups, restore from backup files, and manage the SQLite database lifecycle. Supports export, import, and incremental snapshot strategies.
diegosouzapw/OmniRoute
Manages AI provider connections, API keys, OAuth flows and connection tests through OmniRoute's REST API across its 327-provider catalog.
diegosouzapw/OmniRoute
Configure and test prompt compression from the CLI. Manage RTK filters, Caveman rules, stacked compression modes, and preview compression output with real…
Categories
Starts, stops and restarts the OmniRoute server from the omniroute CLI, with daemon mode, ports, TLS, auto-recovery, tray integration and a dashboard shortcut. The omniroute binary is both the server launcher and a management CLI with 250+ commands across 39 groups. This skill covers the lifecycle ones: serve starts the server with options for port, daemon mode, logging, a restart limit, disabling auto-recovery, system tray on or off, a ready timeout and TLS certificate and key paths, stop and restart end or cycle it, and dashboard opens the web interface or prints its URL.
OmniRoute Server CLI fits situations like: starting the OmniRoute server in the background on a chosen port; restarting or stopping the server after a configuration change; running the server with TLS certificate and key files; pointing CLI commands at a remote OmniRoute server.
Run `npx skills add diegosouzapw/OmniRoute --skill cli-serve -a claude-code`. Or copy the skill folder (skills/cli-serve in diegosouzapw/OmniRoute) into .claude/skills/cli-serve in your project. Claude Code loads it when a task matches its description.
Run `npx skills add diegosouzapw/OmniRoute --skill cli-serve -a codex`. Or copy the skill folder (skills/cli-serve in diegosouzapw/OmniRoute) into .agents/skills/cli-serve in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add diegosouzapw/OmniRoute --skill cli-serve -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cli-serve, .gemini/skills/cli-serve, .github/skills/cli-serve and .opencode/skills/cli-serve in your project.
Going by SKILL.md and its folder, OmniRoute Server CLI needs the command-line tools its instructions call (npm, jq and brew) and credentials named OMNIROUTE_API_KEY, STORAGE_ENCRYPTION_KEY and OMNIROUTE_SETUP_PASSWORD. Our summary lists: Node.js 22.22.2 or later, or 24 and later; The omniroute package installed with npm.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
OmniRoute Server CLI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with OmniRoute Server CLI: Deploying Scalable Agents (microsoft/ai-agents-for-beginners, 77k stars), Deploying Scalable Agents (microsoft/ai-agents-for-beginners, 77k stars), Routing Architecture (majiayu000/litellm-rs, 117 stars) and Infrastructure (theopenco/llmgateway, 1.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
diegosouzapw (a GitHub user) maintains it in diegosouzapw/OmniRoute, which has 74,003 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 8, 2026.
Source: diegosouzapw/OmniRoute on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.