OmniRoute Dashboard # 🚀 OmniRoute — Den gratis AI-gateway ### Stop aldrig med at kode. Smart routing til **GRATIS og billige AI-modeller** med automatisk fallback. _Din universelle API-proxy — ét slutpunkt, 36+ udbydere, ingen nedetid._ **Chatafslutninger • Indlejringer • Billedgenerering • Lyd • Genrangering • 100 % TypeScript** --- ### 🤖 Gratis AI-udbyder til dine foretrukne kodningsagenter _Tilslut ethvert AI-drevet IDE- eller CLI-værktøj gennem OmniRoute - gratis API-gateway til ubegrænset kodning._
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 forbinder via http://localhost:20128/v1 eller http://cloud.omniroute.online/v1 , —limited one config and 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? **Stop med at spilde penge og nå grænser:** - Abonnementskontingent udløber ubrugt hver måned - Hastighedsgrænser stopper dig midtkodning - Dyre API'er ($20-50/måned pr. udbyder) - Manuel skift mellem udbydere **OmniRoute løser dette:** - ✅ **Maksimer abonnementer** - Spor kvote, brug hver bit før nulstilling - ✅ **Automatisk fallback** - Abonnement → API-nøgle → Billig → Gratis, ingen nedetid - ✅ **Multi-konto** - Round-robin mellem konti pr. udbyder - ✅ **Universal** - Virker med Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, ethvert CLI-værktøj --- ## 🔄 Sådan virker det ``` ┌─────────────┐ │ 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
## ⚡ Hurtig start **1. Installer globalt:** ```bash npm install -g omniroute omniroute ``` 🎉 Dashboard åbner kl. `http://localhost:20128` | Kommando | Beskrivelse | | ----------------------- | --------------------------------- | | `omniroute` | Start server (standardport 20128) | | `omniroute --port 3000` | Brug tilpasset port | | `omniroute --no-open` | Åbn ikke browseren automatisk | | `omniroute --help` | Vis hjælp | **2. Tilslut en GRATIS udbyder:** Dashboard → Udbydere → Connect **Claude Code** eller **Antigravity** → OAuth-login → Færdig! **3. Brug i dit CLI-værktøj:** ``` 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!** Begynd at kode med GRATIS AI-modeller. **Alternativt — kø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 tilgængelig som et offentligt Docker-billede på [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). **Hurtigt løb:** ```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 ``` **Brug af 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 ``` | Billede | Tag | Størrelse | Beskrivelse | | ------------------------ | -------- | --------- | ------------------------- | | `diegosouzapw/omniroute` | `latest` | ~250MB | Seneste stabile udgivelse | | `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Nuværende version | --- --- ## 🖥️ 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) --- ## 💰 Prissætning på et øjeblik | Tier | Udbyder | Omkostninger | Kvote nulstilling | Bedst til | | ----------------- | ----------------- | --------------------------- | ------------------ | -------------------------- | | **💳 ABONNEMENT** | Claude Code (Pro) | 20 USD/md. | 5 timer + ugentlig | Allerede abonneret | | | Codex (Plus/Pro) | $20-200/md. | 5 timer + ugentlig | OpenAI-brugere | | | Gemini CLI | **GRATIS** | 180K/md + 1K/dag | Alle sammen! | | | GitHub Copilot | $10-19/md. | Månedlig | GitHub-brugere | | **🔑 API NØGLE** | NVIDIA NIM | **GRATIS** (1000 kreditter) | Engangs | Gratis tier test | | | DeepSeek | Betal pr. brug | Ingen | Bedste pris/kvalitet | | | Groq | Gratis niveau + betalt | Sats begrænset | Ultrahurtig slutning | | | xAI (Grok) | Betal pr. brug | Ingen | Grok modeller | | | Mistral | Gratis niveau + betalt | Sats begrænset | Europæisk AI | | | OpenRouter | Betal pr. brug | Ingen | 100+ modeller | | **💰 BILLIG** | GLM-4.7 | 0,6 USD/1 mio. | Dagligt 10:00 | Budget backup | | | MiniMax M2.1 | $0,2/1 mio. | 5-timers rullende | Billigste mulighed | | | Kimi K2 | 9 USD/md. lejlighed | 10M tokens/md. | Forudsigelige omkostninger | | **🆓 GRATIS** | iFlow | $0 | Ubegrænset | 8 modeller gratis | | | Qwen | $0 | Ubegrænset | 3 modeller gratis | | | Kiro | $0 | Ubegrænset | Claude gratis | **💡 Pro-tip:** Start med Gemini CLI (180K gratis/måned) + iFlow (ubegrænset gratis) combo = $0 omkostninger! --- ## 💡 Nøglefunktioner ### 🧠 Core Routing & Intelligence | Funktion | Hvad det gør | | ---------------------------------- | -------------------------------------------------------------------------------------- | | 🎯 **Smart 4-lags fallback** | Auto-rute: Abonnement → API-nøgle → Billig → Gratis | | 📊 **Kvotesporing i realtid** | Live token count + nulstil nedtælling pr. udbyder | | 🔄 **Formatoversættelse** | OpenAI ↔ Claude ↔ Gemini ↔ Markør ↔ Kiro sømløs + respons sanitisering | | 👥 **Multi-Account Support** | Flere konti pr. udbyder med intelligent valg | | 🔄 **Automatisk token-opdatering** | OAuth-tokens opdateres automatisk med genforsøg | | 🎨 **Tilpassede kombinationer** | 6 strategier: fill-first, round-robin, p2c, random, mindst brugt, omkostningsoptimeret | | 🧩 **Tilpassede modeller** | Tilføj ethvert model-id til enhver udbyder | | 🌐 **Wildcard-router** | Rut `provider/*` mønstre til enhver udbyder dynamisk | | 🧠 **Tænkende budget** | Passthrough, auto, brugerdefinerede og adaptive tilstande til ræsonnerende modeller | | 💬 **System Prompt Injection** | Global systemprompt anvendt på tværs af alle anmodninger | | 📄 **Responses API** | Fuld OpenAI Responses API (`/v1/responses`) understøttelse af Codex | ### 🎵 Multi-Modal API'er | Funktion | Hvad det gør | | ------------------------ | -------------------------------------------------- | | 🖼️ **Billedgenerering** | `/v1/images/generations` — 4 udbydere, 9+ modeller | | 📐 **Indlejringer** | `/v1/embeddings` — 6 udbydere, 9+ modeller | | 🎤 **Lydtransskription** | `/v1/audio/transcriptions` — Whisper-kompatibel | | 🔊 **Tekst-til-tale** | `/v1/audio/speech` — Multi-udbyder lydsyntese | | 🛡️ **Moderationer** | `/v1/moderations` — Indholdssikkerhedstjek | | 🔀 **Omrangering** | `/v1/rerank` — Omrangering af dokumentrelevans | ### 🛡️ Modstandsdygtighed og sikkerhed | Funktion | Hvad det gør | | -------------------------------- | ------------------------------------------------------------------------------ | | 🔌 **Circuit Breaker** | Automatisk åbning/lukning pr. udbyder med konfigurerbare tærskler | | 🛡️ **Anti-tordenbesætning** | Mutex + semafor-hastighedsgrænse for API-nøgleudbydere | | 🧠 **Semantisk cache** | To-lags cache (signatur + semantisk) reducerer omkostninger og ventetid | | ⚡ **Anmod om idempotens** | 5s dedup-vindue for duplikerede anmodninger | | 🔒 **TLS Fingerprint Spoofing** | Omgå TLS-baseret botdetektion via wreq-js | | 🌐 **IP-filtrering** | Tilladelsesliste/blokeringsliste til API-adgangskontrol | | 📊 **Redigerbare satsgrænser** | Konfigurerbar RPM, min. gap og maks. samtidighed på systemniveau | | 🛡 **API-endepunktsbeskyttelse** | Auth gating + udbyderblokering for `/models` slutpunktet | | 🔒 **Proxysynlighed** | Farvekodede badges: 🟢 global, 🟡 udbyder, 🔵 per forbindelse med IP-skærm | | 🌐 **3-Level Proxy Config** | Konfigurer proxyer på globalt niveau, pr. udbyder eller pr. forbindelsesniveau | ### 📊 Observerbarhed og analyse | Funktion | Hvad det gør | | --------------------------- | ------------------------------------------------------------------------------------- | | 📝 **Anmod om logning** | Fejlretningstilstand med fuld anmodnings-/svarlogs | | 💾 **SQLite Proxy Logs** | Vedvarende proxy-logfiler overlever genstart af server | | 📊 **Analytics Dashboard** | Recharts-drevet: statkort, modelbrugsdiagram, udbydertabel | | 📈 **Fremskridtssporing** | Opt-in SSE-fremskridtsbegivenheder til streaming | | 🧪 **LLM-evalueringer** | Gyldne sæt test med 4 kampstrategier | | 🔍 **Anmod om telemetri** | p50/p95/p99 latenstidsaggregering + X-Request-Id-sporing | | 📋 **Log Dashboard** | Samlet side med 4 faner: Anmodningslogfiler, Proxylogfiler, Revisionslogfiler, Konsol | | 🖥️ **Konsol Log Viewer** | Real-time terminal-stil fremviser med niveau filter, søgning, auto-scroll | | 📑 **Filbaseret logning** | Konsolinterceptor fanger alt output til JSON-logfil med rotation | | 🏥 **Sundhedskontrolpanel** | Systemets oppetid, strømafbrydertilstande, lockouts, cachestatistik | | 💰 **Omkostningssporing** | Budgetstyring + priskonfiguration pr. model | ### ☁️ Implementering og synkronisering | Funktion | Hvad det gør | | ---------------------------- | ------------------------------------------------------------------------ | | 💾 **Cloud Sync** | Synkroniser konfiguration på tværs af enheder via Cloudflare Workers | | 🌐 **Deploy hvor som helst** | Localhost, VPS, Docker, Cloudflare Workers | | 🔑 **API Key Management** | Generer, roter og omfang API-nøgler pr. udbyder | | 🧙 **Onboarding Wizard** | 4-trins guidet opsætning for førstegangsbrugere | | 🔧 **CLI Tools Dashboard** | Et-klik konfigurer Claude, Codex, Cline, OpenClaw, Kilo, Antigravity | | 🔄 **DB-sikkerhedskopier** | Automatisk backup, gendannelse, eksport og import for alle indstillinger | | 🌐 **Internationalisering** | Fuld i18n med next-intl — engelsk + portugisisk (Brasilien) support | | 🌍 **Sprogvælger** | Globusikon i overskriften til sprogskift i realtid (🇺🇸/🇧🇷) | | 📂 **Tilpasset datakatalog** | `DATA_DIR` env var for at tilsidesætte standard `~/.omniroute` lagersti |
📖 Funktionsdetaljer ### 🎯 Smart 4-Tier Fallback Opret kombinationer 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 ``` ### 📊 Kvotesporing i realtid - Tokenforbrug pr. udbyder - Nulstil nedtælling (5 timer, dagligt, ugentligt) - Omkostningsestimat for betalte niveauer - Månedlige udgiftsrapporter ### 🔄 Formatoversættelse Problemfri oversættelse mellem formater: - **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **OpenAI-svar** - Dit CLI-værktøj sender OpenAI-format → OmniRoute oversætter → Udbyder modtager oprindeligt format - Fungerer med ethvert værktøj, der understøtter brugerdefinerede OpenAI-endepunkter - **Responssanering** — Fjerner ikke-standardfelter for streng OpenAI SDK-kompatibilitet - **Rollenormalisering** — `developer` → `system` for ikke-OpenAI; `system` → `user` til GLM/ERNIE-modeller - **Tænk tag-udtrækning** — `` blokke → `reasoning_content` til tænkende modeller - **Struktureret output** — `json_schema` → Gemini's `responseMimeType`/`responseSchema` ### 👥 Support til flere konti - Tilføj flere konti pr. udbyder - Auto round-robin eller prioritetsbaseret routing - Fallback til næste konto, når man rammer kvoten ### 🔄 Automatisk token-opdatering - OAuth-tokens opdateres automatisk før udløb - Ingen manuel gengodkendelse nødvendig - Problemfri oplevelse på tværs af alle udbydere ### 🎨 Brugerdefinerede kombinationer - Opret ubegrænsede modelkombinationer - 6 strategier: fill-first, round-robin, power-of-to-choices, tilfældig, mindst brugt, omkostningsoptimeret - Del kombinationer på tværs af enheder med Cloud Sync ### 🏥 Health Dashboard - Systemstatus (oppetid, version, hukommelsesforbrug) - Strømafbrydertilstande pr. udbyder (lukket/åbent/halvt åbent) - Takstgrænsestatus og aktive lockouts - Signatur cache statistik - Latency-telemetri (p50/p95/p99) + prompt-cache - Nulstil sundhedsstatus med et enkelt klik ### 🔧 Oversætterlegeplads OmniRoute inkluderer en kraftfuld indbygget oversætterlegeplads med **4 tilstande** til fejlretning, test og overvågning af API-oversættelser: | Tilstand | Beskrivelse | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **💻 Legeplads** | Direkte formatoversættelse — indsæt enhver API-anmodningstekst og se øjeblikkeligt, hvordan OmniRoute oversætter det mellem udbyderformater (OpenAI ↔ Claude ↔ Gemini ↔ Responses API). Indeholder eksempelskabeloner og automatisk genkendelse af formater. | | **💬 Chattester** | Send rigtige chatanmodninger gennem OmniRoute og se den fulde rundrejse: dit input, den oversatte anmodning, udbyderens svar og det oversatte svar tilbage. Uvurderlig til validering af combo routing. | | **🧪 Test bænk** | Batch-testtilstand – definer flere testcases med forskellige input og forventede output, kør dem alle på én gang, og sammenlign resultater på tværs af udbydere og modeller. | | **📱 Live Monitor** | Overvågning af anmodninger i realtid — se indgående anmodninger, mens de flyder gennem OmniRoute, se formatoversættelser, der foregår live, og identificer problemer med det samme. | **Adgang:** Dashboard → Oversætter (sidebjælke) ### 💾 Cloud Sync - Synkroniser udbydere, kombinationer og indstillinger på tværs af enheder - Automatisk baggrundssynkronisering - Sikker krypteret opbevaring
--- ## 🎯 Use Cases ### Case 1: "Jeg har Claude Pro-abonnement" **Problem:** Kvoten udløber ubrugt, satsgrænser under tung kodning ``` 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 ``` ### Case 2: "Jeg vil have nul omkostninger" **Problem:** Har ikke råd til abonnementer, har brug for pålidelig AI-kodning ``` 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 ``` ### Case 3: "Jeg har brug for 24/7 kodning, ingen afbrydelser" **Problem:** Deadlines, 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 ``` ### Case 4: "Jeg vil have GRATIS AI i OpenClaw" **Problem:** Har brug for AI-assistent i beskedapps, 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... ``` --- ## 📖 Opsætningsvejledning
💳 Abonnementsudbydere ### 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 ``` **Prof tip:** Brug Opus til komplekse opgaver, Sonnet for hurtighed. OmniRoute sporer kvote pr. model! ### 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 ``` **Bedste værdi:** Kæmpe gratis niveau! Brug dette før betalte niveauer. ### 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øgleudbydere ### NVIDIA NIM (GRATIS 1000 kreditter!) 1. Tilmeld dig: [build.nvidia.com](https://build.nvidia.com) 2. Få gratis API-nøgle (1000 slutningskreditter inkluderet) 3. Dashboard → Tilføj udbyder → NVIDIA NIM: - API-nøgle: `nvapi-your-key` **Modeller:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` og mere end 50 **Prof tip:** OpenAI-kompatibel API — fungerer problemfrit med OmniRoutes formatoversættelse! ### DeepSeek 1. Tilmeld dig: [platform.deepseek.com](https://platform.deepseek.com) 2. Hent API-nøgle 3. Dashboard → Tilføj udbyder → DeepSeek **Modeller:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` ### Groq (gratis niveau tilgængelig!) 1. Tilmeld dig: [console.groq.com](https://console.groq.com) 2. Få API-nøgle (gratis niveau inkluderet) 3. Dashboard → Tilføj udbyder → Groq **Modeller:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` **Prof tip:** Ultrahurtig slutning — bedst til realtidskodning! ### OpenRouter (100+ modeller) 1. Tilmeld dig: [openrouter.ai](https://openrouter.ai) 2. Hent API-nøgle 3. Dashboard → Tilføj udbyder → OpenRouter **Modeller:** Få adgang til mere end 100 modeller fra alle større udbydere via en enkelt API-nøgle.
💰 Billige udbydere (backup) ### GLM-4.7 (Daglig nulstilling, $0,6/1 mio.) 1. Tilmeld dig: [Zhipu AI](https://open.bigmodel.cn/) 2. Hent API-nøgle fra Coding Plan 3. Dashboard → Tilføj API-nøgle: - Udbyder: `glm` - API-nøgle: `your-key` **Brug:** `glm/glm-4.7` **Pro-tip:** Coding Plan tilbyder 3× kvote til 1/7 pris! Nulstil dagligt 10:00. ### MiniMax M2.1 (5 timers nulstilling, $0,20/1 mio.) 1. Tilmeld dig: [MiniMax](https://www.minimax.io/) 2. Hent API-nøgle 3. Dashboard → Tilføj API-nøgle **Brug:** `minimax/MiniMax-M2.1` **Prof tip:** Billigste mulighed for lang sammenhæng (1M tokens)! ### Kimi K2 ($9/måned lejlighed) 1. Abonner: [Moonshot AI](https://platform.moonshot.ai/) 2. Hent API-nøgle 3. Dashboard → Tilføj API-nøgle **Brug:** `kimi/kimi-latest` **Prof tip:** Fast $9/måned for 10M tokens = $0,90/1M effektive omkostninger!
🆓 GRATIS udbydere (nødbackup) ### 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 GRATIS) ```bash Dashboard → Connect Kiro → AWS Builder ID or Google/GitHub → Unlimited usage Models: kr/claude-sonnet-4.5 kr/claude-haiku-4.5 ```
🎨 Opret kombinationer ### Eksempel 1: Maksimer abonnement → Billig backup ``` 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 (nul omkostninger) ``` 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-integration ### 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 Brug siden **CLI Tools** i dashboardet til konfiguration med et enkelt klik, 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 **Mulighed 1 — Dashboard (anbefalet):** ``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply ``` **Mulighed 2 — Manuel:** Rediger `~/.openclaw/openclaw.json`: ```json { "models": { "providers": { "omniroute": { "baseUrl": "http://127.0.0.1:20128/v1", "apiKey": "sk_omniroute", "api": "openai-completions" } } } } ``` > **Bemærk:** OpenClaw fungerer kun med lokale OmniRoute. Brug `127.0.0.1` i stedet for `localhost` for at undgå problemer med IPv6-opløsning. ### Cline / Fortsæt / 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 en indbygget evalueringsramme til at teste LLM-svarkvaliteten mod et gyldent sæt. Få adgang til det via **Analytics → Evals** i dashboardet. ### Indbygget gyldent sæt Det forudindlæste "OmniRoute Golden Set" indeholder 10 testcases, der dækker: - Hilsen, matematik, geografi, kodegenerering - JSON format compliance, oversættelse, markdown - Sikkerhedsafvisning (skadeligt indhold), optælling, boolsk logik ### Evalueringsstrategier | Strategi | Beskrivelse | Eksempel | | ---------- | ----------------------------------------------------------------------- | -------------------------------- | | `exact` | Output skal matche nøjagtigt | `"4"` | | `contains` | Output skal indeholde understreng (uafhængig af store og små bogstaver) | `"Paris"` | | `regex` | Output skal matche regex-mønster | `"1.*2.*3"` | | `custom` | Brugerdefineret JS-funktion returnerer sand/falsk | `(output) => output.length > 10` | --- ## 🐛 Fejlfinding
Klik for at udvide fejlfindingsvejledning **"Sprogmodellen leverede ikke beskeder"** - Udbyderkvote opbrugt → Tjek dashboardkvotesporing - Løsning: Brug combo fallback eller skift til et billigere niveau **Satsbegrænsende** - Abonnementskontingent ude → Fallback til GLM/MiniMax - Tilføj kombination: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking` **OAuth-token er udløbet** - Automatisk genopfrisket af OmniRoute - Hvis problemerne fortsætter: Dashboard → Udbyder → Genopret forbindelse **Høje omkostninger** - Tjek brugsstatistik i Dashboard → Omkostninger - Skift primær model til GLM/MiniMax - Brug gratis niveau (Gemini CLI, iFlow) til ikke-kritiske opgaver **Dashboard åbner på forkert port** - Sæt `PORT=20128` og `NEXT_PUBLIC_BASE_URL=http://localhost:20128` **Skysynkroniseringsfejl** - Bekræft `BASE_URL` peger på din løbeforekomst - Bekræft `CLOUD_URL` point til dit forventede cloud-endepunkt - Hold `NEXT_PUBLIC_*` værdier på linje med værdier på serversiden **Første login virker ikke** - Tjek `INITIAL_PASSWORD` i `.env` - Hvis den ikke er angivet, er reserveadgangskoden `123456` **Ingen anmodningslogfiler** - Indstil `ENABLE_REQUEST_LOGS=true` i `.env` **Forbindelsestest viser "Ugyldig" for OpenAI-kompatible udbydere** - Mange udbydere eksponerer ikke et `/models` slutpunkt - OmniRoute v1.0.6+ inkluderer fallback-validering via chatafslutninger - Sørg for, at basis-URL'en inkluderer suffikset `/v1` ### 🔐 OAuth em Servidor Remoto (Remote OAuth Setup) > **⚠️ VIGTIGT til brugere af OmniRoute med VPS/Docker/server-fjernbetjening** ### Kan du bruge Antigravity / Gemini CLI til at udføre fjernbetjeninger? 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 pré-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 (ex: `https://omniroute.meuservidor.com`), o Google afviser en autenticação com: ``` Error 400: redirect_uri_mismatch ``` ### Løsning: Konfigurer OAuth, der er godkendt Você precisa criar um **OAuth 2.0 Client ID** ingen Google Cloud Console med en URI, der udfører denne service. #### Passo a passo **1. Adgang 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** - Klik på dem **"+ Opret legitimationsoplysninger"** → **"OAuth-klient-id"** - Tipo de aplicativo: **"Webapplikation"** - Navn: escolha qualquer nome (eks.: `OmniRoute Remote`) **3. Adicione som autoriseret omdirigerings-URI** Ingen campo **"Autoriseret omdirigerings-URI'er"**, 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 → Udbydere → Antigravity (ou Gemini CLI) → OAuth Agora o Google redirecionará corretamente para `https://seu-servidor.com/callback` og autenticação funcionará. --- ### Løsning midlertidigt (som konfigureret credenciais próprias) Se não quiser criar credenciais próprias agora, ainda é possível usar o fluxo **manual de URL**: 1. O OmniRoute abrirá en URL de autorização til Google 2. Após você autorizar, o Google tentará redirecionar para `localhost` (que falha no servidor remoto) 3. **Kopier en URL komplet** da barra de endereço do sin browser (mesmo que a página não carregue) 4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute 5. Klik på **"Forbind"** > Este workaround funciona porque or código de autorização na URL é válido independente do redirect ter carregado or não.
--- ## 🛠️ Tech Stack - **Runtime**: Node.js 18–22 LTS (⚠️ Node.js 24+ er **ikke understøttet** — `better-sqlite3` native binære filer er inkompatible) - **Sprog**: TypeScript 5.9 — **100 % TypeScript** på tværs af `src/` og `open-sse/` (v1.0.6) - **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 - **Database**: LowDB (JSON) + SQLite (domænetilstand + proxylogfiler) - **Streaming**: Server-sendte hændelser (SSE) - **Auth**: OAuth 2.0 (PKCE) + JWT + API-nøgler - **Test**: Node.js testløber (368+ enhedstest) - **CI/CD**: GitHub-handlinger (automatisk npm-udgivelse + Docker Hub ved udgivelse) - **Websted**: [omniroute.online](https://omniroute.online) - **Pakke**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) - **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) - **Resiliens**: Circuit breaker, eksponentiel backoff, anti-tordenbesætning, TLS spoofing --- ## 📖 Dokumentation | Dokument | Beskrivelse | | -------------------------------------------- | -------------------------------------------------------- | | [User Guide](docs/USER_GUIDE.md) | Udbydere, kombinationer, CLI-integration, implementering | | [API Reference](docs/API_REFERENCE.md) | Alle endepunkter med eksempler | | [Troubleshooting](docs/TROUBLESHOOTING.md) | Almindelige problemer og løsninger | | [Architecture](docs/ARCHITECTURE.md) | Systemarkitektur og indre | | [Contributing](CONTRIBUTING.md) | Udviklingsopsætning og retningslinjer | | [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0-specifikation | | [Security Policy](SECURITY.md) | Sårbarhedsrapportering og sikkerhedspraksis | | [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Komplet guide: VM + nginx + Cloudflare opsætning | | [Features Gallery](docs/FEATURES.md) | Visuel dashboard-rundvisning med skærmbilleder | ### 📸 Dashboard Preview
Klik for at se skærmbilleder af dashboard | Side | Skærmbillede | | ----------------- | ------------------------------------------------- | | **Udbydere** | ![Providers](docs/screenshots/01-providers.png) | | **Komboer** | ![Combos](docs/screenshots/02-combos.png) | | **Analyse** | ![Analytics](docs/screenshots/03-analytics.png) | | **Sundhed** | ![Health](docs/screenshots/04-health.png) | | **Oversætter** | ![Translator](docs/screenshots/05-translator.png) | | **Indstillinger** | ![Settings](docs/screenshots/06-settings.png) | | **CLI-værktøjer** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | | **Brugslogfiler** | ![Usage](docs/screenshots/08-usage.png) | | **Endpunkt** | ![Endpoint](docs/screenshots/09-endpoint.png) |
--- ## 🗺️ Køreplan OmniRoute har **210+ funktioner planlagt** på tværs af flere udviklingsfaser. Her er nøgleområderne: | Kategori | Planlagte funktioner | Højdepunkter | | -------------------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------- | | 🧠 **Routing & intelligens** | 25+ | Routing med laveste latens, tag-baseret routing, kvote preflight, valg af P2C-konto | | 🔒 **Sikkerhed og overholdelse** | 20+ | SSRF-hærdning, tilsløring af legitimationsoplysninger, hastighedsgrænse pr. slutpunkt, styringsnøgleomfang | | 📊 **Observabilitet** | 15+ | OpenTelemetry-integration, kvoteovervågning i realtid, omkostningssporing pr. model | | 🔄 **Udbyderintegrationer** | 20+ | Dynamisk modelregistrering, udbydernedkøling, multi-konto Codex, Copilot-kvoteparsing | | ⚡ **Ydeevne** | 15+ | Dobbelt cachelag, promptcache, svarcache, streaming keepalive, batch API | | 🌐 **Økosystem** | 10+ | WebSocket API, config hot-reload, distribueret config butik, kommerciel tilstand | ### 🔜 Kommer snart - 🔗 **OpenCode-integration** — Native udbyderunderstøttelse af OpenCode AI-kodnings-IDE - 🔗 **TRAE-integration** — Fuld understøttelse af TRAE AI-udviklingsrammen - 📦 **Batch API** — Asynkron batchbehandling til masseanmodninger - 🎯 **Tag-baseret Routing** — Ruteanmodninger baseret på tilpassede tags og metadata - 💰 **Laveste omkostningsstrategi** — Vælg automatisk den billigste tilgængelige udbyder > 📝 Fuld funktionsspecifikationer tilgængelige i [link](docs/new-features/) (217 detaljerede specifikationer) --- ## 📧 Support > 💬 **Tilmeld dig vores fællesskab!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) — Få hjælp, del tips, og hold dig opdateret. - **Websted**: [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 projekt**: [9router by decolua](https://github.com/decolua/9router) --- ## 👥 Bidragydere [![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) ### Sådan bidrager du 1. Fork depotet 2. Opret din funktionsgren (`git checkout -b feature/amazing-feature`) 3. Bekræft dine ændringer (`git commit -m 'Add amazing feature'`) 4. Skub til grenen (`git push origin feature/amazing-feature`) 5. Åbn en pull-anmodning Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerede retningslinjer. ### Frigiver en ny version ```bash # Create a release — npm publish happens automatically gh release create v1.0.6 --title "v1.0.6" --generate-notes ``` --- ## 📊 Stjernehistorie Star History Chart --- ## 🙏 Tak Særlig tak til **[9router](https://github.com/decolua/9router)** af **[decolua](https://github.com/decolua)** — det originale projekt, der inspirerede denne gaffel. OmniRoute bygger på det utrolige fundament med yderligere funktioner, multimodale API'er og en fuld TypeScript-omskrivning. Særlig tak til **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — den originale Go-implementering, der inspirerede denne JavaScript-port. --- ## 📄 Licens MIT-licens - se [LICENSE](LICENSE) for detaljer. ---
Bygget med ❤️ for udviklere, der koder 24/7
omniroute.online