Files
OmniRoute/docs/guides/FEATURES.md
Diego Rodrigues de Sa e Souza 5ac4637816 docs: reorganize docs/ + accuracy audit + drop Node 20 (rebased onto current release tip) (#5262)
* docs: move superpowers/research artifacts to isolated _tasks repo + docs tree cleanup

- Move docs/superpowers/{plans,specs} and docs/research/* into the gitignored,
  separately-versioned _tasks/ repo; untrack the two tracked research design docs.
- Add CLAUDE.md "Planning & Research Artifacts" section overriding the superpowers
  default save paths (docs/... -> _tasks/...); align REPOSITORY_MAP and
  DOCUMENTATION_OVERHAUL_PLAN with the new convention.
- Drop 4 now-obsolete /api/discovery/* entries from check-docs-symbols allowlist
  (stale-enforcement) and refresh code/spec path comments to _tasks/...
- Sweeps in concurrent docs-tree restructuring (root-level provider/guide docs,
  compression spec cleanup, .mcp.json.example removal).

* docs: reorganize docs/ tree + fix stale facts across ~26 docs

Phase A — reorganization:
- Move 7 orphan root docs into subfolders (providers/ created; TIERS+USAGE_QUOTA→guides/;
  plugins+PLUGIN_SDK→frameworks/); delete 8 obsolete/redundant docs (SUBMIT_PR superseded
  by CONTRIBUTING; DOCUMENTATION_OVERHAUL_PLAN; INCIDENT_RESPONSE/PERF_BUDGETS/THREAT_MODEL;
  3 ops snapshots). Rebuild README index (was missing ~40 files) + per-folder meta.json nav.
- Clean 14 dangling doc-path references in bin/ ops scripts, scripts/, workflow, tests;
  fix the dockerignore-docs-coverage required-docs path (PROVIDERS→providers/CLAUDE_WEB).

Phase B — content accuracy (verified against code, not the audit summary):
- Functional: ENVIRONMENT flag defaults (INPUT_SANITIZER/MCP_ENFORCE_SCOPES=true,
  COMPRESS_DESCRIPTIONS=false, dynamic heap); MCP-SERVER notion tool names (omniroute_*→
  notion_*) + counts 87→94; coverage gate 75/70→60/60/60/60 (RELEASE_CHECKLIST, COVERAGE_PLAN,
  ERROR_SANITIZATION, CONTRIBUTING); pre-push hook description; regenerate PROVIDER_REFERENCE (237).
- Count drift: providers 237, executors 70, migrations 106, db modules 94, oauth 19,
  strategies 17, MCP 94, flags 38, TS 6.0, open-sse ~900/services 294 across architecture/
  frameworks/ops docs; AUTO-COMBO 9→12 factors w/ correct DEFAULT_WEIGHTS; REASONING +2
  patterns; STEALTH UA defaults; AGENT_PROTOCOLS +cursor-cloud/list-capabilities;
  LANGUAGE_PACKS +id pack.
- Kept Node 20 (runtime guard accepts 20.20.2+; only engines is stricter) and MCP scopes=13
  (mcpScopes.ts) — both were correct in the docs; corrected only the attribution.

* docs: finish content refresh — compression engines, CLI_TOKEN merge, metadata sweep

- Compression: document the additional built-in engines (CCR, headroom, ionizer,
  session-dedup) in COMPRESSION_ENGINES; clarify LLMLingua-2 is the ultra-mode SLM
  backend + cross-ref the extra engines in EXTENDING_COMPRESSION; add the id
  (Indonesian) language pack to LANGUAGE_PACKS.
- AUTO-COMBO: replace the orphan 'How tiers fit' weight table (stale weights) with a
  pointer to the canonical 12-factor DEFAULT_WEIGHTS table.
- Security: merge CLI_TOKEN_AUTH.md (legacy 32-char SHA-256 format) into CLI_TOKEN.md
  as a 'Legacy format — still accepted' section (server accepts both HMAC + legacy),
  delete CLI_TOKEN_AUTH.md, drop it from the index + security nav.
- Metadata: bump stale frontmatter (version/lastUpdated) to 3.8.40/2026-06-28 across the
  doc set audited this pass, and normalize the in-body 'Last updated' header lines to match.

* fix(runtime): drop Node 20 from supported range + align all docs/diagrams/counts

- Node minimum is now 22 (aligned with package.json engines). SUPPORTED_NODE_RANGE in
  src/shared/utils/nodeRuntimeSupport.ts (and the bin/ mirror) drops the 20.x line →
  '>=22.22.2 <23 || >=24.0.0 <27'; getNodeRuntimeSupport now rejects Node 20 as
  unsupported-major. Test updated (TDD): node-runtime-support.test.ts asserts Node 20
  rejected. Docs aligned (TROUBLESHOOTING ×2, TERMUX, RELEASE_CHECKLIST, CODEBASE,
  CLI-TOOLS, README, llm.txt + 42 i18n llm.txt mirrors, skills/cli-serve).
- Diagrams regenerated: mcp-tools-87 -> mcp-tools-94 (34 base + pool 6 = 94) and
  auto-combo-9factor -> auto-combo-12factor (correct DEFAULT_WEIGHTS); SVGs re-rendered
  via mermaid-cli; doc refs + diagrams/README updated; fixed a pre-existing broken
  resilience-3layers image path.
- CLAUDE.md + AGENTS.md aligned to real counts (237 providers, 94 MCP tools / 34 base,
  106 migrations, 94 db modules, 12-factor auto-combo, 17 strategies); README provider
  count 231 -> 237; executor count corrected to 68 (provider executors, excl base/index)
  and OAuth to 18 across architecture docs. check:docs-all now passes (0 strict drift,
  0 broken links); removed dead .mcp.json.example doc link.

* fix(services): update installer Node hint to >=22.22.2 (aligned with dropped Node 20)

* docs: realign counts to current release tip after rebase

The release tip advanced while this work was in flight (Gemini CLI provider/executor
removed by #5246, plus other PRs). Re-counted against the current code and updated:
providers 237->236, executors 68->67, OAuth modules 18->17, open-sse services 294->298;
regenerated PROVIDER_REFERENCE.md (236). check:docs-all passes (0 strict drift).

* docs(changelog) + i18n: record Node 20 drop + fix nodeIncompatibleHint

- CHANGELOG: add [3.8.40] entries for the Node 20.x removal (runtime) and the docs
  reorganization/accuracy audit.
- i18n: nodeIncompatibleHint across all 42 locales no longer lists Node 20.x as
  supported (ASCII + CJK full-width variants), aligned with the dropped Node 20.

* fix(docs): repair CI breakages from the doc moves

- test: cli-plugin-system asserted docs/dev/plugins.md exists; the file moved to
  docs/frameworks/PLUGINS.md — point the test at the new path (Unit fast-path 2/2 fix).
- frontmatter: PLUGINS.md and PLUGIN_SDK.md moved into the fumadocs-indexed
  docs/frameworks/ which requires a 'title' frontmatter; the missing frontmatter
  failed the Next.js MDX build (dast-smoke 'invalid frontmatter'). Added frontmatter
  to both, plus the providers/ docs (consistency; that folder is not indexed).
2026-06-28 22:07:18 -03:00

19 KiB
Raw Blame History

title, version, lastUpdated
title version lastUpdated
OmniRoute — Dashboard Features Gallery 3.8.40 2026-06-28

OmniRoute — Dashboard Features Gallery

🌐 Main README translations: 🇺🇸 English | 🇧🇷 Português (Brasil) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 Filipino | 🇨🇿 Čeština

Visual guide to every section of the OmniRoute dashboard.

📅 Last updated: 2026-06-28 — v3.8.40


v3.8.0 Highlights

The v3.7.x → v3.8.0 cycle added zero-config auto routing, new providers, OAuth flows, deeper resilience, and a much richer CLI experience. Headline features below — full details further in the document and in linked specs.

  • 🤖 Auto Combo / Zero-config auto-routing — use prefixes auto/coding, auto/fast, auto/cheap, auto/offline, auto/smart, auto/lkgp. Backed by a 9-factor scoring engine and 4 curated mode packs (ship-fast, cost-saver, quality-first, offline-friendly)
  • 🆕 Command Code provider (#2199) — first-class registration with model catalog and quota tracking
  • 🆕 Z.AI provider — new free-tier provider with quota labels
  • 🎬 KIE media expansion — extended catalog including video generation models
  • 🔐 Windsurf + Devin CLI OAuth flows (#2168) — end-to-end browser-based login
  • 🆓 9 new free providers — LLM7, Lepton, Kluster, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi, Command Code
  • 🎯 Manifest-aware tier routing W1W4 — provider manifests drive weighted tier selection
  • 🎨 Cursor full OpenAI parity — tool calls, streaming, session management end-to-end
  • 📊 Cursor Pro plan usage — quota & cycle data surfaced in the provider-limits dashboard
  • Service tier breakdown / Codex fast tier analytics — per-tier consumption visibility
  • 📌 Per-session sticky routing — Codex sessions pin to the same account between turns
  • 🔊 Inworld TTS enhancements — voice catalogs, streaming, and latency improvements
  • 🔑 Kiro headless auth — login via local kiro-cli SQLite store, no browser required
  • 📉 DeepSeek quota and limit monitoring — daily/monthly usage exposed via dashboard
  • 🔄 Reset-aware routing strategy — combos now prefer accounts whose quota window resets soonest
  • ⏱️ fallbackDelayMs and dynamic tool limit detection — finer fallback timing + per-provider tool-count limits
  • 🔧 Background mode degradation (Responses API) — falls back to synchronous mode with a structured warning when an upstream lacks background polling
  • 🚦 Per-provider 429 classification + useUpstream429BreakerHints toggle — finer breaker behavior using upstream rate-limit hints
  • 🩺 Model cooldowns dashboard — observe per-model lockouts and manually re-enable from the UI
  • 🔒 MITM dynamic Linux cert detection — works across Debian/Ubuntu, Fedora/RHEL, Arch, and other distros
  • 💻 CLI enhancement suite — 20+ commands including omniroute providers, omniroute combos, omniroute doctor, omniroute setup
  • 🔍 Qdrant embedding model discovery — automatic vector-store model probe
  • 🔑 API Keys / Bearer keys with manage scope — perform admin operations programmatically via API
  • 🏥 Combo target health analytics + structured combo builder — per-target health & UI builder for assembling (provider, model, connection) steps
  • 🤝 GitLab Duo OAuth provider — login with GitLab credentials
  • 🧠 Reasoning Replay Cache — hybrid in-memory + SQLite persistence of reasoning traces

📚 Related docs: Skills Framework · Memory System · Cloud Agents · Webhooks · Reasoning Replay Cache


🔌 Providers

Manage AI provider connections: OAuth providers (Claude Code, Codex), API key providers (Groq, DeepSeek, OpenRouter), and free providers (Qoder, Qwen, Kiro). Kiro accounts include credit balance tracking — remaining credits, total allowance, and renewal date visible in Dashboard → Usage.

OpenRouter connections can store a per-connection preset in Advanced Settings. When set, OmniRoute sends it as the OpenRouter top-level request field, for example "preset": "email-copywriter", unless the client request already supplied its own preset.

Providers Dashboard


🎨 Combos

Create model routing combos with 17 strategies: priority, weighted, fill-first, round-robin, p2c (power-of-two-choices), random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp (last-known-good-provider), context-optimized, context-relay, and fusion (fan out to a panel of models in parallel, then synthesize one answer via a judge). Each combo chains multiple models with automatic fallback and includes quick templates and readiness checks.

Recent combo improvements:

  • Structured combo builder — create each step by selecting provider, model, and exact account/connection
  • Repeated provider support — reuse the same provider many times in one combo as long as the (provider, model, connection) tuple is unique
  • Combo target health — analytics and health surfaces now distinguish individual combo targets/steps instead of collapsing everything into model strings
  • Composite tier orderingdefaultTier -> fallbackTier now influences runtime execution/fallback order for top-level combo steps

Combos Dashboard


📊 Analytics

Comprehensive usage analytics with token consumption, cost estimates, activity heatmaps, weekly distribution charts, and per-provider breakdowns.

Analytics Dashboard


🏥 System Health

Real-time monitoring: uptime, memory, version, latency percentiles (p50/p95/p99), cache statistics, provider circuit breaker states, active quota-monitored sessions, and combo target health.

Health Dashboard


🔧 Translator Playground

Four modes for debugging API translations: Playground (format converter), Chat Tester (live requests), Test Bench (batch tests), and Live Monitor (real-time stream).

Translator Playground


🎮 Model Playground (v2.0.9+)

Test any model directly from the dashboard. Select provider, model, and endpoint, write prompts with Monaco Editor, stream responses in real-time, abort mid-stream, and view timing metrics.


🎨 Themes (v2.0.5+)

Customizable color themes for the entire dashboard. Choose from 7 preset colors (Coral, Blue, Red, Green, Violet, Orange, Cyan) or create a custom theme by picking any hex color. Supports light, dark, and system mode.


⚙️ Settings

Comprehensive settings panel with 7 tabs:

  • General — System storage, backup management (export/import database)
  • Appearance — Theme selector (dark/light/system), color theme presets and custom colors, health log visibility, sidebar item and group separator visibility controls, Endpoint tunnel visibility controls
  • AI — AI assistant features, default routing presets (Auto Combo auto/coding, auto/fast, auto/cheap, auto/smart), reasoning replay cache, and skill/memory toggles
  • Security — API endpoint protection, custom provider blocking, IP filtering, session info
  • Routing — Model aliases, background task degradation, manifest-aware tier routing (W1W4), fallbackDelayMs, per-session sticky routing
  • Resilience — Rate limit persistence, circuit breaker tuning, auto-disable banned accounts, provider expiration monitoring, Context Relay handoff threshold and summary model configuration, per-provider 429 classification & useUpstream429BreakerHints toggle, model cooldowns
  • Advanced — Configuration overrides, configuration audit trail, fallback degradation mode, background mode degradation for Responses API

Settings Dashboard


🔧 CLI Tools

One-click configuration for AI coding tools: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor, and Factory Droid. Features automated config apply/reset, connection profiles, and model mapping.

CLI Tools Dashboard


🤖 CLI Agents (v2.0.11+)

Dashboard for discovering and managing CLI agents. Shows a grid of 17 built-in agents (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, Qwen Code, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, Windsurf, Devin CLI, Kimi Coding, Command Code) with:

  • Installation status — Installed / Not Found with version detection
  • Protocol badges — stdio, HTTP, etc.
  • Custom agents — Register any CLI tool via form (name, binary, version command, spawn args)
  • CLI Fingerprint Matching — Per-provider toggle to match native CLI request signatures, reducing ban risk while preserving proxy IP
  • OAuth-backed agents — Windsurf & Devin CLI now use browser OAuth flows for authentication (v3.8.0+)

🔗 Context Relay (v3.5.5+)

A combo strategy that preserves session continuity when account rotation happens mid-conversation. Before the active account is exhausted, OmniRoute generates a structured handoff summary in the background. After the next request resolves to a different account, the summary is injected as a system message so the new account continues with full context.

Configurable via combo-level or global settings:

  • Handoff Threshold — Quota usage percentage that triggers summary generation (default 85%)
  • Max Messages For Summary — How much recent history to condense
  • Summary Model — Optional override model for generating the handoff summary

Currently supports Codex account rotation. See Context Relay documentation.


🗜️ Prompt Compression (v3.7.9+)

Context & Cache now exposes dedicated pages for Caveman, RTK, and Compression Combos:

  • Caveman — language-aware rule packs, preview, output-mode controls, and analytics
  • RTK — command-aware compression for shell, git, test, build, package, Docker, infra, JSON, and stack-trace output
  • Compression Combos — named pipelines such as rtk -> caveman assigned to routing combos; the default stacked math reaches ~89% average and 78-95% eligible-context savings when both engines apply
  • Raw-output recovery — optional redacted RTK raw-output pointers for debugging compressed failures

See Compression Guide, RTK Compression, and Compression Engines.


🛡️ Proxy Hardening (v3.5.5+)

Comprehensive proxy configuration enforcement across the entire request pipeline:

  • Token Health Check — Background OAuth refresh now resolves proxy config per connection, preventing failures in proxy-required environments
  • API Key Validation — Provider key validation (POST /api/providers/validate) routes through runWithProxyContext, honoring provider-level and global proxy settings
  • undici Dispatcher Fix — Proxy dispatchers use undici's own fetch implementation instead of Node's built-in fetch, resolving invalid onRequestStart method errors on Node.js 22
  • Node.js Version Detection — Login page proactively detects incompatible Node.js versions (24+) and displays a warning banner with instructions to use Node 22 LTS

📧 Email Privacy Masking (v3.5.6+)

OAuth account emails are masked by default (e.g. di*****@g****.com) to prevent accidental exposure when sharing screenshots or recording demos. Use Settings → Appearance → Account email visibility to reveal or mask full account emails globally across providers, combos, logs, quota, and playground screens.


👁️ Model Visibility Toggle (v3.5.6+)

The provider page model list now includes:

  • Real-time search/filter bar — Quickly find specific models
  • Per-model visibility toggle (👁 icon) — Hidden models are grayed out and excluded from the /v1/models catalog
  • Active-count badge (N/M active) — Shows at a glance how many models are enabled vs total

🔧 OAuth Env Repair (v3.6.1+)

One-click "Repair env" action for OAuth providers that restores missing environment variables and fixes broken auth state. Accessible from Dashboard → Providers → [OAuth Provider] → Repair env. Automatically detects and repairs:

  • Missing OAuth client credentials
  • Corrupted env file entries
  • Backup path sanitization

🗑️ Uninstall / Full Uninstall (v3.6.2+)

Clean removal scripts for all installation methods:

Command Action
npm run uninstall Removes the system app but keeps your DB and configurations in ~/.omniroute.
npm run uninstall:full Removes the app AND permanently erases all configurations, keys, and databases.

🖼️ Media (v2.0.3+)

Generate images, videos, and music from the dashboard. Supports OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, AnimateDiff, Stable Audio Open, and MusicGen.


📝 Request Logs

Real-time request logging with filtering by provider, model, account, and API key. Shows status codes, token usage, latency, and response details.

Usage Logs


🌐 API Endpoint

Your unified API endpoint with capability breakdown: Chat Completions, Responses API, Embeddings, Image Generation, Reranking, Audio Transcription, Text-to-Speech, Moderations, and registered API keys. Cloudflare Quick Tunnel, Tailscale Funnel, ngrok Tunnel, and cloud proxy support are available for remote access.

Endpoint Dashboard


🔑 API Key Management

Create, scope, and revoke API keys. Each key can be restricted to specific models/providers with full access or read-only permissions. Visual key management with usage tracking.


📋 Audit Log

Administrative action tracking with filtering by action type, actor, target, IP address, and timestamp. Full security event history.


🖥️ Desktop Application

Native Electron desktop app for Windows, macOS, and Linux. Run OmniRoute as a standalone application with system tray integration, offline support, auto-update, and one-click install.

Key features:

  • Server readiness polling (no blank screen on cold start)
  • System tray with port management
  • Content Security Policy
  • Single-instance lock
  • Auto-update on restart
  • Platform-conditional UI (macOS traffic lights, Windows/Linux default titlebar)
  • Hardened Electron build packaging — symlinked node_modules in the standalone bundle is detected and rejected before packaging, preventing runtime dependency on the build machine (v2.5.5+)
  • Graceful shutdown — Electron before-quit shuts down Next.js cleanly, preventing SQLite WAL database locks (v3.6.2+)

📖 See electron/README.md for full documentation.


🌐 V1 WebSocket Bridge (v3.6.6+)

OmniRoute now supports OpenAI-compatible WebSocket clients via the /v1/ws upgrade endpoint. The custom scripts/dev/v1-ws-bridge.mjs server wraps Next.js and upgrades WS connections to full bidirectional streaming sessions. Authentication uses the same API key or session cookie as HTTP requests.

Key behaviours:

  • WS upgrade validated by src/lib/ws/handshake.ts before the connection is established
  • Streams terminated cleanly on session close or upstream error
  • Works alongside the existing HTTP+SSE streaming path simultaneously

🔑 Sync Tokens & Config Bundle (v3.6.6+)

Multi-device and external operator access is now possible via scoped sync tokens:

  • POST /api/sync/tokens — Issue a new sync token (scoped, with optional expiry)
  • DELETE /api/sync/tokens/:id — Revoke a token
  • GET /api/sync/bundle — Download a versioned, ETag-keyed JSON snapshot of all non-sensitive settings (passwords redacted)

The config bundle is built by src/lib/sync/bundle.ts. Consumers compare the ETag response header to detect changes without re-downloading the full payload.


🧠 GLM Thinking Preset (v3.6.6+)

GLM Thinking (glmt) is now a registered first-class provider: 65 536 max output tokens, 24 576 thinking budget, 900 s default timeout, Claude-compatible API format, and shared usage sync with the GLM family.

Hybrid token counting also lands in v3.6.6: when a Claude-compatible provider exposes /messages/count_tokens, OmniRoute calls it before large requests with graceful estimation fallback.


🛡️ Safe Outbound Fetch & SSRF Guard (v3.6.6+)

All provider validation and model discovery calls now go through a two-layer outbound guard:

  1. URL guard (src/shared/network/outboundUrlGuard.ts) — Blocks private/loopback/link-local IP ranges before the socket is opened.
  2. Safe fetch wrapper (src/shared/network/safeOutboundFetch.ts) — Applies the URL guard, normalises timeouts, and retries transient errors with exponential backoff.

Guard violations surface as HTTP 422 (URL_GUARD_BLOCKED) and are written to the compliance audit log via providerAudit.ts.


🔄 Cooldown-Aware Retries (v3.6.6+)

Chat requests now automatically retry when an upstream provider returns a model-scoped cooldown. Configurable via REQUEST_RETRY (default: 2) and MAX_RETRY_INTERVAL_SEC (default: 30 s). Rate-limit header learning improved across x-ratelimit-reset-requests, x-ratelimit-reset-tokens, and Retry-After — per-model cooldown state is visible in the Resilience dashboard.


📋 Compliance Audit v2 (v3.6.6+)

The audit log has been expanded with cursor-based pagination, request context enrichment (request ID, user agent, IP), structured auth events, provider CRUD events with diff context, and SSRF-blocked validation logging. New events emitted by src/lib/compliance/providerAudit.ts.