OmniRoute Dashboard # 🚀 OmniRoute — Den gratis AI-gatewayen ### Slutt aldri å kode. Smart ruting til **GRATIS og rimelige AI-modeller** med automatisk fallback. _Din universelle API-proxy – ett endepunkt, 36+ leverandører, null nedetid._ **Chatfullføringer • Innebygginger • Bildegenerering • Lyd • Omrangering • 100 % TypeScript** --- ### 🤖 Gratis AI-leverandør for dine favorittkodeagenter _Koble til ethvert AI-drevet IDE- eller CLI-verktøy gjennom OmniRoute – gratis API-gateway for ubegrenset koding._
OpenClaw
OpenClaw

⭐ 205K
NanoBot
NanoBot

⭐ 20.9K
PicoClaw
PicoClaw

⭐ 14.6K
ZeroClaw
ZeroClaw

⭐ 9.9K
IronClaw
IronClaw

⭐ 2.1K
OpenCode
OpenCode

⭐ 106K
Codex CLI
Codex CLI

⭐ 60.8K
Claude Code
Claude Code

⭐ 67.3K
Gemini CLI
Gemini CLI

⭐ 94.7K
Kilo Code
Kilo Code

⭐ 15.5K
📡 Alle agenter kobler til via http://localhost:20128/v1 eller http://cloud.omniroute.online/v1, —limited one models_245 kvote --- [![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) [![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) [![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) [🌐 Website](https://omniroute.online) • [🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Docs](#-documentation) • [💰 Pricing](#-pricing-at-a-glance) • [💬 WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) 🌐 **Available in:** 🇺🇸 [English](README.md) | 🇧🇷 [Português (Brasil)](README.pt-BR.md) | 🇪🇸 [Español](README.es.md) | 🇫🇷 [Français](README.fr.md) | 🇮🇹 [Italiano](README.it.md) | 🇷🇺 [Русский](README.ru.md) | 🇨🇳 [中文 (简体)](README.zh-CN.md) | 🇩🇪 [Deutsch](README.de.md) | 🇮🇳 [हिन्दी](README.in.md) | 🇹🇭 [ไทย](README.th.md) | 🇺🇦 [Українська](README.uk-UA.md) | 🇸🇦 [العربية](README.ar.md) | 🇯🇵 [日本語](README.ja.md) | 🇻🇳 [Tiếng Việt](README.vi.md) | 🇧🇬 [Български](README.bg.md) | 🇩🇰 [Dansk](README.da.md) | 🇫🇮 [Suomi](README.fi.md) | 🇮🇱 [עברית](README.he.md) | 🇭🇺 [Magyar](README.hu.md) | 🇮🇩 [Bahasa Indonesia](README.id.md) | 🇰🇷 [한국어](README.ko.md) | 🇲🇾 [Bahasa Melayu](README.ms.md) | 🇳🇱 [Nederlands](README.nl.md) | 🇳🇴 [Norsk](README.no.md) | 🇵🇹 [Português (Portugal)](README.pt.md) | 🇷🇴 [Română](README.ro.md) | 🇵🇱 [Polski](README.pl.md) | 🇸🇰 [Slovenčina](README.sk.md) | 🇸🇪 [Svenska](README.sv.md) | 🇵🇭 [Filipino](README.phi.md)
--- ## 🤔 Hvorfor OmniRoute? **Slutt å kaste bort penger og nå grensene:** - Abonnementskvoten utløper ubrukt hver måned - Takstgrenser stopper deg med midtkoding - Dyre APIer ($20–50/måned per leverandør) - Manuell veksling mellom tilbydere **OmniRoute løser dette:** - ✅ **Maksimer abonnementer** - Spor kvote, bruk hver bit før tilbakestilling - ✅ **Automatisk fallback** - Abonnement → API-nøkkel → Billig → Gratis, null nedetid - ✅ **Multi-konto** - Round-robin mellom kontoer per leverandør - ✅ **Universal** - Fungerer med Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, hvilket som helst CLI-verktøy --- ## 🔄 Hvordan det fungerer ``` ┌─────────────┐ │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 ↓ ┌─────────────────────────────────────────┐ │ OmniRoute (Smart Router) │ │ • Format translation (OpenAI ↔ Claude) │ │ • Quota tracking + Embeddings + Images │ │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit └─→ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` --- ## 🎯 What OmniRoute Solves — 16 Real Pain Points > **Every developer using AI tools faces these problems daily.** OmniRoute was built to solve them all — from cost overruns to regional blocks, from broken OAuth flows to zero observability.
💸 1. "I pay for an expensive subscription but still get interrupted by limits" Developers pay $20–200/month for Claude Pro, Codex Pro, or GitHub Copilot. Even paying, quota has a ceiling — 5h of usage, weekly limits, or per-minute rate limits. Mid-coding session, the provider stops responding and the developer loses flow and productivity. **How OmniRoute solves it:** - **Smart 4-Tier Fallback** — If subscription quota runs out, automatically redirects to API Key → Cheap → Free with zero manual intervention - **Real-Time Quota Tracking** — Shows token consumption in real-time with reset countdown (5h, daily, weekly) - **Multi-Account Support** — Multiple accounts per provider with auto round-robin — when one runs out, switches to the next - **Custom Combos** — Customizable fallback chains with 6 balancing strategies (fill-first, round-robin, P2C, random, least-used, cost-optimized) - **Codex Business Quotas** — Business/Team workspace quota monitoring directly in the dashboard
🔌 2. "I need to use multiple providers but each has a different API" OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If a dev wants to test models from different providers or fallback between them, they need to reconfigure SDKs, change endpoints, deal with incompatible formats. Custom providers (FriendLI, NIM) have non-standard model endpoints. **How OmniRoute solves it:** - **Unified Endpoint** — A single `http://localhost:20128/v1` serves as proxy for all 36+ providers - **Format Translation** — Automatic and transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API - **Response Sanitization** — Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+ - **Role Normalization** — Converts `developer` → `system` for non-OpenAI providers; `system` → `user` for GLM/ERNIE - **Think Tag Extraction** — Extracts `` blocks from models like DeepSeek R1 into standardized `reasoning_content` - **Structured Output for Gemini** — `json_schema` → `responseMimeType`/`responseSchema` automatic conversion - **`stream` defaults to `false`** — Aligns with OpenAI spec, avoiding unexpected SSE in Python/Rust/Go SDKs
🌐 3. "My AI provider blocks my region/country" Providers like OpenAI/Codex block access from certain geographic regions. Users get errors like `unsupported_country_region_territory` during OAuth and API connections. This is especially frustrating for developers from developing countries. **How OmniRoute solves it:** - **3-Level Proxy Config** — Configurable proxy at 3 levels: global (all traffic), per-provider (one provider only), and per-connection/key - **Color-Coded Proxy Badges** — Visual indicators: 🟢 global proxy, 🟡 provider proxy, 🔵 connection proxy, always showing the IP - **OAuth Token Exchange Through Proxy** — OAuth flow also goes through the proxy, solving `unsupported_country_region_territory` - **Connection Tests via Proxy** — Connection tests use the configured proxy (no more direct bypass) - **SOCKS5 Support** — Full SOCKS5 proxy support for outbound routing - **TLS Fingerprint Spoofing** — Browser-like TLS fingerprint via `wreq-js` to bypass bot detection
🆓 4. "I want to use AI for coding but I have no money" Not everyone can pay $20–200/month for AI subscriptions. Students, devs from emerging countries, hobbyists, and freelancers need access to quality models at zero cost. **How OmniRoute solves it:** - **Free Tier Providers Built-in** — Native support for 100% free providers: iFlow (8 unlimited models), Qwen (3 unlimited models), Kiro (Claude for free), Gemini CLI (180K/month free) - **Free-Only Combos** — Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/month with zero downtime - **NVIDIA NIM Free Credits** — 1000 free credits integrated - **Cost Optimized Strategy** — Routing strategy that automatically chooses the cheapest available provider
🔒 5. "I need to protect my AI gateway from unauthorized access" When exposing an AI gateway to the network (LAN, VPS, Docker), anyone with the address can consume the developer's tokens/quota. Without protection, APIs are vulnerable to misuse, prompt injection, and abuse. **How OmniRoute solves it:** - **API Key Management** — Generation, rotation, and scoping per provider with a dedicated `/dashboard/api-manager` page - **Model-Level Permissions** — Restrict API keys to specific models (`openai/*`, wildcard patterns), with Allow All/Restrict toggle - **API Endpoint Protection** — Require a key for `/v1/models` and block specific providers from the listing - **Auth Guard + CSRF Protection** — All dashboard routes protected with `withAuth` middleware + CSRF tokens - **Rate Limiter** — Per-IP rate limiting with configurable windows - **IP Filtering** — Allowlist/blocklist for access control - **Prompt Injection Guard** — Sanitization against malicious prompt patterns - **AES-256-GCM Encryption** — Credentials encrypted at rest
🛑 6. "My provider went down and I lost my coding flow" AI providers can become unstable, return 5xx errors, or hit temporary rate limits. If a dev depends on a single provider, they're interrupted. Without circuit breakers, repeated retries can crash the application. **How OmniRoute solves it:** - **Circuit Breaker per-provider** — Auto-open/close with configurable thresholds and cooldown (Closed/Open/Half-Open) - **Exponential Backoff** — Progressive retry delays - **Anti-Thundering Herd** — Mutex + semaphore protection against concurrent retry storms - **Combo Fallback Chains** — If the primary provider fails, automatically falls through the chain with no intervention - **Combo Circuit Breaker** — Auto-disables failing providers within a combo chain - **Health Dashboard** — Uptime monitoring, circuit breaker states, lockouts, cache stats, p50/p95/p99 latency
🔧 7. "Configuring each AI tool is tedious and repetitive" Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time. **How OmniRoute solves it:** - **CLI Tools Dashboard** — Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline - **GitHub Copilot Config Generator** — Generates `chatLanguageModels.json` for VS Code with bulk model selection - **Onboarding Wizard** — Guided 4-step setup for first-time users - **One endpoint, all models** — Configure `http://localhost:20128/v1` once, access 36+ providers
🔑 8. "Managing OAuth tokens from multiple providers is hell" Claude Code, Codex, Gemini CLI, Copilot — all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic. **How OmniRoute solves it:** - **Auto Token Refresh** — OAuth tokens refresh in background before expiration - **OAuth 2.0 (PKCE) Built-in** — Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow - **Multi-Account OAuth** — Multiple accounts per provider via JWT/ID token extraction - **OAuth LAN/Remote Fix** — Private IP detection for `redirect_uri` + manual URL mode for remote servers - **OAuth Behind Nginx** — Uses `window.location.origin` for reverse proxy compatibility - **Remote OAuth Guide** — Step-by-step guide for Google Cloud credentials on VPS/Docker
📊 9. "I don't know how much I'm spending or where" Developers use multiple paid providers but have no unified view of spending. Each provider has its own billing dashboard, but there's no consolidated view. Unexpected costs can pile up. **How OmniRoute solves it:** - **Cost Analytics Dashboard** — Per-token cost tracking and budget management per provider - **Budget Limits per Tier** — Spending ceiling per tier that triggers automatic fallback - **Per-Model Pricing Configuration** — Configurable prices per model - **Usage Statistics Per API Key** — Request count and last-used timestamp per key - **Analytics Dashboard** — Stat cards, model usage chart, provider table with success rates and latency
🐛 10. "I can't diagnose errors and problems in AI calls" When a call fails, the dev doesn't know if it was a rate limit, expired token, wrong format, or provider error. Fragmented logs across different terminals. Without observability, debugging is trial-and-error. **How OmniRoute solves it:** - **Unified Logs Dashboard** — 4 tabs: Request Logs, Proxy Logs, Audit Logs, Console - **Console Log Viewer** — Real-time terminal-style viewer with color-coded levels, auto-scroll, search, filter - **SQLite Proxy Logs** — Persistent logs that survive server restarts - **Translator Playground** — 4 debugging modes: Playground (format translation), Chat Tester (round-trip), Test Bench (batch), Live Monitor (real-time) - **Request Telemetry** — p50/p95/p99 latency + X-Request-Id tracing - **File-Based Logging with Rotation** — Console interceptor captures everything to JSON log with size-based rotation
🏗️ 11. "Deploying and maintaining the gateway is complex" Installing, configuring, and maintaining an AI proxy across different environments (local, VPS, Docker, cloud) is labor-intensive. Problems like hardcoded paths, `EACCES` on directories, port conflicts, and cross-platform builds add friction. **How OmniRoute solves it:** - **npm global install** — `npm install -g omniroute && omniroute` — done - **Docker Multi-Platform** — AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi) - **Docker Compose Profiles** — `base` (no CLI tools) and `cli` (with Claude Code, Codex, OpenClaw) - **Electron Desktop App** — Native app for Windows/macOS/Linux with system tray, auto-start, offline mode - **Split-Port Mode** — API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking) - **Cloud Sync** — Config synchronization across devices via Cloudflare Workers - **DB Backups** — Automatic backup, restore, export and import of all settings
🌍 12. "The interface is English-only and my team doesn't speak English" Teams in non-English-speaking countries, especially in Latin America, Asia, and Europe, struggle with English-only interfaces. Language barriers reduce adoption and increase configuration errors. **How OmniRoute solves it:** - **Dashboard i18n — 30 Languages** — All 500+ keys translated including Arabic, Bulgarian, Danish, German, Spanish, Finnish, French, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Malay, Dutch, Norwegian, Polish, Portuguese (PT/BR), Romanian, Russian, Slovak, Swedish, Thai, Ukrainian, Vietnamese, Chinese, Filipino, English - **RTL Support** — Right-to-left support for Arabic and Hebrew - **Multi-Language READMEs** — 30 complete documentation translations - **Language Selector** — Globe icon in header for real-time switching
🔄 13. "I need more than chat — I need embeddings, images, audio" AI isn't just chat completion. Devs need to generate images, transcribe audio, create embeddings for RAG, rerank documents, and moderate content. Each API has a different endpoint and format. **How OmniRoute solves it:** - **Embeddings** — `/v1/embeddings` with 6 providers and 9+ models - **Image Generation** — `/v1/images/generations` with 4 providers and 9+ models - **Audio Transcription** — `/v1/audio/transcriptions` — Whisper-compatible - **Text-to-Speech** — `/v1/audio/speech` — Multi-provider audio synthesis - **Moderations** — `/v1/moderations` — Content safety checks - **Reranking** — `/v1/rerank` — Document relevance reranking - **Responses API** — Full `/v1/responses` support for Codex
🧪 14. "I have no way to test and compare quality across models" Developers want to know which model is best for their use case — code, translation, reasoning — but comparing manually is slow. No integrated eval tools exist. **How OmniRoute solves it:** - **LLM Evaluations** — Golden set testing with 10 pre-loaded cases covering greetings, math, geography, code generation, JSON compliance, translation, markdown, safety refusal - **4 Match Strategies** — `exact`, `contains`, `regex`, `custom` (JS function) - **Translator Playground Test Bench** — Batch testing with multiple inputs and expected outputs, cross-provider comparison - **Chat Tester** — Full round-trip with visual response rendering - **Live Monitor** — Real-time stream of all requests flowing through the proxy
📈 15. "I need to scale without losing performance" As request volume grows, without caching the same questions generate duplicate costs. Without idempotency, duplicate requests waste processing. Per-provider rate limits must be respected. **How OmniRoute solves it:** - **Semantic Cache** — Two-tier cache (signature + semantic) reduces cost and latency - **Request Idempotency** — 5s deduplication window for identical requests - **Rate Limit Detection** — Per-provider RPM, min gap, and max concurrent tracking - **Editable Rate Limits** — Configurable defaults in Settings → Resilience with persistence - **API Key Validation Cache** — 3-tier cache for production performance - **Health Dashboard with Telemetry** — p50/p95/p99 latency, cache stats, uptime
🤖 16. "I want to control model behavior globally" Developers who want all responses in a specific language, with a specific tone, or want to limit reasoning tokens. Configuring this in every tool/request is impractical. **How OmniRoute solves it:** - **System Prompt Injection** — Global prompt applied to all requests - **Thinking Budget Validation** — Reasoning token allocation control per request (passthrough, auto, custom, adaptive) - **6 Routing Strategies** — Global strategies that determine how requests are distributed - **Wildcard Router** — `provider/*` patterns route dynamically to any provider - **Combo Enable/Disable Toggle** — Toggle combos directly from the dashboard - **Provider Toggle** — Enable/disable all connections for a provider with one click - **Blocked Providers** — Exclude specific providers from `/v1/models` listing
## ⚡ Hurtigstart **1. Installer globalt:** ```bash npm install -g omniroute omniroute ``` 🎉 Dashboard åpner kl. `http://localhost:20128` | Kommando | Beskrivelse | | ----------------------- | ---------------------------------- | | `omniroute` | Start server (standard port 20128) | | `omniroute --port 3000` | Bruk tilpasset port | | `omniroute --no-open` | Ikke åpne nettleseren automatisk | | `omniroute --help` | Vis hjelp | **2. Koble til en GRATIS leverandør:** Dashboard → Leverandører → Koble til **Claude-kode** eller **Antigravity** → OAuth-pålogging → Ferdig! **3. Bruk i CLI-verktøyet:** ``` Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline Settings: Endpoint: http://localhost:20128/v1 API Key: [copy from dashboard] Model: if/kimi-k2-thinking ``` **Det var det!** Begynn å kode med GRATIS AI-modeller. **Alternativt – kjør fra kilden:** ```bash cp .env.example .env npm install PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev ``` --- ## 🐳 Docker OmniRoute er tilgjengelig som et offentlig Docker-bilde på [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). **Rask løp:** ```bash docker run -d \ --name omniroute \ --restart unless-stopped \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest ``` **Med miljøfil:** ```bash # Copy and edit .env first cp .env.example .env docker run -d \ --name omniroute \ --restart unless-stopped \ --env-file .env \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest ``` **Bruke Docker Compose:** ```bash # Base profile (no CLI tools) docker compose --profile base up -d # CLI profile (Claude Code, Codex, OpenClaw built-in) docker compose --profile cli up -d ``` | Bilde | Tag | Størrelse | Beskrivelse | | ------------------------ | -------- | --------- | ----------------------- | | `diegosouzapw/omniroute` | `latest` | ~250MB | Siste stabile utgivelse | | `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Gjeldende versjon | --- --- ## 🖥️ Desktop App — Offline & Always-On > 🆕 **NEW!** OmniRoute is now available as a **native desktop application** for Windows, macOS, and Linux. - 🖥️ **Native Window** — Dedicated app window with system tray integration - 🔄 **Auto-Start** — Launch OmniRoute on system login - 🔔 **Native Notifications** — Get alerts for quota exhaustion or provider issues - ⚡ **One-Click Install** — NSIS (Windows), DMG (macOS), AppImage (Linux) - 🌐 **Offline Mode** — Works fully offline with bundled server ```bash npm run electron:dev # Development mode npm run electron:build # Current platform npm run electron:build:win # Windows (.exe) npm run electron:build:mac # macOS (.dmg) npm run electron:build:linux # Linux (.AppImage) ``` 📖 Full documentation: [`electron/README.md`](electron/README.md) --- ## 💰 Priser på et øyeblikk | Nivå | Leverandør | Kostnad | Kvote Tilbakestill | Best for | | ----------------- | ----------------- | ----------------------------- | ----------------------- | -------------------- | | **💳 ABONNEMENT** | Claude Code (Pro) | $20/md | 5t + ukentlig | Allerede abonnert | | | Codex (Pluss/Pro) | $20-200/md | 5t + ukentlig | OpenAI-brukere | | | Gemini CLI | **GRATIS** | 180K/mnd + 1K/dag | Alle sammen! | | | GitHub Copilot | $10-19/md | Månedlig | GitHub-brukere | | **🔑 API NØKKEL** | NVIDIA NIM | **GRATIS** (1000 studiepoeng) | Engangs | Gratis tier testing | | | DeepSeek | Betal per bruk | Ingen | Beste pris/kvalitet | | | Groq | Gratis lag + betalt | Begrenset pris | Ultrarask slutning | | | xAI (Grok) | Betal per bruk | Ingen | Grok modeller | | | Mistral | Gratis lag + betalt | Begrenset pris | Europeisk AI | | | OpenRouter | Betal per bruk | Ingen | 100+ modeller | | **💰 BILLIG** | GLM-4.7 | $0,6/1M | Daglig 10:00 | Budsjett backup | | | MiniMax M2.1 | $0,2/1M | 5-timers rullende | Billigste alternativ | | | Kimi K2 | $9/md leilighet | 10 millioner tokens/mnd | Forutsigbar kostnad | | **🆓 GRATIS** | iFlow | $0 | Ubegrenset | 8 modeller gratis | | | Qwen | $0 | Ubegrenset | 3 modeller gratis | | | Kiro | $0 | Ubegrenset | Claude gratis | **💡 Profftips:** Start med Gemini CLI (180K gratis/måned) + iFlow (ubegrenset gratis) kombinasjon = $0 kostnad! --- ## 💡 Nøkkelfunksjoner ### 🧠 Kjerneruting og intelligens | Funksjon | Hva det gjør | | ---------------------------------- | ---------------------------------------------------------------------------------------- | | 🎯 **Smart 4-lags fallback** | Automatisk rute: Abonnement → API-nøkkel → Billig → Gratis | | 📊 **Sanntidskvotesporing** | Live tokenantall + tilbakestilt nedtelling per leverandør | | 🔄 **Formatoversettelse** | OpenAI ↔ Claude ↔ Gemini ↔ Markør ↔ Kiro sømløs + respons sanitization | | 👥 **Støtte for flere kontoer** | Flere kontoer per leverandør med intelligent utvalg | | 🔄 **Auto Token Refresh** | OAuth-tokens oppdateres automatisk med prøv på nytt | | 🎨 **Egendefinerte kombinasjoner** | 6 strategier: fyll først, round-robin, p2c, tilfeldig, minst brukt, kostnadsoptimalisert | | 🧩 **Egendefinerte modeller** | Legg til hvilken som helst modell-ID til en hvilken som helst leverandør | | 🌐 **Wildcard-ruter** | Ruter `provider/*`-mønstre til enhver leverandør dynamisk | | 🧠 **Tenkebudsjett** | Passthrough, auto, egendefinerte og adaptive moduser for resonnerende modeller | | 🔀 **Model Aliases** | Auto-forward deprecated model IDs to current replacements (built-in + custom) | | ⚡ **Background Degradation** | Auto-route background tasks (titles, summaries) to cheaper models | | 💬 **Systemprompt-injeksjon** | Global systemforespørsel brukt på alle forespørsler | | 📄 **Responses API** | Full støtte for OpenAI Responses API (`/v1/responses`) for Codex | ### 🎵 Multi-Modal APIer | Funksjon | Hva det gjør | | ----------------------- | ------------------------------------------------------ | | 🖼️ **Bildegenerering** | `/v1/images/generations` — 4 leverandører, 9+ modeller | | 📐 **Innbygging** | `/v1/embeddings` — 6 leverandører, 9+ modeller | | 🎤 **Lydtranskripsjon** | `/v1/audio/transcriptions` — Whisper-kompatibel | | 🔊 **Tekst-til-tale** | `/v1/audio/speech` — Multi-leverandør lydsyntese | | 🛡️ **Moderasjoner** | `/v1/moderations` — Innholdssikkerhetssjekker | | 🔀 **Omrangering** | `/v1/rerank` — Rerangering av dokumentrelevans | ### 🛡️ Spenst og sikkerhet | Funksjon | Hva det gjør | | --------------------------------- | ----------------------------------------------------------------------------- | | 🔌 **Circuit Breaker** | Automatisk åpning/lukking per leverandør med konfigurerbare terskler | | 🛡️ **Anti-tordenflokk** | Mutex + semaforhastighetsgrense for API-nøkkelleverandører | | 🧠 **Semantisk cache** | To-lags cache (signatur + semantisk) reduserer kostnader og ventetid | | ⚡ **Be om idempotens** | 5s dedup-vindu for dupliserte forespørsler | | 🔒 **TLS-fingeravtrykkspoofing** | Omgå TLS-basert botdeteksjon via wreq-js | | 🌐 **IP-filtrering** | Tillatelsesliste/blokkeringsliste for API-tilgangskontroll | | 📊 **Redigerbare satsgrenser** | Konfigurerbar RPM, min gap og maks samtidig på systemnivå | | 💾 **Rate Limit Persistence** | Learned limits survive restarts via SQLite with 60s debounce + 24h staleness | | 🔄 **Token Refresh Resilience** | Per-provider circuit breaker (5 fails→30min) + 30s timeout per attempt | | 🛡 **API-endepunktbeskyttelse** | Auth-gate + leverandørblokkering for `/models`-endepunktet | | 🔒 **Proxy-synlighet** | Fargekodede merker: 🟢 global, 🟡 leverandør, 🔵 per tilkobling med IP-skjerm | | 🌐 **3-nivå proxy-konfigurasjon** | Konfigurer proxyer på globalt nivå, per leverandør eller per tilkoblingsnivå | ### 📊 Observerbarhet og analyse | Funksjon | Hva det gjør | | -------------------------- | ----------------------------------------------------------------------------------- | | 📝 **Be om logging** | Feilsøkingsmodus med fullstendige forespørsels-/svarlogger | | 💾 **SQLite proxy-logger** | Vedvarende proxy-logger overlever omstart av server | | 📊 **Analytics Dashboard** | Recharts-drevet: statistikkkort, modellbruksdiagram, leverandørtabell | | 📈 **Fremdriftssporing** | Opt-in SSE-fremdriftshendelser for streaming | | 🧪 **LLM-evalueringer** | Gylden sett-testing med 4 kampstrategier | | 🔍 **Be om telemetri** | p50/p95/p99 latensaggregering + X-Request-Id-sporing | | 📋 **Logger Dashboard** | Samlet side med 4 faner: Forespørselslogger, proxy-logger, revisjonslogger, konsoll | | 🖥️ **Konsollloggvisning** | Viser i sanntid i terminalstil med nivåfilter, søk, automatisk rulling | | 📑 **Filbasert logging** | Console interceptor fanger opp all utgang til JSON-loggfil med rotasjon | | 🏥 **Helse Dashboard** | Systemoppetid, strømbrytertilstander, sperringer, cachestatistikk | | 💰 **Kostnadssporing** | Budsjettadministrasjon + priskonfigurasjon per modell | ### ☁️ Implementering og synkronisering | Funksjon | Hva det gjør | | -------------------------------- | ---------------------------------------------------------------------------------------- | | 💾 **Cloud Sync** | Synkroniser konfigurasjon på tvers av enheter via Cloudflare Workers | | 🌐 **Distribuer hvor som helst** | Localhost, VPS, Docker, Cloudflare Workers | | 🔑 **API Key Management** | Generer, roter og omfang API-nøkler per leverandør | | 🧙 **Onboarding Wizard** | 4-trinns veiledet oppsett for førstegangsbrukere | | 🔧 **CLI Tools Dashboard** | Ett-klikk konfigurer Claude, Codex, Cline, OpenClaw, Kilo, Antigravity | | 🔄 **DB-sikkerhetskopier** | Automatisk sikkerhetskopiering, gjenoppretting, eksport og import for alle innstillinger | | 🌐 **Internasjonalisering** | Full i18n med neste-intl — støtte for engelsk + portugisisk (Brasil) | | 🌍 **Språkvelger** | Globusikon i overskriften for sanntids språkbytte (🇺🇸/🇧🇷) | | 📂 **Tilpasset datakatalog** | `DATA_DIR` env var for å overstyre standard `~/.omniroute` lagringsbane |
📖 Funksjonsdetaljer ### 🎯 Smart 4-lags fallback Lag kombinasjoner med automatisk fallback: ``` Combo: "my-coding-stack" 1. cc/claude-opus-4-6 (your subscription) 2. nvidia/llama-3.3-70b (free NVIDIA API) 3. glm/glm-4.7 (cheap backup, $0.6/1M) 4. if/kimi-k2-thinking (free fallback) → Auto switches when quota runs out or errors occur ``` ### 📊 Sanntidskvotesporing - Tokenforbruk per leverandør - Tilbakestill nedtellingen (5 timer, daglig, ukentlig) - Kostnadsestimat for betalte nivåer - Månedlige utgiftsrapporter ### 🔄 Formatoversettelse Sømløs oversettelse mellom formater: - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI-svar** - CLI-verktøyet ditt sender OpenAI-format → OmniRoute oversetter → Leverandøren mottar eget format - Fungerer med alle verktøy som støtter tilpassede OpenAI-endepunkter - **Responssanering** - Fjerner ikke-standardfelter for streng OpenAI SDK-kompatibilitet - **Rollenormalisering** — `developer` → `system` for ikke-OpenAI; `system` → `user` for GLM/ERNIE-modeller - **Tenk tag-utvinning** — `` blokker → `reasoning_content` for tenkemodeller - **Strukturert utgang** — `json_schema` → Gemini's `responseMimeType`/`responseSchema` ### 👥 Støtte for flere kontoer - Legg til flere kontoer per leverandør - Auto round-robin eller prioritetsbasert ruting - Tilbakeslag til neste konto når en når kvoten ### 🔄 Automatisk tokenoppdatering - OAuth-tokens oppdateres automatisk før utløp - Ingen manuell re-autentisering nødvendig - Sømløs opplevelse på tvers av alle leverandører ### 🎨 Egendefinerte kombinasjoner - Lag ubegrensede modellkombinasjoner - 6 strategier: fyll-først, round-robin, kraft-av-to-valg, tilfeldig, minst brukt, kostnadsoptimalisert - Del kombinasjoner på tvers av enheter med Cloud Sync ### 🏥 Helse Dashboard - Systemstatus (oppetid, versjon, minnebruk) - Strømbrytertilstander per leverandør (lukket/åpen/halvåpen) - Takstgrensestatus og aktive sperringer - Signaturbufferstatistikk - Latency-telemetri (p50/p95/p99) + hurtigbuffer - Tilbakestill helsestatus med ett klikk ### 🔧 Oversetter Lekeplass OmniRoute inkluderer en kraftig innebygd oversetterlekeplass med **4 moduser** for feilsøking, testing og overvåking av API-oversettelser: | Modus | Beskrivelse | | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **💻 Lekeplass** | Direkte formatoversettelse – lim inn hvilken som helst API-forespørselstekst og se umiddelbart hvordan OmniRoute oversetter den mellom leverandørformater (OpenAI ↔ Claude ↔ Gemini ↔ Responses API). Inkluderer eksempelmaler og automatisk gjenkjenning av formater. | | **💬 Chat Tester** | Send ekte chatteforespørsler gjennom OmniRoute og se hele rundturen: innspillet ditt, den oversatte forespørselen, leverandørens svar og det oversatte svaret tilbake. Uvurderlig for validering av kombinasjonsruting. | | **🧪 Testbenk** | Batch-testmodus – definer flere testtilfeller med forskjellige innganger og forventede utganger, kjør dem alle samtidig og sammenlign resultater på tvers av leverandører og modeller. | | **📱 Live Monitor** | Sanntidsovervåking av forespørsler – se innkommende forespørsler mens de strømmer gjennom OmniRoute, se formatoversettelser som skjer live, og identifiser problemer umiddelbart. | **Tilgang:** Dashboard → Oversetter (sidefelt) ### 💾 Cloud Sync - Synkroniser leverandører, kombinasjoner og innstillinger på tvers av enheter - Automatisk bakgrunnssynkronisering - Sikker kryptert lagring
--- ## 🎯 Brukssaker ### Sak 1: "Jeg har Claude Pro-abonnement" **Problem:** Kvoten utløper ubrukt, satsgrenser under tung koding ``` Combo: "maximize-claude" 1. cc/claude-opus-4-6 (use subscription fully) 2. glm/glm-4.7 (cheap backup when quota out) 3. if/kimi-k2-thinking (free emergency fallback) Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total vs. $20 + hitting limits = frustration ``` ### Tilfelle 2: "Jeg vil ha null kostnad" **Problem:** Har ikke råd til abonnementer, trenger pålitelig AI-koding ``` Combo: "free-forever" 1. gc/gemini-3-flash (180K free/month) 2. if/kimi-k2-thinking (unlimited free) 3. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models ``` ### Tilfelle 3: "Jeg trenger 24/7 koding, ingen avbrudd" **Problem:** Tidsfrister, har ikke råd til nedetid ``` Combo: "always-on" 1. cc/claude-opus-4-6 (best quality) 2. cx/gpt-5.2-codex (second subscription) 3. glm/glm-4.7 (cheap, resets daily) 4. minimax/MiniMax-M2.1 (cheapest, 5h reset) 5. if/kimi-k2-thinking (free unlimited) Result: 5 layers of fallback = zero downtime ``` ### Tilfelle 4: "Jeg vil ha GRATIS AI i OpenClaw" **Problem:** Trenger AI-assistent i meldingsapper, helt gratis ``` Combo: "openclaw-free" 1. if/glm-4.7 (unlimited free) 2. if/minimax-m2.1 (unlimited free) 3. if/kimi-k2-thinking (unlimited free) Monthly cost: $0 Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal... ``` --- ## 📖 Oppsettveiledning
💳 Abonnementsleverandører ### Claude Code (Pro/Max) ```bash Dashboard → Providers → Connect Claude Code → OAuth login → Auto token refresh → 5-hour + weekly quota tracking Models: cc/claude-opus-4-6 cc/claude-sonnet-4-5-20250929 cc/claude-haiku-4-5-20251001 ``` **Profftips:** Bruk Opus for komplekse oppgaver, Sonnet for hastighet. OmniRoute sporer kvote per modell! ### OpenAI Codex (Plus/Pro) ```bash Dashboard → Providers → Connect Codex → OAuth login (port 1455) → 5-hour + weekly reset Models: cx/gpt-5.2-codex cx/gpt-5.1-codex-max ``` ### Gemini CLI (GRATIS 180K/måned!) ```bash Dashboard → Providers → Connect Gemini CLI → Google OAuth → 180K completions/month + 1K/day Models: gc/gemini-3-flash-preview gc/gemini-2.5-pro ``` **Mest verdi:** Enormt gratis nivå! Bruk dette før betalte nivåer. ### GitHub Copilot ```bash Dashboard → Providers → Connect GitHub → OAuth via GitHub → Monthly reset (1st of month) Models: gh/gpt-5 gh/claude-4.5-sonnet gh/gemini-3-pro ```
🔑 API nøkkelleverandører ### NVIDIA NIM (GRATIS 1000 studiepoeng!) 1. Registrer deg: [build.nvidia.com](https://build.nvidia.com) 2. Få gratis API-nøkkel (1000 slutningspoeng inkludert) 3. Dashboard → Legg til leverandør → NVIDIA NIM: - API-nøkkel: `nvapi-your-key` **Modeller:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` og 50+ til **Profftips:** OpenAI-kompatibel API — fungerer sømløst med OmniRoutes formatoversettelse! ### DeepSeek 1. Registrer deg: [platform.deepseek.com](https://platform.deepseek.com) 2. Få API-nøkkel 3. Dashboard → Legg til leverandør → DeepSeek **Modeller:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` ### Groq (gratis nivå tilgjengelig!) 1. Registrer deg: [console.groq.com](https://console.groq.com) 2. Få API-nøkkel (gratis nivå inkludert) 3. Dashboard → Legg til leverandør → Groq **Modeller:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` **Profftips:** Ultrarask slutning — best for sanntidskoding! ### OpenRouter (100+ modeller) 1. Registrer deg: [openrouter.ai](https://openrouter.ai) 2. Få API-nøkkel 3. Dashboard → Legg til leverandør → OpenRouter **Modeller:** Få tilgang til 100+ modeller fra alle store leverandører gjennom én enkelt API-nøkkel.
💰 Billige leverandører (backup) ### GLM-4.7 (Daglig tilbakestilling, $0,6/1M) 1. Registrer deg: [Zhipu AI](https://open.bigmodel.cn/) 2. Få API-nøkkel fra Coding Plan 3. Dashboard → Legg til API-nøkkel: - Leverandør: `glm` - API-nøkkel: `your-key` **Bruk:** `glm/glm-4.7` **Profftips:** Coding Plan tilbyr 3× kvote til 1/7 kostnad! Tilbakestill daglig 10:00. ### MiniMax M2.1 (5t tilbakestilling, $0,20/1M) 1. Registrer deg: [MiniMax](https://www.minimax.io/) 2. Få API-nøkkel 3. Dashboard → Legg til API-nøkkel **Bruk:** `minimax/MiniMax-M2.1` **Profftips:** Billigste alternativet for lang kontekst (1M tokens)! ### Kimi K2 ($9/mnd leilighet) 1. Abonner: [Moonshot AI](https://platform.moonshot.ai/) 2. Få API-nøkkel 3. Dashboard → Legg til API-nøkkel **Bruk:** `kimi/kimi-latest` **Profftips:** Fast $9/måned for 10M tokens = $0,90/1M effektiv kostnad!
🆓 GRATIS Leverandører (Emergency Backup) ### iFlow (8 GRATIS modeller) ```bash Dashboard → Connect iFlow → iFlow OAuth login → Unlimited usage Models: if/kimi-k2-thinking if/qwen3-coder-plus if/glm-4.7 if/minimax-m2 if/deepseek-r1 ``` ### Qwen (3 GRATIS modeller) ```bash Dashboard → Connect Qwen → Device code authorization → Unlimited usage Models: qw/qwen3-coder-plus qw/qwen3-coder-flash ``` ### Kiro (Claude FREE) ```bash Dashboard → Connect Kiro → AWS Builder ID or Google/GitHub → Unlimited usage Models: kr/claude-sonnet-4.5 kr/claude-haiku-4.5 ```
🎨 Lag kombinasjoner ### Eksempel 1: Maksimer abonnement → Billig sikkerhetskopi ``` Dashboard → Combos → Create New Name: premium-coding Models: 1. cc/claude-opus-4-6 (Subscription primary) 2. glm/glm-4.7 (Cheap backup, $0.6/1M) 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) Use in CLI: premium-coding ``` ### Eksempel 2: Kun gratis (nullkostnad) ``` Name: free-combo Models: 1. gc/gemini-3-flash-preview (180K free/month) 2. if/kimi-k2-thinking (unlimited) 3. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ```
🔧 CLI-integrasjon ### Markør IDE ``` Settings → Models → Advanced: OpenAI API Base URL: http://localhost:20128/v1 OpenAI API Key: [from OmniRoute dashboard] Model: cc/claude-opus-4-6 ``` ### Claude Code Bruk **CLI Tools**-siden i dashbordet for ett-klikks konfigurasjon, eller rediger `~/.claude/settings.json` manuelt. ### Codex CLI ```bash export OPENAI_BASE_URL="http://localhost:20128" export OPENAI_API_KEY="your-omniroute-api-key" codex "your prompt" ``` ### OpenClaw **Alternativ 1 – Dashboard (anbefalt):** ``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply ``` **Alternativ 2 — Manuell:** Rediger `~/.openclaw/openclaw.json`: ```json { "models": { "providers": { "omniroute": { "baseUrl": "http://127.0.0.1:20128/v1", "apiKey": "sk_omniroute", "api": "openai-completions" } } } } ``` > **Merk:** OpenClaw fungerer bare med lokale OmniRoute. Bruk `127.0.0.1` i stedet for `localhost` for å unngå problemer med IPv6-oppløsning. ### Cline / Fortsett / RooCode ``` Settings → API Configuration: Provider: OpenAI Compatible Base URL: http://localhost:20128/v1 API Key: [from OmniRoute dashboard] Model: if/kimi-k2-thinking ```
--- ## 🧪 Evalueringer (evalueringer) OmniRoute inkluderer et innebygd evalueringsrammeverk for å teste LLM-responskvaliteten mot et gyldent sett. Få tilgang til den via **Analytics → Evals** i dashbordet. ### Innebygd gyldent sett Det forhåndsinstallerte "OmniRoute Golden Set" inneholder 10 testcases som dekker: - Hilsen, matematikk, geografi, kodegenerering - JSON-formatoverholdelse, oversettelse, markdown - Sikkerhetsavslag (skadelig innhold), telling, boolsk logikk ### Evalueringsstrategier | Strategi | Beskrivelse | Eksempel | | ---------- | --------------------------------------------------------------------- | -------------------------------- | | `exact` | Utdata må samsvare nøyaktig med | `"4"` | | `contains` | Utdata må inneholde understreng (uavhengig av store og små bokstaver) | `"Paris"` | | `regex` | Utdata må samsvare med regulært uttrykksmønster | `"1.*2.*3"` | | `custom` | Egendefinert JS-funksjon returnerer true/false | `(output) => output.length > 10` | --- ## 🐛 Feilsøking
Klikk for å utvide feilsøkingsveiledningen **«Språkmodellen ga ikke meldinger»** - Leverandørkvoten er oppbrukt → Sjekk dashboardkvotesporing - Løsning: Bruk kombinasjonsalternativ eller bytt til et billigere nivå **Satsbegrensning** - Abonnementskvote ut → Fallback til GLM/MiniMax - Legg til kombinasjon: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` **OAuth-token er utløpt** - Automatisk oppdatering av OmniRoute - Hvis problemene vedvarer: Dashboard → Leverandør → Koble til på nytt **Høye kostnader** - Sjekk bruksstatistikk i Dashboard → Kostnader - Bytt primærmodell til GLM/MiniMax - Bruk gratis nivå (Gemini CLI, iFlow) for ikke-kritiske oppgaver **Dashboard åpnes på feil port** - Sett `PORT=20128` og `NEXT_PUBLIC_BASE_URL=http://localhost:20128` **Skysynkroniseringsfeil** - Bekreft at `BASE_URL` peker på løpeforekomsten din - Bekreft `CLOUD_URL` poeng til det forventede skyendepunktet - Hold `NEXT_PUBLIC_*` verdier på linje med verdiene på tjenersiden **Første pålogging fungerer ikke** - Sjekk `INITIAL_PASSWORD` i `.env` - Hvis det ikke er angitt, er reservepassordet `123456` **Ingen forespørselslogger** - Sett `ENABLE_REQUEST_LOGS=true` i `.env` **Test viser «Ugyldig» for OpenAI-kompatible leverandører** - Mange leverandører avslører ikke et `/models`-endepunkt - OmniRoute v1.0.6+ inkluderer reservevalidering via chatfullføringer - Sørg for at basis-URL inkluderer suffikset `/v1` ### 🔐 OAuth em Servidor Remoto (Ekstern OAuth-oppsett) > **⚠️ VIKTIG for bruk av OmniRoute med VPS/Docker/server-fjernkontroll** ### Hva med OAuth gjør Antigravity / Gemini CLI falha em servidores remotos? Os testedores **Antigravity** og **Gemini CLI** usam **Google OAuth 2.0** for autenticação. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs pre-cadastradas no Google Cloud Console do aplicativo. Som credenciais OAuth embutidas no OmniRoute estão cadastradas **apenas para `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (eks: `https://omniroute.meuservidor.com`), o Google avviser autenticação com: ``` Error 400: redirect_uri_mismatch ``` ### Løsning: Konfigurer OAuth-tilbehør Você precisa criar um **OAuth 2.0 Client ID** no Google Cloud Console com en URI for seu service. #### Passo a passo **1. Tilgang til Google Cloud Console** Abra: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) **2. Crie um novo OAuth 2.0 Client ID** - Klikk dem **"+ Opprett legitimasjon"** → **"OAuth-klient-ID"** - Tipo de aplicativo: **"Nettapplikasjon"** - Navn: escolha qualquer nome (eks.: `OmniRoute Remote`) **3. Adicione som autorisert omdirigerings-URI** Ingen campo **"Authorized redirect URIs"**, adicione: ``` https://seu-servidor.com/callback ``` > Substitua `seu-servidor.com` pelo domínio ou IP do seu servidor (inclua a porta se necessário, ex: `http://45.33.32.156:20128/callback`). **4. Salve e copy as credenciais** Após criar, o Google mostrará o **Client ID** e o **Client Secret**. **5. Konfigurer som variáveis de ambiente** No seu `.env` (ou nas variáveis de ambiente do Docker): ```bash # Para Antigravity: ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret # Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** ```bash # Se usando npm: npm run dev # Se usando Docker: docker restart omniroute ``` **7. Tente conectar novamente** Dashboard → Leverandører → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` e autenticação funcionará. --- ### Midlertidig midlertidig løsning (som konfigureres på forhånd) Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: 1. O OmniRoute abrirá en URL fra autorização til Google 2. Após você autorizar, o Google tentará redirecionar for `localhost` (que falha no servidor remoto) 3. **Kopier en URL fullført** da barra de endereço do seu nettleseren (mesmo que a página não carregue) 4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute 5. Klikk på **"Koble til"** > Este workaround funciona porque or código de autorização na URL é válido independente do redirect ter carregado or não.
--- ## 🛠️ Tech Stack - **Kjøretid**: Node.js 18–22 LTS (⚠️ Node.js 24+ støttes **ikke** — `better-sqlite3` native binærfiler er inkompatible) - **Språk**: TypeScript 5.9 — **100 % TypeScript** på tvers av `src/` og `open-sse/` (v1.0.6) - **Rammeverk**: Next.js 16 + React 19 + Tailwind CSS 4 - **Database**: LowDB (JSON) + SQLite (domenetilstand + proxy-logger) - **Streaming**: Server-sendte hendelser (SSE) - **Auth**: OAuth 2.0 (PKCE) + JWT + API-nøkler - **Test**: Node.js-testløper (368+ enhetstester) - **CI/CD**: GitHub-handlinger (automatisk npm-publisering + Docker Hub ved utgivelse) - **Nettsted**: [omniroute.online](https://omniroute.online) - **Pakke**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) - **Dokker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) - **Resiliens**: Strømbryter, eksponentiell backoff, anti-trdnende flokk, TLS-spoofing --- ## 📖 Dokumentasjon | Dokument | Beskrivelse | | -------------------------------------------- | ---------------------------------------------------------- | | [User Guide](docs/USER_GUIDE.md) | Leverandører, kombinasjoner, CLI-integrasjon, distribusjon | | [API Reference](docs/API_REFERENCE.md) | Alle endepunkter med eksempler | | [Troubleshooting](docs/TROUBLESHOOTING.md) | Vanlige problemer og løsninger | | [Architecture](docs/ARCHITECTURE.md) | Systemarkitektur og innvendig | | [Contributing](CONTRIBUTING.md) | Utviklingsoppsett og retningslinjer | | [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-spesifikasjon | | [Security Policy](SECURITY.md) | Sårbarhetsrapportering og sikkerhetspraksis | | [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Komplett guide: VM + nginx + Cloudflare-oppsett | | [Features Gallery](docs/FEATURES.md) | Visuell dashbordomvisning med skjermbilder | ### 📸 Forhåndsvisning av dashbord
Klikk for å se skjermbilder av dashbordet | Side | Skjermbilde | | ----------------- | ------------------------------------------------- | | **Tilbydere** | ![Providers](docs/screenshots/01-providers.png) | | **Komboer** | ![Combos](docs/screenshots/02-combos.png) | | **Analyse** | ![Analytics](docs/screenshots/03-analytics.png) | | **Helse** | ![Health](docs/screenshots/04-health.png) | | **Oversetter** | ![Translator](docs/screenshots/05-translator.png) | | **Innstillinger** | ![Settings](docs/screenshots/06-settings.png) | | **CLI-verktøy** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | | **Brukslogger** | ![Usage](docs/screenshots/08-usage.png) | | **Endepunkt** | ![Endpoint](docs/screenshots/09-endpoint.png) |
--- ## 🗺️ Veikart OmniRoute har **210+ funksjoner planlagt** på tvers av flere utviklingsfaser. Her er nøkkelområdene: | Kategori | Planlagte funksjoner | Høydepunkter | | -------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------- | | 🧠 **Routing og intelligens** | 25+ | Ruting med lavest ventetid, tag-basert ruting, forhåndskontroll av kvoter, valg av P2C-konto | | 🔒 **Sikkerhet og overholdelse** | 20+ | SSRF-herding, tilsløring av legitimasjon, hastighetsgrense per endepunkt, styringsnøkkelomfang | | 📊 **Observerbarhet** | 15+ | OpenTelemetry-integrasjon, kvoteovervåking i sanntid, kostnadssporing per modell | | 🔄 **Tilbyderintegrasjoner** | 20+ | Dynamisk modellregister, leverandørnedkjøling, multi-konto Codex, Copilot-kvoteparsing | | ⚡ **Ytelse** | 15+ | Dobbelt hurtigbufferlag, promptbuffer, svarbuffer, streaming keepalive, batch API | | 🌐 **Økosystem** | 10+ | WebSocket API, config hot-reload, distribuert config store, kommersiell modus | ### 🔜 Kommer snart - 🔗 **OpenCode Integration** — Innebygd leverandørstøtte for OpenCode AI-kodings-IDE - 🔗 **TRAE-integrasjon** — Full støtte for utviklingsrammeverket for TRAE AI - 📦 **Batch API** — Asynkron batchbehandling for bulkforespørsler - 🎯 **Tag-basert ruting** — Ruteforespørsler basert på tilpassede tagger og metadata - 💰 **Laveste kostnadsstrategi** — Velg automatisk den billigste tilgjengelige leverandøren > 📝 Full funksjonsspesifikasjoner tilgjengelig i [link](docs/new-features/) (217 detaljerte spesifikasjoner) --- ## 📧 Støtte > 💬 **Bli med i fellesskapet vårt!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Få hjelp, del tips og hold deg oppdatert. - **Nettsted**: [omniroute.online](https://omniroute.online) - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) - **Problemer**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) - **WhatsApp**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - **Originalt prosjekt**: [9router by decolua](https://github.com/decolua/9router) --- ## 👥 Bidragsytere [![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) ### Hvordan bidra 1. Fordel depotet 2. Lag din funksjonsgren (`git checkout -b feature/amazing-feature`) 3. Bekreft endringene dine (`git commit -m 'Add amazing feature'`) 4. Skyv til grenen (`git push origin feature/amazing-feature`) 5. Åpne en pull-forespørsel Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerte retningslinjer. ### Slipper en ny versjon ```bash # Create a release — npm publish happens automatically gh release create v1.0.6 --title "v1.0.6" --generate-notes ``` --- ## 📊 Stjernehistorie Star History Chart --- ## 🙏 Anerkjennelser Spesiell takk til **[9router](https://github.com/decolua/9router)** av **[decolua](https://github.com/decolua)** — det originale prosjektet som inspirerte denne gaffelen. OmniRoute bygger på det utrolige grunnlaget med tilleggsfunksjoner, multimodale APIer og en full TypeScript-omskriving. Spesiell takk til **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — den originale Go-implementeringen som inspirerte denne JavaScript-porten. --- ## 📄 Lisens MIT-lisens - se [LICENSE](LICENSE) for detaljer. ---
Bygget med ❤️ for utviklere som koder 24/7
omniroute.online