## 💰 ~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)**
## 📈 البوابة تواصل نموها
## 🆓 ثبّت OmniRoute، واربط مزوّدًا، ثم وجّه الطلبات عبر نقطة نهاية واحدة
```bash
# بعد ربط مزوّد، انسخ مفتاح OmniRoute الخاص بك من لوحة التحكم → نقاط النهاية:
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":"مرحبًا!"}]}'
```
يتطلب `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 من الدرجة الأولى عبر المسارين: Kimi API المباشر (kimi-k3) وخطة البرمجة Kimi Code (OAuth ومفتاح API). يُعد OmniRoute أيضًا أول مشروع برازيلي مفتوح المصدر ضمن برنامج دعم Kimi. احصل على مفتاح Kimi API مع أرصدة إضافية بنسبة 15% ←
Cheaper Inference cheaperinference.com
شكرًا لـ Cheaper Inference، أحد أصدقاء OmniRoute في المصادر المفتوحة، على دعم هذا المشروع! Cheaper Inference هي بوابة مرتبة حسب التكلفة تعيد بيع 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 مجموعة افتراضية من المزوّدين المتصلين لديك، مع تقييم مباشر:
🔭 الأولوية للجودة + استكشاف بنسبة 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 وتتم صيانته بشكل علني. إذا كان يوفر عليك الوقت أو المال، فإليك كيفية المساعدة في الحفاظ على استقلاليته — اختر ما يناسبك. لا تؤثر الرعاية مطلقًا في أولوية التوجيه؛ فهي تمنح الظهور، لا ترتيبًا أعلى.
⚠️ أرسل كل عملة عبر الشبكة الموضحة فقط — فقد يؤدي الإرسال عبر شبكة خاطئة إلى خسارة الأموال.
🐛 هل عثرت على خطأ أو لديك ملاحظات؟ افتح [نقاشًا](https://github.com/diegosouzapw/OmniRoute/discussions).
ملاحظات للمطورين: قد ينشئ المشروع ملف .env محليًا أثناء npm install/postinstall لتسهيل عمل المطورين. يُستبعد هذا الملف عمدًا عبر .gitignore (راجع .gitignore) ويجب عدم إدراجه في أي عملية حفظ تغييرات مطلقًا — وإذا أُدرج عن طريق الخطأ، فاستبدل أي أسرار مكشوفة واحذف الملف من السجل. راجع docs/DEVELOPER-ENVIRONMENT.md للحصول على إرشادات حول إدارة ملفات البيئة المحلية والأسرار.
## 📡 رادار OmniRoute
يظل العنوان الرئيسي للطبقة المجانية هو **~1.62 مليار رمز/شهريًا** من الكتالوج الموثّق أعلاه بعد إزالة التكرارات بين المجموعات. ويمكن لأرصدة التسجيل المؤقتة لدى مزوّدي الخدمة أن ترفع إجمالي الشهر الأول بشكل منفصل إلى **~2.22 مليار**. يُعد Radar تراكبًا اختياريًا وموقّعًا للكتالوج، مخصصًا لمن يريدون معلومات أحدث عن توافر النماذج المجانية بين إصدارات OmniRoute؛ ويظل كتالوج المجتمع وجميع الميزات المجانية الحالية مجانيًا.
يمكن للداعمين تلقي الكتالوج المباشر وفرص إضافية من مزوّدي الخدمة. ويبلغ حده الأقصى المنفصل والمتغير **نحو 3 مليارات رمز/شهريًا كحد أقصى**، وفقًا لتوافر مزوّدي الخدمة. وهذا الحد الأقصى ليس ضمانًا: إذ يمكن لمزوّدي الخدمة تغيير الحصص أو شروط الأهلية أو النماذج أو المناطق في أي وقت.
Radar اختياري ويستخدم طلبات GET فقط. لا يرفع عميل OmniRoute المطالبات أو بيانات حركة الاستخدام أو إعدادات مزوّدي الخدمة أو بيانات قياس الاستخدام عن بُعد أو حالة تجاهل الإعلانات المحلية. تعرّف على شروط الأهلية والكتالوج الحالي عبر **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ ما الجديد
> أبرز المستجدات من **v3.8.20 → v3.8.50**. السجل الكامل في [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — تفويض A2A الوارد إلى أسطول وكلائك، ومهارات Conductor في بطاقة الوكيل، ولوحة معلومات تتضمن محادثة صوتية بنظام اضغط للتحدث عبر Faro. → [خادم A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 القبول التكيفي والحماية من الحمل الزائد** — تُوضَع طلبات المحادثة الثقيلة في قائمة انتظار بدلًا من إرجاع 503، مع عقود تأجير ذرّية متجددة لحدود RPM لكل اتصال. → [دليل المرونة](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ ترتيب معياري لـ `/v1/models`** — كتلة واحدة متجاورة ومجمّعة حسب المزوّد لكل مزوّد (مع تثبيت التركيبات أولًا)، ومتسقة عبر كل مصادر الكتالوج. → [مرجع API](docs/reference/API_REFERENCE.md)
- **🗜️ تعزيز متانة الضغط** — حاجز افتراضي مفعّل للحد من فك الضغط، وحزم Caveman للألمانية / الفرنسية / اليابانية + الصينية (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` سبع واجهات CLI (Claude Code وCodex وAider وGoose وOpenCode وQwen Code وGemini CLI)؛ ويدعم `omniroute configure` عشرة أهداف مع منتقي تفاعلي للمزوّد+النموذج ومفضلات لكل سياق. → [تكاملات CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ الوضع البعيد** — التحكم في OmniRoute بعيد باستخدام رموز مميزة محددة النطاق (`connect` / `contexts` / `tokens`) + مساعد OAuth باسم `antigravity` لتثبيتات VPS. → [الوضع البعيد](docs/guides/REMOTE-MODE.md)
- **🧭 توجيه تلقائي أذكى** — تركيبات `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 التي تتجاهل متغيرات بيئة الوكيل، مع مرجع مصدّق لكل SNI + مُثبّت لمخزن الثقة. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 قياس التكلفة في كل مكان** — ترويسات التكلفة/الاستخدام `X-OmniRoute-*` على كل نقطة نهاية، وترويسة لتوفير إصابات ذاكرة التخزين المؤقت، وحصص إنفاق بالدولار الأمريكي لكل مفتاح. → [مرجع API](docs/reference/API_REFERENCE.md)
- **🧠 ذاكرة تتحكم بها** — معطّلة افتراضيًا، مع تكميم متجهات int8 اختياري وتضاؤل محدد النوع، و`x-omniroute-no-memory` لكل طلب. → [الذاكرة](docs/frameworks/MEMORY.md)
- **🛡️ الأمان** — حاجز ضد حقن المطالبات على كل مسار LLM (مع حزمة اختبارات الفريق الأحمر)، وحاجز اختياري لإخفاء بيانات الاعتماد (يحجب مفاتيح API/الأسرار المسرّبة في كلا الاتجاهين)، وبحث ويب مجاني عبر DuckDuckGo كحل أخير، وبوابة تسجيل دخول OIDC اختيارية للوحة المعلومات (مع بقاء تسجيل الدخول بكلمة المرور متاحًا دائمًا). → [حواجز الحماية](docs/security/GUARDRAILS.md)
- **🖼️ نقاط نهاية جديدة** — تكمل `/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 دون صلاحيات الجذر، وتعريب 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` تسمّي الاستراتيجية/المزوّد/زمن الاستجابة الذي تولّى خدمته، كما تعيد استراتيجية تركيبات جديدة باسم `cache-optimized` + عامل `cacheAffinity` في Auto-Combo توجيه الطلبات المتكررة إلى الاتصال الذي يحتفظ بالبادئة المخزنة مؤقتًا، وتكشف نقطة نهاية للقراءة فقط باسم `/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)، وواجهات Batch وFiles API متوافقة مع OpenAI، وذاكرة تخزين مؤقت دلالية للاستجابات، وتلعيبًا مع لوحات صدارة، واكتشاف وكلاء ACP (15 وكيلًا مدمجًا)، وتصديرًا مجدولًا للسجلات إلى BigQuery، وتوزيعًا متوازيًا متعدد النماذج عبر `auto/chaos`، وجسر بوت Telegram، ومدير إصدارات داخل التطبيق، وتصنيفات LMArena-ELO للمزوّدين المجانيين. → [المستندات](docs/README.md)
## 🤖 واجهات سطر الأوامر ووكلاء البرمجة المتوافقون
> إعداد واحد — `http://localhost:20128/v1` — ويعمل **كل** محرر IDE أو واجهة سطر أوامر مدعومة بالذكاء الاصطناعي باستخدام نماذج مجانية ومنخفضة التكلفة.
+ يعمل أيضًا مع · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · أي أداة متوافقة مع OpenAI
📖 إعداد مخصص لكل أداة لجميع الأدوات الـ 36 (26 أداة CLI للبرمجة + 10 وكلاء 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 لسطر الأوامر
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 مجاني إلى الأبد
Requesty GPT-OSS 120B، Nemotron مجاني إلى الأبد
SiliconFlow DeepSeek V3.2 / R1 فئة مجانية
Z.AI GLM GLM-4.7 / 4.5-Flash مجاني إلى الأبد
Baidu ERNIE ERNIE 4.0 مجاني إلى الأبد
Qoder AI Qwen3-Max، Kimi-K2 مجاني بلا حدود
Pollinations GPT، Llama، Claude لا حاجة إلى مفتاح
Cloudflare AI أكثر من 50 نموذجًا 10 آلاف عصبون/يوم
NVIDIA NIM GLM، MiniMax نحو 40 طلبًا في الدقيقة مجانًا
### 🧩 جديد: 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) — الإعداد، وما يعرضه المنتقي، ولوحة المعلومات داخل علامة تبويب، واستكشاف الأخطاء وإصلاحها
### 🎩 جديد: OmniRouteTray — بوابتك المقيمة في شريط القوائم
> يكون `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 وحدوده الأسبوعية مع العد التنازلي لإعادة التعيين، وتفصيل التكلفة لمدة 30 يومًا
🔄 يُجري تحديثات تلقائية في موضعه
تثبيت مرحلي، واستبدال ذري، وتراجع عند الفشل — دائمًا على أحدث إصدار
🚀 البدء عند تسجيل الدخول
تشغيل اختياري عند تسجيل الدخول؛ في علبة النظام فقط، دون أيقونة في Dock
🩺 التشخيص والسجلات
تشخيص بنقرة واحدة والوصول إلى سجلات الخادم
```sh
brew install --cask zoispag/tap/omniroute-tray
```
تفضّل التنزيل؟ احصل على أحدث ملف .dmg من
الإصدارات. تتوفر الشيفرة المصدرية والمشكلات ووثائق
البناء في 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** أو **webhooks** أو **واجهة 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 — الدردشة، والتضمينات، والصور، والصوت، والتعرّف الضوئي على الحروف
🔔 Webhooks
/api/webhooks
إرسال أحداث الطلبات / الحصص إلى Slack أو Discord أو Telegram أو أي عنوان URL
🛰️ واجهة CLI البعيدة
omniroute connect
التحكم في نسخة بعيدة باستخدام رموز وصول محدودة النطاق
```bash
# امنح Claude Code مجموعة أدوات OmniRoute الكاملة عبر MCP:
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)
## 🗜️ وفّر 15–95% من الرموز — تلقائيًا
### 📖 آلية العمل — خط المعالجة والبنية وحساب التوفير
تشغّل التركيبة المكدّسة الافتراضية `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 **بشفافية** — من دون تغييرات لدى العميل. وهو الآن **مكدّس من 12 محركًا قابلًا للتركيب** تعمل بالترتيب ويمكن مزجها ومطابقتها لكل تركيبة توجيه — استنادًا إلى أفكار من [RTK](https://github.com/rtk-ai/rtk) و[Caveman](https://github.com/JuliusBrussee/caveman) (⭐ أكثر من 90 ألفًا) و[LLMLingua-2](https://github.com/microsoft/LLMLingua) و[Troglodita](https://github.com/leninejunior/troglodita) (البرتغالية البرازيلية).
### 🧱 مكدّس المحركات الاثني عشر
تعمل المحركات وفق ترتيب خط المعالجة؛ ويمكن تفعيل كل منها أو تعطيله وتكوينه بصورة مستقلة لكل تركيبة:
#
المحرك
ما الذي يفعله
1
Session-Dedup
يحذف المحتوى المتكرر عبر التبادلات (معنون بحسب المحتوى، وعابر للتبادلات)
2
CCR
يؤرشف الكتل الكبيرة خلف علامات استرجاع، ليجري جلبها عند الطلب
3
Lite
تقليص المسافات البيضاء وعناوين URL للصور (خط أساس خفيف زمن الاستجابة)
ضغط للنثر قائم على القواعد (نحو 65–75% من المخرجات)
9
Aggressive
تلخيص وتقادم تدريجي للتبادلات القديمة
10
LLMLingua-2
تشذيب دلالي بتعلّم الآلة عبر MobileBERT ONNX — آمن للشيفرة وغير متزامن
11
Ultra
تشذيب استدلالي للرموز مع طبقة اختيارية من نموذج صغير (SLM)
12
OmniGlyph
ترميز تجريبي للسياق كصورة لنموذج Claude Fable 5 المقاس عبر اتصال Anthropic المباشر؛ وتظل محوّلات GPT 5.6 مغلقة عند الفشل بانتظار إيصالات المزوّد. أربعة ملفات تعريف للضغط (قوي افتراضيًا، ومتوازن، وآمن للبرمجة، وتمرير مباشر) (الأكثر قوة؛ يتطلب اشتراكًا صريحًا)
تُحفظ كتل الشيفرة وعناوين URL والبيانات المنظّمة **دائمًا** بصورة مطابقة تمامًا على مستوى البايت. تجمع **الإعدادات المسبقة بنقرة واحدة** بين المحركات:
الوضع
التوفير
الأنسب لـ
🪶 Lite
~15%
إعداد افتراضي آمن ودائم التشغيل
🪨 قياسي (Caveman)
~30%
البرمجة اليومية
⚡ قوي
~50%
الجلسات الطويلة كثيفة استخدام الأدوات
🔥 Ultra
~75%
أقصى توفير
🧰 RTK
60–90%
مخرجات الصدفة/الاختبار/البناء/git
🔗 مكدّس (RTK → Caveman)
78–95%
المطالبات المختلطة وسجلات الأدوات
**مثال حقيقي — الوضع القياسي:**
> **قبل (69 رمزًا):** _"يرجع سبب إعادة تصيير مكوّن React على الأرجح إلى أنك تنشئ مرجع كائن جديدًا في كل دورة تصيير. عندما تمرر كائنًا مضمّنًا بوصفه خاصية، ترى المقارنة السطحية في React أنه كائن مختلف في كل مرة، ما يؤدي إلى إعادة التصيير. أوصي باستخدام useMemo لحفظ الكائن مؤقتًا."_
>
> **بعد (19 رمزًا):** _"مرجع كائن جديد في كل تصيير. خاصية كائن مضمّن = مرجع جديد = إعادة تصيير. غلّفه بـ useMemo."_
>
> **الإجابة نفسها. رموز أقل بنسبة 72%. بلا أي فقد في الدقة.** ✅
**مثال بالبرتغالية البرازيلية — وضع [Troglodita](https://github.com/leninejunior/troglodita):**
> **قبل (42 رمزًا):** _"المشكلة هي أن المكوّن يُعاد تصييره لأن مرجع كائن جديدًا يُنشأ في كل دورة تصيير. أوصي باستخدام useMemo."_
>
> **بعد (12 رمزًا):** _"إعادة التصيير: مرجع جديد في كل دورة (إعادة إنشاء كائن مضمن). استخدم `useMemo`."_
>
> **الإجابة نفسها. رموز أقل بنحو 70%. الدقة التقنية محفوظة.** ✅
### 🎚️ ما وراء المحركات — أنماط المخرجات، والقرص التكيّفي، والتحكم لكل طلب
تُقلّص المحركات الاثنا عشر أعلاه ما **يدخل**. وتُشكّل ثلاث طبقات إضافية **الكيفية** و**التوقيت** وما **يخرج**:
- **🪄 أنماط المخرجات** _(توجيه محور المخرجات)_ — تحقن تعليمات حتمية وآمنة للتخزين المؤقت لتشكيل الاستجابة؛ ويمكن دمجها، مع شدة `lite` / `full` / `ultra` لكل منها. لا تتطلب إضافة نمط سوى إدخال من سطر واحد في السجل:
- **نثر مقتضب** — احذف الحشو وأدوات التعريف والتحوّط؛ وأبقِ المحتوى التقني دقيقًا.
- **كود أقل** — نهج YAGNI لـ«المطور الخبير الكسول»: أصغر تغيير عامل، بلا هياكل لم تُطلب.
- **ذيل الحصان (المطور الخبير الكسول)** — اصعد سلّم YAGNI، وأصلح السبب الجذري، وقدّم أصغر فرق عامل.
- **لدي اضطراب فرط الحركة وتشتت الانتباه (الإجراء أولًا)** — ابدأ بالإجراء التالي، ورقّم الخطوات، وقدّم خطوة تالية ملموسة واحدة، بلا مقدمة.
- **الصينية المقتضبة (文言)** — أسلوب صيني كلاسيكي فائق الإيجاز (مقيّد باللغة `zh`).
- **🎯 ميزانية سياق تكيّفية** _(القرص)_ — بدلًا من عتبة رموز واحدة للتشغيل/الإيقاف، صعّد استخدام أرخص المحركات وأقلها فقدًا للمعلومات بالقدر اللازم فقط **للملاءمة ضمن نافذة سياق النموذج**. السياسة: `reserve-output` (الافتراضية، واعية بالنموذج) · `percentage` · `absolute`. الوضع: `floor` (ضمان الملاءمة) · `replace-autotrigger` (يَغلِب اختيارك الصريح) · `off` (العتبة القديمة).
- **🎛️ موضع اتخاذ قرار الضغط** _(الأولوية، من الأعلى إلى الأدنى)_ — ترويسة `x-omniroute-compression` لكل طلب › تجاوز مجموعة التوجيه › ملف التعريف المسمّى النشط › التكيّف / التشغيل التلقائي › الإعداد الافتراضي للوحة › الإيقاف. تُعاد الخطة المطبقة في ترويسة الاستجابة `X-OmniRoute-Compression: ; source=`.
شغّل تلقائيًا بحسب عتبة الرموز، أو فعّل القرص التكيّفي، أو ثبّت ملف تعريف مسمّى، أو عيّن إعدادًا لمرة واحدة لكل طلب، أو خصّص خط معالجة لكل مجموعة توجيه — أيًا كان الأنسب لعبء العمل. وتقيّم **حزمة تقييم** اختيارية وغير متصلة بالإنترنت (`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` أو تحذيرات تبعيات النظير؟ [إنها غير ضارة](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **هل تستخدم npm 11 أو إصدارًا أحدث؟** قد يمنع npm نصوص دورة حياة الحزمة ما لم يُسمح بها. يلزم `postinstall` الخاص بـ OmniRoute (`node scripts/build/postinstall.mjs`) لإعداد ملفات بيئة التشغيل الأصلية. اسمح بالحزم المذكورة في تحذير npm عند التثبيت العام. بالنسبة إلى مجموعة الحزم التي أبلغ عنها 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 عن قائمة مختلفة، فاستخدم أسماء الحزم الواردة في ذلك التحذير. يسمح السماح بحزمة ما بتشغيل نصوص التثبيت الخاصة بها.
> **هل تستخدم Gemini Web أو مزوّدًا آخر يعتمد ملفات تعريف ارتباط الويب؟** تتضمن حزمة 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
عنوان URL الأساسي: 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`. ثبّت الوسم على `:X.Y.Z` لاستخدام GitOps. راجع [قنوات إصدارات Docker](docs/guides/DOCKER_GUIDE.md#release-channels).تثبّت الصورة قيمة **`OMNIROUTE_MEMORY_MB=1024`**. وهذا يكفي للوحة التحكم ومحادثة خفيفة. تحتاج **وكلاء البرمجة** (`POST /v1/responses` من Claude Code وCodex وGrok وغيرها) إلى كومة V8 أكبر بكثير، وإلا فستنتهي العملية برسالة `FATAL ERROR` عند نحو 12 GiB في ظل سياقين طويلين متداخلين. خصّص للحاوية حجمًا أكبر من الكومة (إذ توجد المخازن المؤقتة الأصلية خارج V8):
| حمل العمل | الكومة (`-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*` الافتراضي الحالي.
> هذه الوسوم القابلة للتغيير مخصصة فقط لاختبار الإصلاحات غير المنشورة،
> وهي **غير مدعومة للاستخدام في بيئات الإنتاج**. راجع
> [قنوات إصدارات Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
يُدعم كل من `bun install` القياسي والتثبيت العام (`bun install -g omniroute`) من خلال اكتشاف بيئة تشغيل Bun:
- **`bun:sqlite` المضمّن**: يستخدم OmniRoute مشغّل `bun:sqlite` المضمّن في Bun عند التشغيل ضمن Bun، مع الرجوع إلى `better-sqlite3` على Node.js أو إلى `sql.js`.
- **الاختيار التلقائي لأداة Webpack في التطوير**: يكتشف وضع التطوير (`bun run dev`) بيئة Bun تلقائيًا ويعطّل Turbopack لصالح Webpack لمنع حالات عدم التوافق مع روابط V8 الأصلية. تتبع إصدارات الإنتاج (`bun run build`) قيمة `OMNIROUTE_USE_TURBOPACK` تمامًا كما في Node: يُستخدم Turbopack افتراضيًا، ويمكن استخدام `OMNIROUTE_USE_TURBOPACK=0` للبناء باستخدام Webpack (ويتيحه `Dockerfile.bun` كوسيطة `--build-arg`).
- **ملف Dockerfile مخصص لـ Bun**: ملف `Dockerfile.bun` متعدد المراحل لعمليات نشر 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
nix develop
npm run dev
# أو باستخدام devbox
devbox run npm run dev
```
📖 [دليل Docker](docs/guides/DOCKER_GUIDE.md) — ملفات تعريف Compose، وCaddy HTTPS، وأنفاق Cloudflare.
**🦭 Podman**
```bash
# 1. تحضير دليل البيانات المرتبط
mkdir -p data
# 2. لنظام Linux مع Podman محلي دون صلاحيات الجذر فقط (وليس عميل Podman Machine بعيدًا مطلقًا):
podman unshare chown 1000:1000 ./data
# 3. تعيين تلميح بيئة التشغيل، وبناء صورة 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.
**⚡ تثبيت أسرع / أقل استهلاكًا للموارد (تخطي البناء الأصلي)**
محرك SQLite الأصلي (`better-sqlite3`) هو تبعية **اختيارية**، ولذلك لا يتعطل التثبيت
العام مطلقًا بسبب الترجمة من المصدر: إذ يستخدم ملفًا ثنائيًا مبنيًا مسبقًا عند توفر ملف
متوافق مع منصتك/Node، وإلا فإنه يرجع بشفافية إلى محرك JavaScript خالص
(`node:sqlite` على Node 22+، أو `sql.js` WASM المضمّن بخلاف ذلك) — دون الحاجة إلى أدوات بناء.
لتخطي التهيئة الأصلية اللاحقة للتثبيت بالكامل (في CI أو البيئات دون واجهة رسومية أو الأجهزة البطيئة):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # يؤدي CI=1 أيضًا إلى تخطيها
```
لأسرع عمليات تثبيت، يُفضّل استخدام **pnpm** (مخزن معنون بالمحتوى + روابط صلبة — راجع أعلاه).
ولاستخدام بيئة تشغيل دون لوحة تحكم أو واجهة رسومية، استخدم ملف تعريف Docker المسمى `base` (أعلاه) أو
[دليل Termux](docs/guides/TERMUX_GUIDE.md). تُقدَّم واجهة سطر الأوامر ولوحة تحكم الويب بواسطة
العملية نفسها عبر منفذ واحد، ولذلك لا توجد حاليًا حزمة منفصلة لواجهة سطر الأوامر فقط.
# 🎬 OmniRoute قيد التشغيل
## 📹 أدلة الفيديو
لقطة من لوحة المعلومات بتاريخ 2026-08-24 · الكتالوج الأولي: YT 809 | TT 137 | IG 124 · الحداثة (بالأيام): YT 1 | TT 21 | IG 22
استراتيجية تغطية الاختبارات لأكثر من 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 وعمليات الحذف فيه، وتشمل الملفات المُنشأة، وملفات القفل، والكتالوجات، والترجمات، والوثائق؛ وهي مقياس لحجم التغييرات وليست عدد أسطر الشفرة المؤلَّفة. تُحتفَظ بالمراتب المتعادلة عند حد الإدراج.
### الإيداعات المنسوبة عبر GitHub
Bob.Hou 🏅 51 إيداعًا منسوبًا إلى GitHub · متعادل في المركز العاشر
Xiangzhe 🏅 51 إيداعًا منسوبًا إلى GitHub · متعادل في المركز العاشر
أُعيد التحقق في 2026-08-24 06:14:31 UTC: الإيداعات المنسوبة إلى GitHub كما أبلغت عنها واجهة Contributors API الخاصة بالمستودع للفرع الافتراضي release/v3.8.50. أعادت واجهة API عدد 525 هوية (415 مستخدمًا، وبوتين، و108 هويات مجهولة)؛ يستبعد هذا الجدول المشرف والبوتات والهويات المجهولة، ويحتفظ بحالات التعادل في الترتيب. وهو يختلف عن كل من ترتيب طلبات السحب المدمجة أعلاه وإحصاء بيانات Git الوصفية الذي يشمل 639 شخصًا أدناه.
> 🙏 تُعد ميزات هؤلاء المساهمين وإصلاحاتهم للأخطاء وتحسيناتهم للبنية التحتية **جزءًا أساسيًا** مما يجعل 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 منهم كمؤلفي التزامات (بمن فيهم المشرف على الصيانة)، بينما يظهر 232 منهم فقط في تذييلات Co-authored-by الصريحة. يطبّع الإحصاء معرّفات GitHub من نوع noreply، ويستبعد 26 هوية لروبوتات/وكلاء/خدمات/عناصر نائبة، ولا يدمج عناوين البريد الإلكتروني العادية لمجرد تطابق أسماء العرض الخاصة بها.
### كيفية المساهمة
1. أنشئ نسخة متفرعة من المستودع
2. أنشئ فرعًا من رأس `release/vX.Y.Z` **النشط** (وليس `main`) — راجع [نموذج التفريع والإصدار](docs/ops/BRANCHING_MODEL.md)
3. أنشئ فرع ميزتك (`git checkout -b feat/amazing-feature`)
4. ثبّت تغييراتك (`git commit -m 'feat: add amazing feature'`)
5. ادفع التغييرات إلى الفرع (`git push origin feat/amazing-feature`)
6. افتح طلب سحب مع تعيين **الأساس = فرع `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
```
## 📊 النجوم
## 🌍 مخطط النجوم
## 🙏 شكر وتقدير
يقف OmniRoute على أكتاف عمالقة. بدأ كتفرع من **[9router](https://github.com/decolua/9router)** وكنسخة منقولة إلى TypeScript من مشروع Go المسمى **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — ومنذ ذلك الحين، استُلهم كل نظام فرعي أدناه من مشروع مفتوح المصدر سبقه إلى ذلك. وقد أسهم كل واحد منها في تشكيل جزء ملموس من OmniRoute. وهذه طريقتنا لشكرهم جميعًا. 🙏
> ⭐ تم التحقق من أعداد النجوم عبر واجهة GitHub REST API في 24 أغسطس 2026 — فامنحوا هذه المشاريع نجمة. تمثل الأعداد لقطة مؤرخة ودقيقة، ومن الطبيعي أن تتغير.
### 🧬 الأصل والبوابة
بوابة الذكاء الاصطناعي التي تغذي مجموعة بيانات التسعير العامة الخاصة بها مزامنة تتبّع التكلفة لدينا، والتي ساعد نموذجها لتوحيد مزوّدي الخدمة في تشكيل آلية التوجيه لدينا.
مصدر مرخّص بموجب MIT جرى تكييفه ضمن جسر ChatGPT Web → Codex Responses المضمّن، بما في ذلك محوّلات جلسة المتصفح، وتأطير الاستجابات، والاستخدام، والبحث على الويب.
جرى تكييف تعيينات نماذج Grok، ومولّد Statsig ذي TypeError الزائف، والإعدادات الافتراضية للطلبات والأجهزة، ومعالج استجابات NDJSON الخاص به تكييفًا جوهريًا ضمن منفّذ Grok Web في OmniRoute.
مصدر الشفرة غير المباشر الرئيسي وراء grok2api-merged؛ إذ جرى الحفاظ على تطبيقاته الخاصة بالنماذج والترويسات والحمولات وStatsig والمعالج ضمن سلسلة نسب Grok Web.
مصدر غير مباشر ينسب إليه grok2api-merged الفضل في طبقة مجمّع الوكلاء الخاصة به؛ ويحافظ OmniRoute على إشعار النسب هذا، لكنه لا يدّعي نقل مجمّع وكلاء إلى منفّذ Grok Web محدود النطاق الخاص به.
استند تنفيذ Grok Web الأصلي إلى تصميمه للجهة العليا عبر HTTP/المتصفح؛ ونظرًا إلى أن مسار HTTP المباشر الخاص به مشتق من GrokProxy، فلا يُدّعى إجراء نقل مستقل للشفرة.
المشروع واسع الانتشار القائم على فكرة «لماذا تستخدم رموزًا كثيرة حين تفي رموز قليلة بالغرض» — تُشغّل فلسفته القائمة على كلام رجل الكهف وضع الضغط القياسي لدينا وأكثر من 30 قاعدة لإزالة الحشو والتكثيف.
أبحاث ضغط المطالبات (LLMLingua / LLMLingua-2) — ألهمت محرك llmlingua غير المتزامن لدينا، والآمن للتعليمات البرمجية، والذي يواصل العمل دون ضغط عند الفشل.
ضغط الرموز للبرتغالية البرازيلية — يشغّل حزمة اللغة pt-BR لدينا: تقليل الحشو البلاغي وإزالة الكلمات الزائدة، مع ضبطهما ليناسبا قواعد البرتغالية البرازيلية.
مهارة البرمجة واسعة الانتشار القائمة على مبدأ YAGNI لـ«المطوّر الخبير الكسول» — ألهمت نمط المخرجات less-code لدينا: توجيه نحو أصغر تغيير ناجح يقلّص التعليمات البرمجية _المولَّدة_ (النظير على محور المخرجات لنثر Caveman المقتضب).
«اعثر على الرموز الشبحية» — أسهم نمطه القائم على نقل المحتوى خارج السياق واستخدام مقابض قابلة للاسترجاع في صياغة نهجنا تجاه نقل CCR للمحتوى خارج السياق.
JSON عمودي بلغة Rust، مع استرجاع معنْوَن بالمحتوى وإزالة للتكرار عبر الرسائل — أثبت صحة تصميم محركات headroom/ccr/session-dedup لدينا، وثابت استقرار ذاكرة التخزين المؤقت «الصيغة المضغوطة مستقلة عن الموضع».
مجموعة أدوات TypeScript Compiler API — ألهمت إزالة التعليقات المعتمدة على المحلّل لدينا، والتي تحافظ على القيم الحرفية للسلاسل والقوالب والتعبيرات النمطية.
أسهم اعتراض/تحليل MITM لحركة البيانات بين مساعد البرمجة ↔ LLM في تحديد المتطلبات المبكرة لـ Traffic Inspector. وقد استُبدلت أربع وحدات مشتقة سابقًا — دمج SSE، وتوحيد المحادثات، وإخفاء الأسرار، وتنقية الترويسات — بتطبيقات مستقلة مطوّرة من الصفر استنادًا إلى معايير البروتوكولات العامة. ويظل سطحا تمرير المضيف (passthrough.ts و_internal/bypass.cjs) تطبيقين داخليين في OmniRoute مصنّفين بصورة مستقلة؛ ولم يُعاد تطويرهما ضمن عملية الاستبدال تلك.