OmniRoute CLI Commands: Complete Guide to the omniroute Binary Options
The omniroute binary provides 70+ CLI commands ranging from server control to provider setup, all located in bin/cli/commands/*.mjs and registered automatically by filename.
The OmniRoute project's command-line interface is built on a modular architecture where each JavaScript module becomes a top-level sub-command. This design makes the CLI highly extensible—adding a new command requires only a new file in the commands directory. The following guide covers every available command in release v3.8.50, organized by functional category.
How OmniRoute CLI Commands Work
The command discovery mechanism lives in bin/cli/program.mjs. This entry point scans bin/cli/commands/*.mjs and registers each file as a sub-command named after its basename (minus the .mjs extension). Command implementations export their arguments, description, and handler function.
# Generic invocation pattern
omniroute <command> [options]
# Get help for any command
omniroute <command> --help
Server Lifecycle Commands
Control the OmniRoute API server with these core commands:
serve— Starts the Next.js API server (primary entry point). Defined inbin/cli/commands/serve.mjs, this launches the main HTTP endpoint that handles all routing requests.status— Displays health status of running OmniRoute instances. Queries the/healthendpoint and reports component readiness.stop— Gracefully terminates a running OmniRoute process.restart— Restarts the service, applying configuration changes without manual stop/start.launch— Starts a new instance with a custom configuration file.launch-codex— Convenience wrapper for launching a GitHub Copilot (Codex) specific instance.
Diagnostics and Monitoring
Troubleshoot and observe system behavior:
doctor— Runs a comprehensive diagnostic suite to detect configuration errors, missing dependencies, and common setup issues.health— Performs a quick health check on internal components (shorter thanstatus).logs— Streams recent log entries from the OmniRoute logger with filtering options.runtime— Displays runtime information including Node.js version, dependency versions, and environment flags.
Authentication and Security
Manage access credentials and policies:
login— Authenticates the CLI against an OmniRoute server and persists API keys to local storage. Implemented inbin/cli/commands/login.mjs.keys— Lists, creates, or revokes API keys for programmatic access.tokens— Displays current authentication tokens or refreshes expired credentials.policy— Views and updates routing policies and quota enforcement rules.oauth— Handles OAuth-based provider authentication flows and token refresh.
Provider Management
Interact with AI model providers and their configurations:
providers— Lists all registered providers with their capabilities and connection status.provider-cmd— Executes provider-specific custom commands for advanced configuration.models— Enumerates available models for a specified provider.pricing— Retrieves and displays current pricing information from providers.usage— Reports detailed usage statistics including token consumption and request counts.quota— Shows current quota limits and consumption against limits.test-provider— Runs a health probe against a provider endpoint to verify connectivity.
Provider Setup Commands
OmniRoute includes dedicated setup wizards for popular AI coding assistants and providers. Each command in bin/cli/commands/setup-*.mjs guides through provider-specific authentication and configuration:
| Command | Target Provider |
|---|---|
setup-aider |
Aider AI assistant |
setup-claude |
Anthropic Claude |
setup-cline |
Cline VS Code extension |
setup-codex |
GitHub Copilot / Codex |
setup-continue |
Continue.dev extension |
setup-cursor |
Cursor editor |
setup-crush |
Crush AI |
setup-goose |
Goose AI |
setup-kilo |
Kilo code assistant |
setup-opencode / setup-open-code |
Generic OpenAI-compatible endpoints |
setup-qwen |
Alibaba Qwen models |
setup-roo |
Roo Code assistant |
Advanced Features and Extensions
Access specialized OmniRoute capabilities:
skills— Lists, enables, disables, or executes built-in skills fromsrc/lib/skills/.memory— Manages persistent conversational memory (add entries, list history, clear storage).mcp— Interacts with the Model Control Protocol server for advanced orchestration.plugin— Manages plugins: install, enable, disable, and list installed extensions.translator— Converts between provider API formats (e.g., OpenAI ↔ Anthropic Claude request schemas).sim/simulate— Simulates requests against providers for debugging without actual API calls.stream— Sends streaming (Server-Sent Events) requests to providers and displays real-time output.
Infrastructure and Networking
Configure deployment topology and connectivity:
nodes— Displays node topology for distributed OmniRoute deployments.tunnel— Manages tunnel services (Cloudflare Tunnel, ngrok, etc.) for exposing local instances.oneproxy— Controls the built-in one-proxy transport layer.redis— Interacts with the optional Redis cache layer for rate limiting and session storage.webhooks— Lists, creates, and tests webhook endpoints for event notifications.
Development and Testing Tools
Support local development and evaluation workflows:
eval— Runs user-provided evaluation scripts against models and reports results.repl— Starts an interactive REPL for quick API exploration and ad-hoc requests.env— Prints the effective environment configuration after all overrides and defaults.files— Manages files stored in the OmniRoute data directory.tags— Organizes providers and models with metadata tags.
Maintenance and Updates
Keep the installation current and healthy:
update— Checks for and applies updates to theomniroutebinary itself.telemetry— Configures anonymous usage reporting and displays current settings.sync— Synchronizes local configuration with remote state.resilience— Displays and adjusts resilience profiles for fallback and retry behavior.reset-encrypted-columns— Resets encryption on selected database columns (recovery operation).registry— Shows the internal tool and skill registry for debugging.
Summary
- OmniRoute's CLI contains 70+ commands auto-discovered from
bin/cli/commands/*.mjsfiles - Core architecture:
bin/cli/program.mjsloads each.mjsfile as a sub-command by filename - Command categories cover: server lifecycle, diagnostics, authentication, provider management, setup wizards, advanced features, infrastructure, development tools, and maintenance
- Provider setup commands exist for all major AI coding assistants (Claude, Copilot, Cursor, Continue, Aider, and others)
- All commands follow consistent
omniroute <command> [options]syntax with built-in--help
Frequently Asked Questions
How do I discover all available omniroute commands without reading source files?
Run omniroute --help to see the complete list. The help output is generated dynamically by scanning bin/cli/commands/*.mjs, so it always reflects the installed version's actual capabilities.
What is the difference between setup and the specific setup-* commands?
The generic setup command provides a wizard for configuring new OpenAI-compatible providers. The specific setup-* commands (like setup-claude or setup-cursor) include provider-specific prompts, default endpoints, and authentication flows tailored to each service.
Where are command implementations stored in the repository?
All CLI commands live in bin/cli/commands/*.mjs. Shared utilities for argument parsing and output formatting are in bin/cli/utils/*.mjs. The main entry point that registers commands is bin/cli/program.mjs.
Can I add custom commands to the omniroute binary?
Yes. Create a new .mjs file in bin/cli/commands/ following the export pattern used by existing commands. The CLI will automatically register it on next invocation. For persistent custom commands, maintain changes in a fork or use the plugin command system for extensions.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →