How to Set Up Remote Mode with OmniRoute: A Complete Guide
Remote mode in OmniRoute enables you to control a server instance running on a VPS or cloud host from your local CLI using scoped tokens and context management.
OmniRoute is an open-source LLM routing platform that supports remote operation, allowing developers to centralize model provider management on a dedicated server while interacting with it from any local machine. Setting up remote mode involves starting the server on your remote host, generating secure access credentials, and configuring your local CLI to target that instance.
Architecture of Remote Mode
Remote mode operates through a client-server architecture where the OmniRoute server listens on a configurable port (default 20128) and your local CLI acts as the client. According to the source code in bin/cli/program.mjs, the CLI parses --remote and --api-key flags to route API calls to the specified host instead of localhost.
The authentication layer, implemented in src/app/api/v1/_shared/auth.ts, validates scoped tokens passed via the Authorization header, while src/lib/auth/token.ts handles token generation and scope verification on the client side.
Installing and Starting the Remote Server
First, install OmniRoute on your target machine and start the server process.
Connect to your remote host via SSH and install the package globally:
npm install -g omniroute
omniroute start &
By default, the server exposes an HTTP endpoint on port 20128. You can verify the server is running by checking that the process is listening on the expected interface. For production deployments, consult the docs/guides/REMOTE-MODE.md file for TLS termination and NGINX reverse proxy configurations.
Generating Scoped Access Tokens
Remote connections require a scoped token to authenticate requests. OmniRoute supports OAuth-based flows and manual token generation.
Using Google OAuth (Recommended):
Run the following command on your local machine to trigger the authentication flow:
omniroute login antigravity
This stores the credential in ~/.omniroute/tokens.json and prints a token string beginning with omniroute-cred-v1..
Creating a Limited-Scope Token:
For automation or specific use cases, generate a token with restricted permissions:
omniroute token create --scopes remote --expires-in 30d
This creates a token valid only for remote operations that expires after 30 days.
Configuring Remote Contexts
While you can pass --remote and --api-key flags to every command, OmniRoute provides context management to persist these settings.
Add a named context for your remote server:
omniroute contexts add my-vps http://<remote-host>:20128 <token>
Activate the context for the current session:
omniroute contexts use my-vps
Once active, commands like omniroute setup-claude or omniroute launch automatically target the remote instance without requiring explicit flags. As implemented in the CLI, context data is retrieved from local configuration files referenced in bin/cli/program.mjs.
Executing Commands Against the Remote Instance
With the remote server running and authentication configured, you can now execute setup and launch commands targeting the remote host.
Explicit flag usage (no saved context):
omniroute setup-claude \
--remote http://203.0.113.42:20128 \
--api-key omniroute-cred-v1.abcdef
Using an active context:
omniroute contexts use my-vps
omniroute launch
The launch command starts Claude Code (or other configured clients) with environment variables ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN pointing to your remote OmniRoute catalog, as detailed in docs/guides/CLI-INTEGRATIONS.md.
Switching Between Local and Remote Mode
To return to local operation, clear the active remote context:
omniroute contexts clear
Alternatively, simply omit the --remote flag when running commands, and the CLI will default to http://localhost:20128.
Summary
- Remote mode allows centralized OmniRoute management on a VPS or cloud server while controlling it from any local machine via the CLI.
- The server listens on port 20128 by default, with authentication handled through scoped tokens stored in
~/.omniroute/tokens.json. - Use
omniroute contexts addandomniroute contexts useto save remote connection details and avoid repetitive flag passing. - Core implementation resides in
bin/cli/program.mjs(flag parsing),src/lib/auth/token.ts(token logic), andsrc/app/api/v1/_shared/auth.ts(request validation). - Switch back to local mode anytime using
omniroute contexts clear.
Frequently Asked Questions
What port does OmniRoute use for remote mode?
OmniRoute defaults to port 20128 for remote connections. You can specify a custom port when starting the server or when configuring your remote context if your infrastructure requires a different listening port.
How do I create a scoped token for remote access?
Use the command omniroute token create --scopes remote to generate a token limited to remote operations. For interactive use, omniroute login antigravity handles OAuth and stores the credential automatically. Both methods create tokens validated by the middleware in src/app/api/v1/_shared/auth.ts.
Can I switch between local and remote mode easily?
Yes. Run omniroute contexts use <name> to activate a remote context, and omniroute contexts clear to revert to local mode. The CLI checks for an active context in bin/cli/program.mjs before defaulting to localhost, making environment switching seamless.
Is remote mode secure for production use?
Remote mode supports scoped tokens with expiration dates and specific permission sets, implemented in src/lib/auth/token.ts. For production, configure TLS termination and reverse proxies (documented in docs/guides/REMOTE-MODE.md) to encrypt traffic between your local CLI and the remote OmniRoute server.
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 →