-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
V3.8.0
Release date: 2026-05-15 Highlights: 7 new features + tier UX overhaul + 10 public AI agent skills.
Compression engine specifically for verbose MCP outputs (browser snapshots, accessibility trees). Collapses ≥30 repeated sibling lines into head + summary
- tail, preserves
[ref=eXX]anchors required by Playwright/computer-use, hard-truncates oversized text with a navigation hint.
- New engine:
open-sse/services/compression/engines/mcpAccessibility/ - Settings:
compression.mcpAccessibility(migration 056) - Expected savings: 60-80% on browser snapshot tool results
Ten SKILL.md manifests under skills/omniroute*/ published for external AI
agents (Claude Desktop, ChatGPT, Cursor, Cline) to consume via raw GitHub URL.
Zero-friction onboarding: tell your agent to fetch one URL and start routing.
CLI users now get a system tray icon without needing Electron. Windows uses
PowerShell NotifyIcon (zero new binaries, AV-friendly). macOS/Linux use the
systray2 fork installed lazily into ~/.omniroute/runtime/. Includes
cross-platform autostart (LaunchAgent / .desktop / registry).
- New flag:
omniroute --tray - New command:
omniroute config tray <enable|disable> - New modules:
bin/cli/tray/
HMAC-SHA256(machine-id, salt) → constant-time-compared token sent via
x-omniroute-cli-token header. Lets CLI commands authenticate locally
without JWT/password.
- Accepted only on loopback host + whitelisted read-only routes
- Salt rotation via
OMNIROUTE_CLI_SALTenv var - Falls back to
~/.omniroute/machine-id(0600) ifnode-machine-idfails - Docs:
docs/security/CLI_TOKEN.md
All API routes classified into 5 tiers (public, read-only, protected,
always, local-only). Spawn-capable routes (MCP, CLI tools, OAuth
callbacks, MITM, skills) enforce loopback host+origin even with valid JWT —
leaked JWT via tunnel can no longer trigger child process spawn.
- New module:
src/lib/auth/routeGuard.ts - New Hard Rule #15 in
CLAUDE.md - Docs:
docs/security/ROUTE_GUARD_TIERS.md
Caveman prompts (LITE/FULL/ULTRA) now embed a shared boundary clause instructing the LLM to keep code blocks, file paths, commands, errors, and URLs exact, and to write security warnings and irreversible-action confirmations in normal prose.
- New constant:
SHARED_BOUNDARIESinopen-sse/services/compression/outputMode.ts - All 6 languages × 3 intensities updated
-
alreadyAppliedcheck order fixed (must precedeshouldBypassCavemanOutputMode)
Five-step driver resolution chain:
bundled better-sqlite3 → runtime-installed better-sqlite3 → lazy install
→ node:sqlite (Node ≥22.5) → bundled sql.js (WASM). Each native binary is
validated against expected platform magic bytes (ELF / Mach-O / PE) before
load. Solves Windows EBUSY error on global updates while OmniRoute is running.
- New scripts:
scripts/postinstall.mjs,bin/cli/runtime/ - Runtime dir:
~/.omniroute/runtime/ - New helper:
src/lib/db/core.ts::ensureDbInitialized() - Docs:
docs/ops/SQLITE_RUNTIME.md
README "Why OmniRoute?" section enhanced with ASCII tier diagram and comparison
table. New /dashboard/onboarding/steps/TierTour.tsx step shows tier flow on
first run with light/dark SVG assets. Home dashboard gains "Tier coverage"
widget with empty-state CTA.
- New assets:
images/tier-flow-light.svg,images/tier-flow-dark.svg - New docs:
docs/marketing/TIERS.md
- New i18n strings for tier UI (en first; translations in v3.8.2)
- Compression analytics dashboard now reports per-engine savings
- 47 RTK filters documented in provider reference
- Route protection tiers (Task 5) — spawn-capable routes blocked off loopback
- Hard Rule #15 in
CLAUDE.md—assertRouteAllowed(req)mandatory for spawn routes - CLI machine-ID token does NOT bypass
always-protected routes (shutdown, db export)
docs/security/CLI_TOKEN.mddocs/security/ROUTE_GUARD_TIERS.mddocs/ops/SQLITE_RUNTIME.mddocs/marketing/TIERS.mddocs/comparison/OMNIROUTE_VS_ALTERNATIVES.md
getDbInstance() now requires ensureDbInitialized() to have run first.
The server startup orchestrator awaits it automatically. In tests or custom
embeddings, call await ensureDbInitialized() before any src/lib/db/*
import that triggers instance access.
For existing installations:
npm install -g omniroute@3.8.0
omniroute setup # optional — re-runs onboarding to show new tier tourCLI tokens are derived automatically; no migration needed.
To enable tray: omniroute --tray or omniroute config tray enable.
For developers embedding OmniRoute:
- Replace
getDbInstance()direct calls withawait ensureDbInitialized(); getDbInstance()
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