## 💰 ~1.62B توکن در ماه از سطحهای رایگان ارائهدهندگان شخص ثالث
> **از حسابهای ارائهدهندگان خودتان استفاده کنید.** این مقدار، برآوردی تجمیعی از سطحهای رایگان شخص ثالث است که بهطور جداگانه واجد شرایط هستند، نه سهمیهای از توکن که OmniRoute ارائه کند. ثبتنام کنید، در صورت نیاز اطلاعات احراز هویت را دریافت کنید و ارائهدهندگانی را که میتوانید استفاده کنید متصل نمایید؛ هر ارائهدهنده محدودیتها، دسترسپذیری و شرایط خود را کنترل میکند.
>
> تجمیع دستی سطحهای رایگان دشوار است — دهها SDK، دهها محدودیت نرخ و بدون هیچ تصوری از اینکه واقعاً چه مقدار در اختیار دارید. OmniRoute تعداد **489 ورودی سطح رایگان در 35 کلید استخر تکرارشونده** را فهرست میکند و رقم اصلی توکن را از **17 استخر دارای بودجه ماهانه مثبت و منتشرشده، بهعلاوه پنج سقف Groq برای هر مدل** محاسبه میکند؛ استخرهای مشترک نیز رفع تکرار میشوند. سهمیههایی که تنها پس از بررسی هویت منطقهای فعال میشوند (در حال حاضر: ModelScope)، جداگانه نمایش داده میشوند؛ +~6M پشت تأیید هویت منطقهای قرار دارد و هرگز به رقم اصلی افزوده نمیشود. نتیجه در داشبورد (`/dashboard/free-tiers`) قابل مشاهده باقی میماند.
> خلاصه متحرک صفحه زنده `/dashboard/free-tiers`. روششناسی کامل (رفع تکرار استخرها، سطوح اعتبار، شرایط ارائهدهندگان): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> این ارقام هر دو هفته یکبار با فهرست زنده دوباره ممیزی میشوند و **در هر دو جهت تغییر میکنند** — اگر ارائهدهندهای سطح رایگان خود را پایان دهد، عدد کاهش مییابد؛ اگر مورد جدیدی اضافه شود، افزایش پیدا میکند. ما چیزی را منتشر میکنیم که فهرست واقعاً محاسبه میکند، نه یک سناریوی خوشبینانه که رو به بالا گرد شده باشد.
⭐ اگر OMNIROUTE به شما کمک کرده است در هزینهها صرفهجویی کنید و کارتان را آسانتر انجام دهید، به مخزن ستاره بدهید.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 به جامعه بپیوندید
**👋 نگهدارنده پروژه را دنبال کنید — زودتر از دیگران از ارائهدهندگان جدید، انتشارها و نکات باخبر شوید:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**پرسشها، نکات ارائهدهندگان، نقشه راه و پشتیبانی ← [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 جهانی](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 برزیل](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [پرتال](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 دروازه همچنان در حال گسترش است
## 🆓 نصب کنید، یک ارائهدهنده را متصل کنید، سپس از طریق یک نقطه پایانی مسیریابی کنید
```bash
# پس از اتصال یک ارائهدهنده، کلید OmniRoute خود را از Dashboard → Endpoints کپی کنید:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto` به یک مسیر واجد شرایط نیاز دارد. ممکن است یک نصب تازه هیچ مقصد بدون کلید واجد شرایطی نداشته باشد و یک ارائهدهنده بدون کلید نیز ممکن است کلاینتهای شخص ثالث را رد کند. ارائهدهندگانی که با `tos: avoid` مشخص شدهاند، از جمله OpenCode Free و Kiro، بهطور پیشفرض از مسیریابی خودکار کنار گذاشته میشوند؛ اتصال یک حساب این تنظیم را نادیده نمیگیرد. پیش از انتخاب ارائهدهنده، [راهنمای سطوح رایگان](docs/getting-started/FREE-TIERS-GUIDE.md) را ببینید.📦 اسکریپتهای شروع سریع آماده کپی و جایگذاری برای **Python، Node.js، PHP و cURL** ← [`examples/quickstart/`](examples/quickstart/)
# 💥 وعده ما
# 🤔 چرا OmniRoute؟
## 🤝 مورد حمایت دوستان متنباز ما
> **آیا میخواهید به عنوان یک دوست متنباز به ما بپیوندید؟** اینها شرکتهایی هستند که از متنباز حمایت میکنند و به حرکت OmniRoute کمک میکنند — و ما به صورت عمومی اعلام میکنیم که هر توکنی که به ما میدهند به کجا میرود. با ما تماس بگیرید: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
با تشکر از Kimi (Moonshot AI)، دوست متنباز بنیانگذار ما، برای حمایت از این پروژه! Kimi آزمایشگاه هوش مصنوعی پشت خانواده مدلهای K2 و K3 با وزن باز است — Kimi K3 یک پنجره زمینه 1M-توکن، دید بومی و کدنویسی در سطح مرزی را با کسری از قیمت مدلهای بسته ارائه میدهد و با Claude Code، Codex و هر ابزار کدنویسی که OmniRoute ارائه میدهد، خارج از جعبه کار میکند.
حمایت Kimi چه چیزی را تامین میکند: اعتبارات API Kimi خط لوله انتشار تایید شده توسط هوش مصنوعی OmniRoute را تامین میکند — مرحله تایید ادغام توسط Kimi K3 که هر درخواست کشش را قبل از ارسال بررسی میکند — به علاوه توسعه ویژگیهای روزمره. پشتیبانی درجه یک Kimi در هر دو مسیر ارائه میشود: API مستقیم Kimi (kimi-k3) و برنامه کدنویسی Kimi Code (OAuth و کلید API). OmniRoute همچنین اولین پروژه متنباز برزیلی در برنامه پشتیبانی Kimi است. یک کلید API Kimi با 15% اعتبار اضافی دریافت کنید ←
استنتاج ارزانتر cheaperinference.com
با تشکر از استنتاج ارزانتر، یک دوست متنباز OmniRoute، برای حمایت از این پروژه! استنتاج ارزانتر یک دروازه با رتبهبندی هزینه است که 42 مدل مرزی — Claude، GPT-5.x، Gemini، Kimi K3، GLM، DeepSeek، Grok و MiniMax — را پشت یک نقطه پایانی سازگار با OpenAI به فروش میرساند و هر درخواست را به ارزانترین ارائهدهنده واجد شرایط هدایت میکند بدون اینکه هرگز بالاتر از قیمت لیست سازنده مدل شارژ کند.
پشتیبانی درجه یک در OmniRoute: تکمیل چت، نقطه پایانی بومی /v1/responses، دید، فراخوانی ابزار و 3 مدل تصویر (grok-imagine، nano-banana-pro، nano-banana-2، قابل دسترسی به عنوان cheaperinference/<model>). یک کلید API دریافت کنید ←
لینکهای دارای برچسب aff=omniroute لینکهای شریک هستند. آنها پروژه را بدون هیچ هزینه اضافی برای شما تامین مالی میکنند. 🎟️ تبلیغات وابسته — کوپنهای ثبتنام رایگان از ارائهدهندگانی که ما حمایت نمیکنیم (برای گسترش کلیک کنید)این بخش فقط برای کدهای ارجاع/کوپن است. مشارکتهای حمایتشده در بخش 🤝 مورد حمایت دوستان متنباز ما در بالا قرار دارند. OmniRoute هیچ حمایت یا مشارکتی با ارائهدهندگان ذکر شده در اینجا ندارد — اینها کوپنهای عمومی هستند که هر کسی میتواند از آنها استفاده کند.
AgentRouter agentrouter.org
AgentRouter — ثبتنام وابسته · 100 دلار اعتبار رایگان هنگام ثبتنام (سرور رایگان، انتظار تاخیر بالاتر — بهترین برای آزمایش، نه تولید). پشتیبانی درجه یک در OmniRoute از v3.8.50: تکمیل چت، فرمت سیمی سازگار با Anthropic و مسیر سازگار با OpenAI. مدلهای موجود شامل claude-opus-4-8، claude-opus-5، gpt-5.6-sol و موارد دیگر. 100 دلار خود را بگیرید ←
⚠️ لینک وابسته — OmniRoute هیچ حمایت یا مشارکتی با این ارائهدهنده ندارد.
آیا ارائهدهنده دیگری با کوپن ثبتنام رایگان سخاوتمندانه میشناسید که به کاربران OmniRoute سود برساند؟ یک مشکل باز کنید و ما آن را اینجا اضافه خواهیم کرد.
## 🎯 کمبوها — قابلیت شاخص
> **کمبو** زنجیرهای از مدلهاست که OmniRoute **بهصورت خودکار** درخواستها را میان آنها مسیریابی میکند. اگر سهمیه تمام شود، ارائهدهندهای از کار بیفتد یا هزینهها جهش کنند، کمبو میتواند به مدل سالم و واجد شرایط بعدی منتقل شود. 🛡️
### ⚡ بدون نیاز به پیکربندی — فقط از `auto` استفاده کنید
نیازی به ساخت کمبو نیست. مدل خود را روی `auto` (یا یکی از گونههای آن) تنظیم کنید تا OmniRoute بر اساس ارائهدهندگان متصل شما یک کمبوی مجازی بسازد و آن را بهصورت زنده امتیازدهی کند:
شناسه مدل
آنچه برایش بهینهسازی میکند
auto
🎯 حالت پیشفرض متعادل (LKGP — به آخرین ارائهدهنده مناسب شما پایبند میماند)
auto/coding
🧑💻 وزندهی کیفیتمحور برای تولید کد
auto/fast
⚡ ابتدا کمترین تأخیر
auto/cheap
💰 ابتدا کمترین هزینه بهازای هر توکن
auto/offline
🔋 ابتدا بیشترین ظرفیت آزاد سهمیه / محدودیت نرخ
auto/smart
🔭 کیفیتمحور + 10٪ کاوش برای یافتن مدلهای بهتر
auto/lkgp
📌 پایبندی صریح به آخرین ارائهدهنده مناسب شناختهشده
auto/chaos
🧪 ارسال موازی به مجموعهای از مدلها (یکی بهازای هر ارائهدهنده، بهطور پیشفرض 5 مدل) و بازگرداندن یک پاسخ؛ یک فراخوانی بالادستی برای هر مدل مجموعه، نه تزریق خطا
##
### 🔀 یا کمبوی خودتان را بسازید — 19 راهبرد مسیریابی
هر **19** راهبرد — در هر گام کمبو با هم ترکیب کنید:
#
راهبرد
عملکرد
1
priority
فهرست مرتبشده با اولویت هدف نخست — ظرفیت هرکدام را پیش از رفتن به بعدی کاملاً مصرف میکند 🥇
2
fill-first
پیش از رفتن به هدف بعدی، سهمیه هر هدف را کاملاً مصرف میکند
3
weighted
انتخاب تصادفی وزندار بر اساس وزن هر هدف
4
round-robin
اهداف را بهترتیب و بهصورت چرخشی پیمایش میکند
5
p2c
توزیع بار تصادفی با روش «قدرت انتخاب از میان دو گزینه»
6
least-used
هدف دارای کمترین بار فعلی را انتخاب میکند
7
random
انتخاب تصادفی یکنواخت (بدون موارد تکراری)
8
strict-random
انتخاب تصادفی بدون حذف تکرارها 🎲
9
cost-optimized
هزینه دلاری هر درخواست را بر اساس قیمتگذاری زنده کاتالوگ به حداقل میرساند 💸
10
headroom
هدف دارای بیشترین سهمیه باقیمانده را انتخاب میکند
11
reset-window
هدفی را ترجیح میدهد که بازه سهمیهاش زودتر بازنشانی میشود
12
reset-aware
بر اساس زمان بازنشانی سهمیه رتبهبندی میکند — ابتدا بازههای کوتاهتر 📊
13
context-relay
برای مکالمات طولانی، زمینه را میان اهداف منتقل میکند 🧠
14
context-optimized
بهترین گزینه متناسب با اندازه فعلی زمینه را انتخاب میکند
15
cache-optimized
هر پیشوند قابلاستفاده مجددِ پرامپت را به همان حساب متصل نگه میدارد — بیشترین بهرهبرداری از کش پرامپت 🎯
16
lkgp
مسیر آخرین گزینه موفق شناختهشده — به آخرین ارائهدهنده موفق متصل میماند، سپس در صورت نیاز به قواعد جایگزین رجوع میکند
17
auto
امتیازدهی زنده بر اساس 16 عامل در تمام اتصالها 🤖
18
fusion
درخواست را به مجموعهای از مدلها ارسال میکند و یک داور، یک پاسخ واحد را ترکیب میکند 🧬
19
pipeline
گامها را زنجیره میکند — خروجی هر هدف به هدف بعدی داده میشود 🔗
موتور Auto-Combo هر گزینه را بر اساس **16 عامل** (سلامت، سهمیه، هزینه، تأخیر، تناسب با وظیفه، کیفیت، دردسترسبودن نشست و…) امتیازدهی میکند — به [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md) مراجعه کنید.
##
### 🧱 تابآوری بهصورت داخلی تعبیه شده است (3 لایه مستقل)
📖 [موتور ترکیب خودکار](docs/routing/AUTO-COMBO.md) · [راهنمای تابآوری](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 چه چیزی OmniRoute را متمایز میکند
📊 روششناسی کامل و جزئیات هر ویژگی در مقایسه با 9router، OpenRouter، CLIProxyAPI و LiteLLM ← [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 از OmniRoute حمایت کنید
OmniRoute دارای مجوز MIT است و بهصورت عمومی نگهداری میشود. اگر باعث صرفهجویی در زمان یا هزینه شما شده است، از هر روشی که برایتان مناسب است برای مستقل ماندن آن حمایت کنید. حمایت مالی هرگز بر اولویت مسیریابی تأثیر نمیگذارد؛ این حمایت دیدهشدن را به همراه دارد، نه رتبهبندی را.
**🇧🇷 PIX** — فوری، بدون کارمزد (برزیل)
کلید (تصادفی): `5d865059-bc44-483a-962d-43ceb80126eb`
کد قابل کپی و جایگذاری Pix:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ رمزارز — BTC · ETH · USDT-TRC20 · USDC-Solana (برای باز کردن کلیک کنید)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ هر ارز را فقط از طریق شبکه مشخصشده ارسال کنید — ارسال از طریق شبکه اشتباه ممکن است باعث از دست رفتن دارایی شود.
🐛 باگ پیدا کردهاید یا بازخوردی دارید؟ یک [گفتوگو](https://github.com/diegosouzapw/OmniRoute/discussions) باز کنید.
یادداشتهای توسعهدهنده: این پروژه ممکن است برای راحتی توسعهدهندگان هنگام نصب یا پسنصب با npm، یک فایل محلی .env ایجاد کند. این فایل عمداً از طریق .gitignore نادیده گرفته میشود (.gitignore را ببینید) و هرگز نباید commit شود — اگر بهاشتباه commit شد، تمام اطلاعات محرمانه افشاشده را تغییر دهید و فایل را از تاریخچه حذف کنید. برای راهنمایی درباره مدیریت فایلهای محیطی محلی و اطلاعات محرمانه، به docs/DEVELOPER-ENVIRONMENT.md مراجعه کنید.
## 📡 رادار OmniRoute
عنوان اصلی سطح رایگان همچنان **~1.62B توکن در ماه** از کاتالوگ مستندشده و حذفتکرارشده بر اساس مخزن مشترک در بالا است. اعتبارهای موقت ثبتنام ارائهدهندگان میتوانند بهطور جداگانه میزان ماه اول را به **~2.22B** افزایش دهند. رادار یک لایهٔ اختیاری و امضاشده برای کاتالوگ است که برای افرادی طراحی شده که میخواهند در فاصلهٔ میان انتشار نسخههای OmniRoute، اطلاعات بهروزتری دربارهٔ دسترسپذیری مدلهای رایگان داشته باشند؛ کاتالوگ جامعه و تمام قابلیتهای رایگان موجود همچنان رایگان باقی میمانند.
حامیان میتوانند کاتالوگ زنده و فرصتهای بیشتری از ارائهدهندگان دریافت کنند. سقف جداگانه و متغیر آن، بسته به دسترسپذیری ارائهدهندگان، **حداکثر تقریباً 3B توکن در ماه** است. این سقف تضمینشده نیست: ارائهدهندگان ممکن است سهمیهها، شرایط احراز صلاحیت، مدلها یا مناطق را در هر زمان تغییر دهند.
رادار نیازمند فعالسازی اختیاری است و فقط از GET استفاده میکند. کلاینت OmniRoute هیچیک از اعلانها، ترافیک، پیکربندی ارائهدهنده، تلهمتری استفاده یا وضعیت محلی رد کردن اعلانها را آپلود نمیکند. برای آگاهی از شرایط احراز صلاحیت و کاتالوگ فعلی، به **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)** مراجعه کنید.
## ✨ تازهها
> تازهترین قابلیتهای شاخص از **v3.8.20 → v3.8.50**. تاریخچهٔ کامل در [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — واگذاری ورودی A2A به ناوگان عاملهای شما، مهارتهای Conductor روی Agent Card، و یک پنل داشبورد با گفتوگوی صوتی فشردن-برای-صحبت Faro. → [سرور A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 پذیرش تطبیقی و محافظت در برابر اضافهبار** — درخواستهای سنگین گفتوگو بهجای دریافت خطای 503 در صف قرار میگیرند و برای هر اتصال، اجارههای چرخشی و اتمیک RPM اعمال میشود. → [راهنمای تابآوری](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ ترتیب استاندارد `/v1/models`** — برای هر ارائهدهنده، یک بلوک پیوسته و گروهبندیشده بر اساس ارائهدهنده (ابتدا comboهای سنجاقشده)، با ترتیبی پایدار در تمام منابع کاتالوگ. → [مرجع API](docs/reference/API_REFERENCE.md)
- **🗜️ مقاومسازی فشردهسازی** — محافظ افزایش حجم که بهصورت پیشفرض فعال است، بستههای Caveman برای DE / FR / JA و چینی (wényán)، و فیلترهای RTK برای Gradle و .NET. → [فشردهسازی](docs/compression/COMPRESSION_ENGINES.md)
- **💸 هزینهٔ ثابت و صادقانه** — هزینهٔ ارائهدهندگان اشتراکی / طرحهای کدنویسی در تحلیل هزینه **$0** نمایش داده میشود؛ بودجه، سهمیه و مسیریابی همچنان برآورد میشوند. → [مرجع API](docs/reference/API_REFERENCE.md)
- **⚖️ مسیریابی Quota-Share** — سهمیهٔ یک حساب مشترک را بهطور منصفانه میان کلیدهای تجمیعشده تقسیم میکند و با حفظ بهرهوری، سهمهای بلااستفاده را به دیگران قرض میدهد. → [راهنمای تابآوری](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 راهاندازی CLI/عامل با یک فرمان** — 13 فرمان ثبتشدهٔ `setup-*`؛ فرمان `omniroute run` تعداد 7 ابزار CLI را اجرا میکند (Claude Code، Codex، Aider، Goose، OpenCode، Qwen Code، Gemini CLI)؛ فرمان `omniroute configure` از 10 مقصد با انتخابگر تعاملی ارائهدهنده+مدل و علاقهمندیهای مختص هر زمینه پشتیبانی میکند. → [یکپارچهسازیهای CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ حالت راهدور** — کنترل یک OmniRoute راهدور با توکنهای دارای محدوده (`connect` / `contexts` / `tokens`) بههمراه یک ابزار کمکی OAuth به نام `antigravity` برای نصبهای VPS. → [حالت راهدور](docs/guides/REMOTE-MODE.md)
- **🧭 مسیریابی خودکار هوشمندتر** — comboهای `auto/:`، قابلیت **Fusion** (پنل مدل + داور)، مسیریابی آگاه از وظیفه، و امکان بازنویسی مدل / حالت / بودجهٔ دلاری برای هر درخواست. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ فشردهسازی قابلافزونه** — 12 موتور ترکیبپذیر بههمراه Compression Studios: LLMLingua-2، Ultra دومرحلهای، omniglyph، دروازهٔ وفاداری برای هر مرحله، GCF v3.2 و ویرایشگر مرتبسازی با کشیدن و رهاکردن. → [فشردهسازی](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ رمزگشایی شفاف MITM (TPROXY)** — رهگیری ابزارهای CLI که متغیرهای محیطی پراکسی را نادیده میگیرند، با یک CA مختص هر SNI و نصبکنندهٔ مخزن اعتماد. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 سنجش هزینه در همهجا** — سرآیندهای هزینه/مصرف `X-OmniRoute-*` در تمام endpointها، سرآیند صرفهجویی cache-HIT و سهمیههای هزینهٔ دلاری برای هر کلید. → [مرجع API](docs/reference/API_REFERENCE.md)
- **🧠 حافظهای تحت کنترل شما** — بهصورت پیشفرض غیرفعال است و قابلیتهای اختیاری کوانتیزهسازی برداری int8 و زوال نوعدار را ارائه میدهد؛ همچنین `x-omniroute-no-memory` برای هر درخواست قابل استفاده است. → [حافظه](docs/frameworks/MEMORY.md)
- **🛡️ امنیت** — محافظ تزریق پرامپت در تمام مسیرهای LLM (مجموعهٔ آزمون تیم قرمز)، حفاظ اختیاری پوشاندن اعتبارنامهها (کلیدهای API/اسرار افشاشده را در هر دو جهت حذف میکند)، جستوجوی وب رایگان DuckDuckGo بهعنوان آخرین راهحل، و یک دروازهٔ ورود اختیاری OIDC برای داشبورد (ورود با گذرواژه همیشه در دسترس میماند). → [حفاظها](docs/security/GUARDRAILS.md)
- **🖼️ endpointهای جدید** — `/v1/ocr` (Mistral OCR) و `/v1/audio/translations` (بهسبک Whisper) مجموعهٔ قابلیتهای رسانهای را کامل میکنند. → [مرجع API](docs/reference/API_REFERENCE.md)
- **🎨 تولید تصویر / ویدئو / صدا** — یک API واحد برای رسانه: ویدئوی xAI Grok Imagine و Novita AI، بههمراه ComfyUI، Magnific، Adobe Firefly، Segmind و ارائهدهندگان گفتار مانند ElevenLabs. → [مرجع API](docs/reference/API_REFERENCE.md)
- **🌍 استقرار و عملیات** — `basePath` برای پروکسی معکوس، تشخیص خودکار زبان مرورگر، ردیابی دستگاه برای هر کلید، اعتماد MITM بدون دسترسی root و بومیسازی zh-TW. → [محیط](docs/reference/ENVIRONMENT.md)
- **🤝 ارائهدهندگان و عاملهای بیشتر** — عاملهای ابری (Codex Cloud، Cursor، Devin، Jules)، Grok Build (xAI) با مرورگر + ورود OAuth، کارت درجهیک Ollama، Claude Opus 5 و Sonnet 5، همکاری رسمی با Kimi (Code/Web/Moonshot)، Zed، Requesty، SenseNova، Yuanbao، Agnes AI… و یک **کاتالوگ بهروزشده با 352 ارائهدهنده**. → [ارائهدهندگان](docs/reference/PROVIDER_REFERENCE.md)
- **📡 شفافیت مسیریابی** — هر پاسخ دارای سرآیند `X-OmniRoute-Decision` است که راهبرد/ارائهدهنده/تأخیر سرویسدهی را مشخص میکند؛ راهبرد جدید combo با نام `cache-optimized` و عامل `cacheAffinity` در Auto-Combo، درخواستهای تکراری را دوباره به اتصالی هدایت میکنند که پیشوند ذخیرهشده در کش را در اختیار دارد؛ و endpoint فقطخواندنی `/v1/auto-combo/{channel}/candidates` مجموعهٔ زندهٔ نامزدهای یک کانال `auto/*` را در دسترس قرار میدهد. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ عملکرد و زیرساخت محلی** — Redis محلی با یک کلیک، ابزارهای استقرار رله برای Cloudflare Workers / Deno Deploy، و Bifrost و Mux بهعنوان سرویسهای تعبیهشدهٔ تحت نظارت. → [سرویسهای تعبیهشده](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 امکانات همراه دیگر** — چارچوب افزونه + بازارچه، چارچوبهای مهارت Omni/Agent/GitHub، یکپارچهسازی خزانهٔ Obsidian (22 ابزار MCP)، APIهای Batch و Files سازگار با OpenAI، کش معنایی پاسخ، بازیوارسازی همراه با جدول رتبهبندی، کشف عامل ACP (15 عامل داخلی)، خروجیگیری زمانبندیشدهٔ گزارشها به BigQuery، توزیع موازی چندمدلی `auto/chaos`، پل ربات Telegram، مدیر نسخهٔ درونبرنامهای و رتبهبندی ارائهدهندگان رایگان LMArena-ELO. → [مستندات](docs/README.md)
## 🤖 رابطهای خط فرمان و عاملهای کدنویسی سازگار
> یک پیکربندی — `http://localhost:20128/v1` — و **هر** محیط توسعه یا رابط خط فرمان هوش مصنوعی با مدلهای رایگان و کمهزینه اجرا میشود.
+ با این موارد نیز کار میکند · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · هر ابزار سازگار با OpenAI
📖 راهاندازی اختصاصی هر ابزار برای همهٔ ۳۶ ابزار (۲۶ ابزار CLI Code و ۱۰ عامل CLI) ← [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 افزونهٔ OpenCode ← [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**هر CLI پشتیبانیشده را تنها با یک فرمان از طریق OmniRoute اجرا کنید** — بدون نوشتن فایل پیکربندی،
با تزریق اعتبارنامهها بهصورت جداگانه برای هر فرایند و یک پوشهٔ خانگی موقت و ایزوله برای Qwen/Gemini:
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# یا ارائهدهنده و مدل را بهصورت تعاملی انتخاب کنید و پیکربندی خود ابزار را بنویسید:
omniroute configure codex # همچنین: claude opencode qwen aider goose gemini cline continue kilo
```
هر فرمان از زمینهٔ راهدور فعال (`omniroute connect `) پیروی میکند، `--dry-run`
متغیرهای محیطی/آرگومانهای دقیق را بدون اجرا پیشنمایش میکند، و `--api-key-env NAME` اسرار را
از تاریخچهٔ پوستهٔ شما دور نگه میدارد. ← [یکپارچهسازیهای CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 372 ارائهدهنده هوش مصنوعی — 154 مورد در کاتالوگ بهعنوان رایگان علامتگذاری شدهاند
> **372 ارائهدهنده ثبتشده** در مجموعههای مرجع چت، رسانه، جستوجو، محلی، عامل ابری و سیستم وجود دارد که از میان آنها **154 مورد دارای فراداده اکتشافی `hasFree: true` هستند**. رجیستری مدلهای چت شامل **237 ارائهدهنده / 3,009 جفت متمایز ارائهدهنده-مدل / 1,443 شناسه خام مدل** است؛ کاتالوگ جداگانه بودجه رایگان نیز دارای **491 ردیف بهازای هر مدل**، **35 مخزن دورهای** و **54 ارائهدهنده دورهای/بدون کلید با استفاده رایگان همیشگی** است. این مخرجها عمداً متفاوتاند؛ تعاریف و محاسبات با حذف موارد تکراری مخزن در [مرجع ارائهدهندگان](docs/reference/PROVIDER_REFERENCE.md) و [سطوح رایگان](docs/reference/FREE_TIERS.md) ارائه شدهاند.
### 🏢 تمام آزمایشگاههای بزرگ — از طریق یک نقطه پایانی
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…و بیش از 330 مورد دیگر — همه نمادها بهصورت زنده از کاتالوگ ارائهدهندگان داشبورد بارگیری میشوند. 📖 [مرجع ارائهدهندگان](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 برای همیشه رایگان — $0، بدون نیاز به کارت
OpenCode Zen DeepSeek V4, Nemotron 3 بدون محدودیت توکن
Kilo Code مسیریاب خودکار، Tencent Hy3 برای همیشه رایگان
### 🧩 جدید: OmniRoute درون Copilot Chat بومی VS Code
> نه نوار کناری جدیدی در کار است و نه رابط گفتوگوی تازهای — هر مدلی که OmniRoute ارائه میکند، مستقیماً در
> **انتخابگر مدل Copilot Chat که از قبل استفاده میکنید** نمایش داده میشود. از VS Code 1.122 به بعد، مدلهای ارائهدهندگان
> بدون ورود به GitHub یا اشتراک Copilot کار میکنند — حالت عامل، فراخوانی ابزار و بینایی،
> رایگان.
افزونه **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** را نصب کنید و آن را
به سرور OmniRoute خود متصل کنید (پیشفرض `localhost:20128` است)، سپس Copilot Chat ← انتخابگر مدل
← **مدیریت مدلها…** ← **OmniRoute** را باز کنید.
از داخل ویرایشگر: نمای **افزونهها** را باز کنید، **«OmniRoute»** را جستوجو کنید و روی **نصب**
کلیک کنید — در هر دو فروشگاه به یک شکل کار میکند. کد منبع، مشکلات و راهنمای انتشار در
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot) قرار دارند.
📖 [راهنمای VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — راهاندازی، آنچه انتخابگر نمایش میدهد، داشبورد در یک زبانه، عیبیابی
> `omniroute serve` وقتی همیشه روشن باشد، بهترین عملکرد را دارد. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> آن را به یک برنامه نوار منوی «تنظیم کن و فراموش کن» برای macOS تبدیل میکند: سرور را راهاندازی میکند، پس از
> راهاندازی مجدد سیستم فعال نگهش میدارد، آن را درجا بهروزرسانی میکند و بودجه زنده توکن شما را با یک کلیک در دسترس قرار میدهد — **بدون
> باز ماندن پنجره ترمینال و بدون نیاز به مراقبت از `npm install -g omniroute`.**
این برنامه با [Tauri v2](https://v2.tauri.app/) ساخته شده است (هستهای مبتنی بر Rust که اندازهاش تقریباً قابل چشمپوشی است)،
محیط اجرای امضاشده Node 24 خودش را ارائه میکند و نصب OmniRoute متعلق به برنامه را مدیریت میکند؛ بنابراین هرگز با
`node`/`bun` سراسری شما تداخل ندارد. این برنامه **از پیکربندی و پایگاه داده موجود شما در `~/.omniroute/` استفاده میکند** — پس همان
OmniRouteای است که از قبل اجرا میکنید، فقط این بار کلاه به سر دارد. 🎩
چه کاری انجام میدهد
چگونه
🟢 بر سرور نظارت میکند
omniroute serve را اجرا میکند و بهجای ایجاد نمونهای تکراری، نمونه از قبل در حال اجرا را بهکار میگیرد
📊 نمای کلی از مصرف زنده
نوارهای سهمیه ارائهدهندگان، محدودیتهای جلسهای/هفتگی Claude همراه با شمارش معکوس بازنشانی، تفکیک هزینه ۳۰روزه
🔄 بهروزرسانی خودکار درجا
نصب مرحلهای، جابهجایی اتمی، بازگشت در صورت شکست — همیشه روی جدیدترین نسخه
🚀 اجرا هنگام ورود
اجرای اختیاری هنگام ورود؛ فقط در سینی، بدون نماد در Dock
🩺 بررسی سلامت و گزارشها
عیبیابی با یک کلیک و دسترسی به گزارشهای سرور
```sh
brew install --cask zoispag/tap/omniroute-tray
```
دانلود را ترجیح میدهید؟ جدیدترین فایل .dmg را از
Releases دریافت کنید. کد منبع، مشکلات و مستندات
ساخت در zoispag/omniroute-tray قرار دارند.
💛 پروژهای اجتماعی توسط @zoispag — و نه یک نسخهٔ رسمی OmniRoute.
> فراتر از سرور، OmniRoute یک **مرکز کنترل کامل خط فرمان** با **بیش از 80 فرمان** است و در کنار آن پروتکلهای باز عامل را ارائه میدهد تا یک عامل هوش مصنوعی بتواند **بهتنهایی** آن را کنترل کند.
### ⌨️ یک CLI واقعی (نه فقط `start`)
```bash
omniroute # ارائهٔ دروازه + داشبورد (درگاه 20128)
omniroute chat # کلاینت تعاملی گفتوگوی TUI (دستورهای اسلش: /model /combo /skill /memory)
omniroute setup # راهانداز هدایتشده برای نخستین اجرا
omniroute doctor # عیبیابی ارائهدهندگان، درگاهها و وابستگیهای بومی
```
### 🛰️ حالت راه دور — CLI را اینجا و OmniRoute را روی یک VPS اجرا کنید
OmniRoute روی یک سرور است؟ با **همان CLI** آن را از لپتاپ خود کنترل کنید. یک بار
با یک توکن دسترسی دارای دامنهٔ محدود وارد شوید؛ سپس هر فرمان، سرور راه دور را هدف قرار میدهد.
```bash
omniroute connect 192.168.0.15 # گذرواژه ← توکن دارای دامنهٔ محدود، ذخیرهشده بهعنوان یک زمینه
omniroute models list # ← روی سرور راه دور اجرا میشود
omniroute configure codex # ← یک مدل راه دور را انتخاب و یک پروفایل محلی Codex ایجاد میکند
omniroute tokens create --name ci --scope read # ایجاد توکنهایی با دسترسی محدودتر برای دستگاههای دیگر
omniroute contexts use default # ← بازگشت به سرور محلی
```
دامنهٔ دسترسی توکنها `read` / `write` / `admin` است؛ مسیرهایی که فرایند اجرا میکنند فقط به رابط حلقهٔ محلی محدود میمانند.
📖 [حالت راه دور](docs/guides/REMOTE-MODE.md)
### 🤝 یک عامل را متصل کنید — تا خود OmniRoute را کنترل کند
OmniRoute را از طریق **MCP**، **A2A**، یک **REST API**، **وبهوکها** یا یک **CLI راه دور** در دسترس قرار دهید — هر عامل توانمند (یا کد خودتان) کلیدهای کنترل تمام دروازه را در اختیار میگیرد: مسیریابی، ارائهدهندگان، ترکیبها، حافظهٔ نهان، فشردهسازی و حافظه — بهصورت خودمختار. نقاط پایانی HTTP زیر در `http://localhost:20128` ارائه میشوند.
رابط
نقطهٔ پایانی / فرمان
کاربرد
🧰 MCP (stdio)
omniroute --mcp
اتصال به Claude Desktop، Cursor یا هر کلاینت MCP
🌊 MCP (HTTP)
/api/mcp/stream
MCP راه دور — 110 ابزار، 33 دامنهٔ دسترسی (اعمال محدودیت بهصورت اختیاری)، ردپای ممیزی کامل
📡 MCP (SSE)
/api/mcp/sse
انتقال جریانی MCP
🤝 A2A
/.well-known/agent.json
ارتباط عاملبهعامل، JSON-RPC 2.0 + SSE، 6 مهارت
🌐 REST API
/v1/*
سازگار با OpenAI — گفتوگو، تعبیهسازیها، تصاویر، صدا و OCR
🔔 وبهوکها
/api/webhooks
ارسال رویدادهای درخواست / سهمیه به Slack، Discord، Telegram یا هر URL
🛰️ CLI راه دور
omniroute connect
کنترل یک نمونهٔ راه دور با توکنهای دسترسی دارای دامنهٔ محدود
```bash
# مجموعهابزار کامل OmniRoute را از طریق MCP در اختیار Claude Code قرار دهید:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [سرور MCP](docs/frameworks/MCP-SERVER.md) · [سرور A2A](docs/frameworks/A2A-SERVER.md) · [پروتکلهای عامل](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ صرفهجویی خودکار ۱۵ تا ۹۵ درصدی در توکنها
### 📖 نحوه کار — خط لوله، معماری و محاسبات صرفهجویی
ترکیب انباشته پیشفرض، `RTK → Caveman` را اجرا میکند. وقتی هر دو روی یک محتوای ابزار/زمینه اعمال شوند، صرفهجوییها بهصورت مرکب محاسبه میشوند:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
بلوکهای کد، URLها، JSON و دادههای ساختاریافته توسط موتور حفظ محتوا **همیشه محافظت میشوند**.
> **وقتی چند توکن کار را راه میاندازند، چرا از توکنهای زیادی استفاده کنیم؟** هر درخواست بهشکل **شفاف** از خط لوله فشردهسازی OmniRoute عبور میکند — بدون نیاز به تغییر در کلاینت. اکنون این خط لوله **پشتهای از ۱۲ موتور ترکیبپذیر** است که بهترتیب اجرا میشوند و برای هر ترکیب مسیریابی قابل ترکیب و تطبیق هستند — با تکیه بر ایدههایی از [RTK](https://github.com/rtk-ai/rtk)، [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ بیش از 90K)، [LLMLingua-2](https://github.com/microsoft/LLMLingua) و [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 پشته ۱۲ موتوره
موتورها بهترتیب خط لوله اجرا میشوند؛ هرکدام را میتوان بهطور مستقل برای هر ترکیب فعال یا غیرفعال و پیکربندی کرد:
#
موتور
کارکرد
1
Session-Dedup
محتوای تکرارشده میان نوبتها را حذف میکند (محتوامحور، بیننوبتی)
2
CCR
بلوکهای بزرگ را پشت نشانگرهای بازیابی بایگانی میکند تا در صورت نیاز دریافت شوند
3
Lite
حذف فضای خالی اضافی و کوتاهسازی URL تصاویر (خط مبنای سبک از نظر تأخیر)
4
RTK
فیلتر هوشمند نتایج ابزار، حذف موارد تکراری و کوتاهسازی (با آگاهی از فرمان)
5
Responses Tool Output
فشردهسازی JSON با اولویت حفظ بدون اتلاف، بههمراه فشردهسازی تشخیصی محدود برای خروجیهای پوسته/وصله/جستوجو/ساخت (Responses API)
6
Headroom
فشردهسازی جدولی بدون اتلاف آرایههای JSON (حدود ۳۰٪) از طریق کُدک داخلی GCF
7
Relevance
امتیازدهی استخراجی جملهها نسبت به آخرین پرسش کاربر
8
Caveman
فشردهسازی متن مبتنی بر قواعد (حدود ۶۵ تا ۷۵٪ در خروجی)
9
Aggressive
خلاصهسازی و کهنهسازی تدریجی نوبتهای قدیمی
10
LLMLingua-2
هرس معنایی مبتنی بر یادگیری ماشین از طریق MobileBERT ONNX — ایمن برای کد و ناهمگام
11
Ultra
هرس اکتشافی توکنها با یک لایه اختیاری مدل کوچک (SLM)
12
OmniGlyph
رمزگذاری آزمایشی زمینه بهصورت تصویر برای Claude Fable 5 اندازهگیریشده روی اتصال مستقیم Anthropic؛ مبدلهای GPT 5.6 تا زمان دریافت رسیدهای ارائهدهنده در حالت بسته در برابر خطا باقی میمانند. چهار نمایه فشردهسازی (پیشفرض تهاجمی، متعادل، ایمن برای کدنویسی و عبور بدون تغییر) (تهاجمیترین؛ با فعالسازی اختیاری)
بلوکهای کد، URLها و دادههای ساختاریافته **همیشه** بهصورت بایتبهبایت و بدون تغییر حفظ میشوند. **تنظیمات آماده تککلیکی** موتورها را با هم ترکیب میکنند:
حالت
صرفهجویی
بهترین کاربرد
🪶 Lite
~۱۵٪
پیشفرض ایمن و همیشهفعال
🪨 Standard (Caveman)
~۳۰٪
کدنویسی روزمره
⚡ Aggressive
~۵۰٪
نشستهای طولانی با استفاده زیاد از ابزارها
🔥 Ultra
~۷۵٪
حداکثر صرفهجویی
🧰 RTK
۶۰–۹۰٪
خروجی پوسته/آزمایش/ساخت/git
🔗 Stacked (RTK → Caveman)
۷۸–۹۵٪
پرامپتهای ترکیبی و گزارشهای ابزار
**نمونه واقعی — حالت Standard:**
> **قبل (۶۹ توکن):** _"دلیل رندر مجدد کامپوننت React شما احتمالاً این است که در هر چرخه رندر، یک ارجاع شیء جدید ایجاد میکنید. وقتی یک شیء درونخطی را بهعنوان prop ارسال میکنید، مقایسه سطحی React هر بار آن را شیئی متفاوت تشخیص میدهد و این موضوع باعث رندر مجدد میشود. توصیه میکنم برای ذخیرهسازی شیء از useMemo استفاده کنید."_
>
> **بعد (۱۹ توکن):** _"در هر رندر، ارجاع شیء جدید. prop شیء درونخطی = ارجاع جدید = رندر مجدد. آن را در useMemo قرار دهید."_
>
> **همان پاسخ. ۷۲٪ توکن کمتر. بدون هیچ افت دقتی.** ✅
**نمونه PT-BR — حالت [Troglodita](https://github.com/leninejunior/troglodita):**
> **قبل (42 توکن):** _"مشکل این است که کامپوننت دوباره رندر میشود، چون در هر چرخهٔ رندر یک ارجاع جدید به شیء ایجاد میشود. پیشنهاد میکنم از useMemo استفاده کنید."_
>
> **بعد (12 توکن):** _"رندر مجدد: ارجاع جدید در هر چرخه (بازسازی شیء درونخطی). استفاده از `useMemo`."_
>
> **همان پاسخ. حدود 70٪ توکن کمتر. دقت فنی دستنخورده.** ✅
### 🎚️ فراتر از موتورها — سبکهای خروجی، تنظیمگر تطبیقی و کنترل در سطح هر درخواست
۱۲ موتور بالا حجم آنچه را **وارد میشود** کاهش میدهند. سه لایهٔ دیگر تعیین میکنند خروجی **چگونه**، **چه زمانی** و به چه شکلی **خارج شود**:
- **🪄 سبکهای خروجی** _(هدایت در محور خروجی)_ — دستورالعملهای قطعی و سازگار با کش را برای شکلدهی پاسخ تزریق میکند؛ قابلترکیب هستند و هرکدام شدت `lite` / `full` / `ultra` دارند. افزودن یک سبک تنها به یک ورودی تکخطی در رجیستری نیاز دارد:
- **نثر موجز** — حذف حشو، حروف تعریف و تردیدگویی؛ حفظ دقیق محتوای فنی.
- **کد کمتر** — رویکرد YAGNI یک «توسعهدهندهٔ ارشد کمکار»: کوچکترین تغییر عملی، بدون زیرساختسازیِ درخواستنشده.
- **Ponytail (توسعهدهندهٔ ارشد کمکار)** — پیمودن نردبان YAGNI، رفع علت ریشهای و ارائهٔ کوچکترین diff عملی.
- **من ADHD دارم (اقداممحور)** — شروع با اقدام بعدی، مراحل شمارهگذاریشده، یک گام بعدی مشخص و بدون مقدمه.
- **CJK موجز (文言)** — سبک فوقموجز چینی کلاسیک (محدود به locale برابر با `zh`).
- **🎯 بودجهٔ تطبیقی context** _(تنظیمگر)_ — بهجای یک آستانهٔ روشن/خاموش برای توکن، ارزانترین موتورهایی را که کمترین اتلاف را دارند فقط تا حد لازم فعال میکند تا محتوا **در پنجرهٔ context مدل جا شود**. سیاست: `reserve-output` (پیشفرض، آگاه از مدل) · `percentage` · `absolute`. حالت: `floor` (تضمین جا شدن) · `replace-autotrigger` (انتخاب صریح شما اولویت دارد) · `off` (آستانهٔ قدیمی).
- **🎛️ محل تصمیمگیری دربارهٔ فشردهسازی** _(ترتیب تقدم، از زیاد به کم)_ — هدر `x-omniroute-compression` در سطح هر درخواست › بازنویسی ترکیب مسیریابی › پروفایل نامگذاریشدهٔ فعال › تطبیقی / فعالسازی خودکار › پیشفرض پنل › خاموش. طرح اعمالشده در هدر پاسخ `X-OmniRoute-Compression: ; source=` بازگردانده میشود.
فعالسازی خودکار براساس آستانهٔ توکن، روشنکردن تنظیمگر تطبیقی، ثابتکردن یک پروفایل نامگذاریشده، تنظیم موردی برای هر درخواست یا تخصیص یک pipeline به هر ترکیب مسیریابی — هرکدام که با بار کاری سازگارتر است. یک **ابزار ارزیابی** آفلاین و اختیاری (`npm run eval:compression`) پیش از انتشار تغییر، وفاداری را در برابر میزان صرفهجویی روی یک مجموعهدادهٔ ثابت امتیازدهی میکند.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ شروع سریع
**1) نصب و اجرا**
```bash
npm install -g omniroute
omniroute
```
> 💡 پیام `npm warn ERESOLVE` یا هشدارهای peer-dep را میبینید؟ [بیضرر هستند](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **از npm 11 یا جدیدتر استفاده میکنید؟** ممکن است npm اسکریپتهای چرخهٔ عمر package را مسدود کند، مگر اینکه مجاز شده باشند. اجرای `postinstall` مربوط به OmniRoute (`node scripts/build/postinstall.mjs`) برای آمادهسازی فایلهای runtime بومی آن ضروری است. هنگام نصب سراسری، packageهای نامبردهشده در هشدار npm را مجاز کنید. برای مجموعهٔ package گزارششده توسط OmniRoute 3.8.51:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> برای استفادهٔ مجدد از این فهرست مجاز در نصبهای سراسری آینده، آن را یکبار پیکربندی کنید و سپس بهصورت عادی نصب کنید:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> فهرست وابستگیها ممکن است بین نسخهها تغییر کند؛ اگر npm فهرست متفاوتی گزارش داد، از نام packageهای همان هشدار استفاده کنید. مجازکردن یک package به اسکریپتهای نصب آن اجازهٔ اجرا میدهد.
> **از Gemini Web یا ارائهدهندهٔ دیگری مبتنی بر cookie وب استفاده میکنید؟** package مربوط به npm شامل
> Playwright است، اما باینری Chromium آن را شامل نمیشود. پیش از ارسال نخستین درخواست به ارائهدهندهٔ وب، یادداشت
> [راهاندازی Chromium برای Playwright](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> را ببینید.
داشبورد در `http://localhost:20128` · API در `http://localhost:20128/v1`.
**2) یک ارائهدهندهٔ واجد شرایط را با حساب خود متصل کنید**
داشبورد ← **ارائهدهندگان** ← ارائهدهندهای را انتخاب کنید که شرایط و سهمیهٔ فعلی آن با مورد استفادهٔ شما سازگار است ← کلید API آن را اضافه کنید یا فرایند حسابش را تکمیل کنید. طرحهای رایگان ممکن است به ثبتنام، تأیید یا روش پرداخت نیاز داشته باشند. [راهنمای طرحهای رایگان](docs/getting-started/FREE-TIERS-GUIDE.md) را بررسی کنید؛ دسترسی بدون کلید تضمین نمیشود و ارائهدهندگانی که با `tos: avoid` علامتگذاری شدهاند، بهطور پیشفرض از `auto` کنار گذاشته میشوند.
**3) ابزار کدنویسی خود را تنظیم کنید**
```txt
نشانی پایه: http://localhost:20128/v1
کلید API: [از داشبورد ← نقاط پایانی کپی کنید]
مدل: auto (مسیریابی میان اتصالهای واجد شرایط — یا ارائهدهنده/مدل را انتخاب کنید)
```
**4) از کارکرد آن مطمئن شوید**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
باید مدلهای متصلشدهٔ خود را در فهرست ببینید. 🎉 تمام شد — کدنویسی را شروع کنید؛ OmniRoute بهصورت خودکار برایتان مسیریابی میکند و در صورت نیاز به گزینهٔ جایگزین میرود.
اگر کلاینت شما نمیتواند هدرهای سفارشی ارسال کند، OmniRoute نامهای مستعار سازگاریِ توکندار را نیز ارائه میدهد:
```txt
کاتالوگ OpenAI: http://localhost:20128/vscode/YOUR_KEY/
مدلهای OpenAI: http://localhost:20128/vscode/YOUR_KEY/models
گفتوگوی OpenAI: http://localhost:20128/vscode/YOUR_KEY/chat/completions
پاسخهای OpenAI: http://localhost:20128/vscode/YOUR_KEY/responses
گفتوگوی Ollama: http://localhost:20128/vscode/YOUR_KEY/api/chat
برچسبهای Ollama: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
این موارد را فقط برای کلاینتهایی استفاده کنید که نمیتوانند `Authorization: Bearer ...` را پیوست کنند. احراز هویت با هدر همچنان روش ترجیحی است.
## 📦 روشهای بیشتر نصب — Docker، کد منبع، pnpm، Arch
**🐳 Docker**
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
`:latest` بالاترین نسخهٔ پایدار SemVer **منتشرشده** را دنبال میکند. این برچسب git `main` را دنبال نمیکند. برای GitOps، نسخه را روی `:X.Y.Z` ثابت کنید. به [کانالهای انتشار Docker](docs/guides/DOCKER_GUIDE.md#release-channels) مراجعه کنید. ایمیج مقدار **`OMNIROUTE_MEMORY_MB=1024`** را ثابت تنظیم میکند. این مقدار برای داشبورد و یک گفتوگوی سبک کافی است. **عاملهای کدنویسی** (`POST /v1/responses` از Claude Code، Codex، Grok و …) به heap بسیار بزرگتری برای V8 نیاز دارند؛ در غیر این صورت، با دو context طولانی همپوشان، پردازش در حدود ۱۲ گیگابایت با `FATAL ERROR` مواجه میشود. اندازهٔ کانتینر را بیشتر از heap در نظر بگیرید (بافرهای native خارج از V8 قرار دارند):
| بار کاری | Heap (`-e OMNIROUTE_MEMORY_MB`) | کانتینر (`--memory`) |
| -------------------------------- | ------------------------------- | -------------------- |
| داشبورد / گفتوگوی سبک | `1024` (پیشفرض ایمیج) | ≥2 g |
| یک عامل کدنویسی | `8192` | ≥10 g |
| دو `/v1/responses` طولانی همزمان | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
جدول کامل: [راهنمای Docker — RAM زمان اجرا](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **کانال پیشانتشار Docker:** برچسبهای `diegosouzapw/omniroute:next` و
> `diegosouzapw/omniroute:next-web` شاخهٔ پیشفرض فعلی `release/v*` را
> دنبال میکنند. این برچسبهای تغییرپذیر فقط برای آزمایش اصلاحات منتشرنشده در نظر گرفته شدهاند و
> **برای محیط production پشتیبانی نمیشوند**. به
> [کانالهای انتشار Docker](docs/guides/DOCKER_GUIDE.md#release-channels) مراجعه کنید.
**🥟 Bun**
دستور استاندارد `bun install` و نصب سراسری (`bun install -g omniroute`) از طریق تشخیص runtime مربوط به Bun پشتیبانی میشوند:
- **`bun:sqlite` داخلی**: هنگام اجرا تحت Bun، OmniRoute از درایور داخلی `bun:sqlite` متعلق به Bun استفاده میکند و در Node.js یا `sql.js` به `better-sqlite3` بازمیگردد.
- **انتخاب خودکار bundler مبتنی بر Webpack در محیط توسعه**: محیط توسعه (`bun run dev`) بهطور خودکار Bun را تشخیص میدهد و برای جلوگیری از ناسازگاریهای binding بومی V8، Turbopack را به نفع Webpack غیرفعال میکند. buildهای production (`bun run build`) دقیقاً مانند Node از `OMNIROUTE_USE_TURBOPACK` پیروی میکنند: بهصورت پیشفرض Turbopack و با `OMNIROUTE_USE_TURBOPACK=0`، ساخت با Webpack انجام میشود (`Dockerfile.bun` آن را بهصورت یک `--build-arg` ارائه میکند).
- **Dockerfile اختصاصی Bun**: فایل چندمرحلهای `Dockerfile.bun` برای استقرارهای production بومی Bun (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# نصب و اجرا با Bun
bun install
bun run dev
```
**🛠️ از کد منبع**
```bash
cp .env.example .env && npm install
PORT=20128 npm run dev
```
**📦 pnpm**
```bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
```
**🐧 Arch Linux (AUR)**
```bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
```
**🔧 Nix (Flake)**
```bash
# استفاده از Nix flakes
nix develop
npm run dev
# یا استفاده از devbox
devbox run npm run dev
```
📖 [راهنمای Docker](docs/guides/DOCKER_GUIDE.md) — پروفایلهای Compose، Caddy HTTPS و tunnelهای Cloudflare.
**🦭 Podman**
```bash
# ۱. دایرکتوری دادهٔ bind-mounted را آماده کنید
mkdir -p data
# ۲. فقط Linux + Podman محلی و rootless (هرگز یک کلاینت remote از Podman Machine نباشد):
podman unshare chown 1000:1000 ./data
# ۳. راهنمای runtime را تنظیم کنید، ایمیج محلی Compose را بسازید و اجرا کنید
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
در macOS یا Windows، Podman از یک Podman Machine از راه دور استفاده میکند: از `podman unshare` صرفنظر کنید و
[راهنمای دایرکتوری داده متناسب با توپولوژی](contrib/podman/README.md#data-directory-permissions-by-topology) را دنبال کنید.
📖 [راهنمای Podman](contrib/podman/README.md) — ساختهای Compose، Podman Machine و
راهاندازی Quadlet در Linux/systemd.
**⚡ نصب سریعتر / سبکتر (صرفنظر از build بومی)**
موتور بومی SQLite (`better-sqlite3`) یک وابستگی **اختیاری** است؛ بنابراین نصب سراسری
هرگز منتظر کامپایل از کد منبع نمیماند: اگر binary ازپیشساختهشدهای با
پلتفرم/Node شما سازگار باشد، از آن استفاده میکند و در غیر این صورت، بهطور شفاف به یک موتور pure-JS
(`node:sqlite` در Node 22+، و در غیر این صورت `sql.js` WASM همراه بسته) بازمیگردد — بدون نیاز به ابزارهای build.
برای صرفنظر کامل از آمادهسازی بومی پس از نصب (در CI، محیطهای headless یا دستگاههای کند):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 نیز از آن صرفنظر میکند
```
برای سریعترین نصبها، **pnpm** را ترجیح دهید (ذخیرهسازی content-addressed + لینکهای سخت — بخش بالا را ببینید).
برای runtime بدون داشبورد و headless، از پروفایل Docker با نام `base` (در بالا) یا
[راهنمای Termux](docs/guides/TERMUX_GUIDE.md) استفاده کنید. CLI و داشبورد وب توسط
همان پردازش و روی یک پورت ارائه میشوند؛ بنابراین در حال حاضر بستهٔ جداگانهای فقط برای CLI وجود ندارد.
راهبرد پوشش آزمون برای بیش از 39,000 اعلان آزمون ایستا در بیش از 5,100 فایل آزمون رهگیریشده
# ⭐ برترین مشارکتکنندگان
> OmniRoute بهدست جامعهای پرشور از متنباز شکل گرفته است. این افراد مشارکتهای برجستهای داشتهاند که مستقیماً بر کیفیت، پایداری و گستره پروژه تأثیر میگذارد. **سپاسگزاریم.**
### مشارکتکنندگان خارجی بر اساس درخواستهای کشش ادغامشده
این آمار بر اساس آخرین وضعیت زنده release/v3.8.50 در dafb4ae808، با ادغامها تا 2026-08-24 05:26:03 UTC ثابت شده است. سرشماری صفحهبندیشده GitHub GraphQL شامل 5,911 درخواست کشش ادغامشده است: 2,707 مورد توسط مالک مخزن، 179 مورد توسط Dependabot و 3,025 درخواست کشش خارجی از 535 مشارکتکننده متمایز. «خطوط تغییریافته» برابر با مجموع افزودهها و حذفهای GitHub است و فایلهای تولیدشده، lockfileها، کاتالوگها، ترجمهها و مستندات را شامل میشود؛ این مقدار نشاندهنده حجم تغییرات است، نه LOC تألیفشده. رتبههای مساوی در مرز نهایی حفظ شدهاند.
### کامیتهای منتسب به GitHub
Bob.Hou 🏅 ۵۱ کامیت منتسب به GitHub · رتبه مشترک ۱۰
Xiangzhe 🏅 ۵۱ کامیت منتسب به GitHub · رتبه مشترک ۱۰
بازبینی مجدد در 2026-08-24 06:14:31 UTC: کامیتهای منتسب به GitHub که توسط API مشارکتکنندگان مخزن برای شاخه پیشفرض release/v3.8.50 گزارش شدهاند. API تعداد ۵۲۵ هویت (۴۱۵ کاربر، ۲ ربات و ۱۰۸ ناشناس) را برگرداند؛ این جدول نگهدارنده، رباتها و هویتهای ناشناس را مستثنا میکند و رتبههای مشترک را حفظ میکند. این جدول هم با رتبهبندی درخواستهای کشش ادغامشده در بالا و هم با سرشماری ۶۳۹نفره فرادادههای Git در پایین متفاوت است.
> 🙏 قابلیتها، رفع اشکالها و بهبودهای زیرساختی این مشارکتکنندگان، **بخشی اساسی** از عواملی هستند که OmniRoute را قابلاعتماد و سرشار از قابلیت میکنند. هر درخواست کشش، هر مورد آزمایشی و هر فایل ترجمه i18n اهمیت دارد. متنباز به دست افرادی مانند آنها ساخته میشود.
---
## 💖 حامیان مالی
سپاسی صمیمانه از افرادی که هزینههای OmniRoute را از جیب خود تأمین میکنند — هر کمک مالی باعث میشود این پروژه رایگان، مستقل و در حال پیشرفت باقی بماند.
… و دیگرانی که ترجیح میدهند ناشناس بمانند 💛حامیان عمومی GitHub در تاریخ 2026-08-24 دوباره اعتبارسنجی شدند. وضعیت activeOnly در GitHub برچسبهای فعال بالا را تعیین میکند؛ همچنان از حامیان عمومی با پرداخت یکباره که پیشتر اعلام شدهاند قدردانی میشود و حامیان خصوصی ناشناس باقی میمانند.💖 حامی مالی شوید ← — هر دلار کمک میکند OmniRoute رایگان و مستقل باقی بماند.
## 👥 بیش از 600 مشارکتکننده
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
در تاریخ 2026-08-24 بر روی مبنای ثابت ac02c5b42f ممیزی شد و مجدداً در نوک زنده شاخه release/v3.8.50 با شناسه dafb4ae808 بررسی شد: 639 هویت انسانی نرمالسازیشده Git — 407 مورد بهعنوان نویسنده commit ظاهر میشوند (از جمله نگهدارنده پروژه) و 232 مورد فقط در تریلرهای صریح Co-authored-by حضور دارند. این سرشماری شناسههای noreply در GitHub را نرمالسازی میکند، 26 هویت متعلق به رباتها، عاملها، سرویسها یا جاینگهدارها را کنار میگذارد و آدرسهای ایمیل معمولی را صرفاً بهدلیل یکسان بودن نام نمایشی آنها ادغام نمیکند.
### نحوه مشارکت
1. مخزن را fork کنید
2. از نوک **فعال** شاخه `release/vX.Y.Z` منشعب شوید (نه از `main`) — به [مدل شاخهبندی و انتشار](docs/ops/BRANCHING_MODEL.md) مراجعه کنید
3. شاخه قابلیت خود را ایجاد کنید (`git checkout -b feat/amazing-feature`)
4. تغییرات خود را commit کنید (`git commit -m 'feat: add amazing feature'`)
5. تغییرات را به شاخه push کنید (`git push origin feat/amazing-feature`)
6. یک Pull Request با **base = همان شاخه `release/vX.Y.Z`** باز کنید
برای دستورالعملهای دقیق، به [CONTRIBUTING.md](CONTRIBUTING.md) مراجعه کنید.
### انتشار نسخهای جدید
```bash
# ایجاد یک انتشار — npm publish بهصورت خودکار انجام میشود
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 ستارهها
## 🌍 StarMapper
## 🙏 قدردانی
OmniRoute بر شانههای غولها ایستاده است. این پروژه بهعنوان فورکی از **[9router](https://github.com/decolua/9router)** و یک پورت TypeScript از پروژهٔ Go به نام **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** آغاز شد — و از آنجا به بعد، هر زیرسامانهٔ زیر از پروژهای متنباز الهام گرفته است که پیشتر این مسیر را پیموده بود. هر یک از آنها بخش مشخصی از OmniRoute را شکل دادهاند. این پیام سپاس ما به همهٔ آنهاست. 🙏
> ⭐ تعداد ستارهها در ۲۴ اوت ۲۰۲۶ از طریق REST API گیتهاب تأیید شده است — شما هم به این پروژهها ستاره بدهید. این تعداد، تصویری دقیق مربوط به همان تاریخ است و طبیعتاً تغییر خواهد کرد.
### 🧬 تبار و درگاه
درگاه هوش مصنوعیای که مجموعهداده عمومی قیمتگذاری آن همگامسازی ردیابی هزینه ما را تغذیه میکند و مدل نرمالسازی ارائهدهندگان آن، مسیریابی ما را شکل داده است.
الگوهایی که به بازیابی جریان، نامهای مستعار بدون تفکر، جستوجوی وب جایگزین، محدودیتهای پنجره لغزان، حذف اطلاعات حساس از گزارشها و جریانهای راهاندازی مقاوم منتقل شدهاند.
نگاشتهای مدل Grok، مولد Statsig با TypeError جعلی، پیشفرضهای درخواست و دستگاه، و پردازشگر پاسخ NDJSON آن بهطور اساسی در اجراکننده Grok Web متعلق به OmniRoute اقتباس شدهاند.
یک منبع انتقالی که grok2api-merged برای لایه مخزن پراکسی خود به آن اعتبار داده است؛ OmniRoute این اعلام تبار را حفظ میکند، اما ادعای انتقال مخزن پراکسی به اجراکننده محدود Grok Web خود را ندارد.
پیادهسازی اولیه Grok Web از طراحی بالادستی HTTP/مرورگر آن بهره گرفته است؛ مسیر مستقیم HTTP آن از GrokProxy مشتق شده، بنابراین ادعایی درباره انتقال مستقل کد مطرح نمیشود.
پروژهٔ وایرال «چرا وقتی چند توکن کار راه میاندازد، از توکنهای زیاد استفاده کنیم» — فلسفهٔ گفتار غارنشینی آن، زیربنای حالت فشردهسازی استاندارد ما و بیش از ۳۰ قاعدهٔ حذف کلمات زائد/تلخیص است.
مهارت وایرال کدنویسی YAGNI به سبک «توسعهدهندهٔ ارشد تنبل» — الهامبخش سبک خروجی less-code ما بود: هدایت بهسمت کوچکترین تغییرِ کارآمد که حجم کد _تولیدشده_ را کاهش میدهد (همتای محور خروجیِ نثر موجز Caveman).
فشردهسازی خروجیِ آگاه از محتوا و ویژهٔ هر نوع فایل، همراه با انصراف آگاه از خرابی — مسیریابی بر اساس نوع و صرفنظر کردن در صورت سود حداقلی را در طراحی ما تأیید کرد.
JSON ستونی در Rust بهعلاوهٔ بازیابی مبتنی بر آدرسدهی محتوا و حذف موارد تکراری میان پیامها — طراحی موتورهای headroom/ccr/session-dedup ما و اصل تغییرناپذیرِ سازگاری با کش، یعنی «شکل فشرده مستقل از موقعیت است»، را تأیید کرد.
رهگیری/تحلیل MITM ترافیک میان دستیار کدنویسی ↔ LLM، الزامات اولیه «بازرس ترافیک» را شکل داد. چهار ماژولی که پیشتر از آن اقتباس شده بودند — ادغام SSE، عادیسازی مکالمه، پوشاندن اطلاعات محرمانه و پاکسازی هدرها — با پیادهسازیهای مستقل کلینروم مبتنی بر استانداردهای عمومی پروتکل جایگزین شدهاند. دو سطح عبور مستقیم میزبان (passthrough.ts و _internal/bypass.cjs) همچنان پیادهسازیهای داخلی OmniRoute هستند که بهطور مستقل طبقهبندی شدهاند؛ این دو در چارچوب آن جایگزینی بازنویسی نشدند.
مسیریابی شفاف پروکسی بهازای هر فرایند — الهامبخش جمعآوری ایمن MITM هنگام خرابی، مهلتهای بیکاری سوکت، انتساب فرایند از طریق /proc و ضبط TPROXY در سامانه ما بود.
فهرستی گزینششده از کتابخانههایی با تنظیمات پیشفرض امن که راهنمای انتخابهای امنیتی ما است (Helmet.js، DOMPurify، ssrf-req-filter، safe-regex، Google Tink).