- Synced feature tables across all 28 translated READMEs (Model Aliases, Background Degradation, Rate Limit Persistence, Token Refresh Resilience) - Updated 6 docs/i18n/*/FEATURES.md with new Settings description - Created workflows: update-docs.md (with multi-language sync step), generate-release.md, issue-triage.md
60 KiB
🚀 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 ⭐ 205K |
NanoBot ⭐ 20.9K |
PicoClaw ⭐ 14.6K |
ZeroClaw ⭐ 9.9K |
IronClaw ⭐ 2.1K |
|
OpenCode ⭐ 106K |
Codex CLI ⭐ 60.8K |
Claude Code ⭐ 67.3K |
Gemini CLI ⭐ 94.7K |
Kilo Code ⭐ 15.5K |
📡 Alle agenter forbinder via http://localhost:20128/v1 eller http://cloud.omniroute.online/v1 , —limited one config and kvote
🌐 Website • 🚀 Quick Start • 💡 Features • 📖 Docs • 💰 Pricing • 💬 WhatsApp
🌐 Available in: 🇺🇸 English | 🇧🇷 Português (Brasil) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 Filipino
🤔 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
<think> 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:
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:
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.
Hurtigt løb:
docker run -d \
--name omniroute \
--restart unless-stopped \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest
Med miljøfil:
# 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:
# 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
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
💰 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
🔀 Model Aliases
Auto-forward deprecated model IDs to current replacements (built-in + custom)
⚡ Background Degradation
Auto-route background tasks (titles, summaries) to cheaper models
💬 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
💾 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-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 —
<think> 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)
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)
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!)
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
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!)
- Tilmeld dig: build.nvidia.com
- Få gratis API-nøgle (1000 slutningskreditter inkluderet)
- 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
- Tilmeld dig: platform.deepseek.com
- Hent API-nøgle
- Dashboard → Tilføj udbyder → DeepSeek
Modeller: deepseek/deepseek-chat, deepseek/deepseek-coder
Groq (gratis niveau tilgængelig!)
- Tilmeld dig: console.groq.com
- Få API-nøgle (gratis niveau inkluderet)
- Dashboard → Tilføj udbyder → Groq
Modeller: groq/llama-3.3-70b, groq/mixtral-8x7b
Prof tip: Ultrahurtig slutning — bedst til realtidskodning!
OpenRouter (100+ modeller)
- Tilmeld dig: openrouter.ai
- Hent API-nøgle
- 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.)
- Tilmeld dig: Zhipu AI
- Hent API-nøgle fra Coding Plan
- 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.)
- Tilmeld dig: MiniMax
- Hent API-nøgle
- 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)
- Abonner: Moonshot AI
- Hent API-nøgle
- 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)
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)
Dashboard → Connect Qwen
→ Device code authorization
→ Unlimited usage
Models:
qw/qwen3-coder-plus
qw/qwen3-coder-flash
Kiro (Claude GRATIS)
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
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:
{
"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
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):
# 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
# 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:
- O OmniRoute abrirá en URL de autorização til Google
- Após você autorizar, o Google tentará redirecionar para
localhost (que falha no servidor remoto)
- Kopier en URL komplet da barra de endereço do sin browser (mesmo que a página não carregue)
- Cole essa URL no campo que aparece no modal de conexão do OmniRoute
- 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
- Pakke: npmjs.com/package/omniroute
- Docker: hub.docker.com/r/diegosouzapw/omniroute
- Resiliens: Circuit breaker, eksponentiel backoff, anti-tordenbesætning, TLS spoofing
📖 Dokumentation
Dokument
Beskrivelse
User Guide
Udbydere, kombinationer, CLI-integration, implementering
API Reference
Alle endepunkter med eksempler
Troubleshooting
Almindelige problemer og løsninger
Architecture
Systemarkitektur og indre
Contributing
Udviklingsopsætning og retningslinjer
OpenAPI Spec
OpenAPI 3.0-specifikation
Security Policy
Sårbarhedsrapportering og sikkerhedspraksis
VM Deployment
Komplet guide: VM + nginx + Cloudflare opsætning
Features Gallery
Visuel dashboard-rundvisning med skærmbilleder
📸 Dashboard Preview
Klik for at se skærmbilleder af dashboard
Side
Skærmbillede
Udbydere

Komboer

Analyse

Sundhed

Oversætter

Indstillinger

CLI-værktøjer

Brugslogfiler

Endpunkt

🗺️ 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 (217 detaljerede specifikationer)
📧 Support
💬 Tilmeld dig vores fællesskab! WhatsApp Group — Få hjælp, del tips, og hold dig opdateret.
- Websted: omniroute.online
- GitHub: github.com/diegosouzapw/OmniRoute
- Problemer: github.com/diegosouzapw/OmniRoute/issues
- WhatsApp: Community Group
- Originalt projekt: 9router by decolua
👥 Bidragydere
Sådan bidrager du
- Fork depotet
- Opret din funktionsgren (
git checkout -b feature/amazing-feature)
- Bekræft dine ændringer (
git commit -m 'Add amazing feature')
- Skub til grenen (
git push origin feature/amazing-feature)
- Åbn en pull-anmodning
Se CONTRIBUTING.md for detaljerede retningslinjer.
Frigiver en ny version
# Create a release — npm publish happens automatically
gh release create v1.0.6 --title "v1.0.6" --generate-notes
📊 Stjernehistorie
🙏 Tak
Særlig tak til 9router af 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 — den originale Go-implementering, der inspirerede denne JavaScript-port.
📄 Licens
MIT-licens - se LICENSE for detaljer.
Bygget med ❤️ for udviklere, der koder 24/7
omniroute.online