Repository navigation
Session Sync Extension
⚠️ Third-party software — not audited by the OmniRoute team. The extension and local bridge described on this page live in a separate, independently maintained repository (avichal15/omniroute-session-sync). The security properties listed below (loopback-only traffic, Cloud Sync enforcement, no disk persistence, etc.) are the author's own description of that project's behavior — they have not been independently verified by the OmniRoute team. Install and use it at your own risk, and review its source before granting it access to your provider credentials.
OmniRoute supports several web-interface provider adapters, including ChatGPT Web, Gemini Web, Z.ai Web, Qwen Web, Grok Web, and DeepSeek Web. These adapters use session cookies from your browser rather than traditional API keys.
Web session cookies periodically expire or rotate. When that happens, requests sent to that provider fail until a fresh Cookie header is pasted into OmniRoute's dashboard.
The OmniRoute Session Sync companion extension automates this renewal path locally:
[ Google Chrome Extension ]
|
| 1. Detects cookie rotation for mapped domain
| 2. Reassembles tokens (e.g. multi-chunk ChatGPT session)
v
[ Local Sync Bridge (Port 20129) ]
|
| 3. Authenticates via paired Bearer token
| 4. Checks that Cloud Sync is disabled
| 5. PUT /api/providers/:id
v
[ OmniRoute Management API (Port 20128) ]
|
| 6. Encrypts and persists updated cookie in storage.sqlite
v
[ Active Inference / Fallback Combos ]
-
Automatic Cookie Detection: Listens to
chrome.cookies.onChangedacross configured provider domains with per-provider debouncing (including Qwen's apexqwen.aidomain and legacy hosts). - Chunked Token Reassembly: Handles multi-part session cookies (such as ChatGPT's numeric token chunks) in sequence.
- Single Connection Mapping: You choose the exact connection ID each browser provider updates. Other accounts and official API providers remain unaffected.
- Supervised Sidecar Runtime: The local bridge runs on port 20129 as an independent, supervised sidecar process alongside OmniRoute (port 20128). This decouples bridge liveness from OmniRoute's event loop, so pending browser session updates remain queued and retry automatically if OmniRoute is restarting.
-
Priority Fallback Combos: Easily creates or updates a
browser-sessionscombo containing up to eight browser models ordered by priority.
Session Sync operates strictly locally:
-
Loopback Only: All network communication stays on
127.0.0.1. Requests presenting non-loopback Host headers are rejected. - Cloud Sync Enforcement: The bridge queries OmniRoute settings before every write. If Cloud Sync is enabled, credential updates are refused.
- No Plaintext Persistence on Disk: The sync bridge holds cookies in memory only during transmission to OmniRoute. Cookies are never written to disk files, state records, or diagnostic logs.
-
Isolated User State: Pairing metadata, non-secret acknowledgement hashes, and connection mappings live in
%USERPROFILE%\.omniroute\session-sync\state.json, protected by user-only ACLs (0600). - One-Time Pairing: Extension registration requires an owner-generated 8-character pairing code that expires in 5 minutes.
- Node.js 24 LTS (or matching OmniRoute runtime).
- Google Chrome 120 or newer.
- Local OmniRoute instance running on port 20128.
- Existing provider connections configured under the target web providers.
Clone the project to your local machine:
git clone https://github.com/avichal15/omniroute-session-sync.git
cd omniroute-session-syncRun the embedded setup command:
npm run setup:embeddedThis adds --import=.../bridge/omniroute-preload.mjs to OmniRoute's local .env and configures autostart via Windows Task Scheduler (OmniRoute Session Sync).
Start OmniRoute with integrated sync:
npm run start:integratedCheck status to verify both services are running:
npm run status- Open Chrome and navigate to
chrome://extensions. - Enable Developer mode in the top right.
- Click Load unpacked and select the
extension/folder from theomniroute-session-syncdirectory. - Verify that OmniRoute Session Sync (v2.0.1) is listed.
- In your terminal, generate an owner pairing code:
npm run pair
- Click the extension icon in Chrome, paste the code into the popup, and click Connect.
- For each provider, select your OmniRoute connection from the dropdown and click Apply.
- Sign in to the provider website in Chrome, then click Sync and Test.
In the popup's Model Fallback section, select and order your preferred models (for example, chatgpt-web/gpt-5.5, gemini-web/gemini-3.5-flash, qwen-web/qwen3.7-plus, zai-web/glm-5.3).
Click Save fallback to create or update the browser-sessions combo in OmniRoute. You can then route inference requests to:
{
"model": "browser-sessions",
"messages": [{ "role": "user", "content": "Hello" }]
}If one provider session expires or hits an upstream quota limit, OmniRoute automatically falls back to the next available browser model in your list.
OmniRoute · Website · npm · Docker Hub
- Setup Guide
- User Guide
- Features
- Quick Start (Docker)
- Electron Desktop App
- Termux (Android)
- PWA Guide
- MCP Server
- A2A Server
- Agent Protocols
- OpenCode Plugin
- Webhooks
- Cloud Agents
- Skills
- Memory
- Evals
- Gamification
- Guardrails
- Compliance
- Error Sanitization
- Public Credentials
- Route Guard Tiers
- Stealth Guide
- CLI Token Auth