> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenCodex

> ربط Codex بـ TokenLab عبر OpenCodex مع توجيه API مخصص لكل نموذج

## دع وكيلي يتولى إعداد هذا

انسخ هذه المهمة إلى وكيل يعمل بالفعل على جهاز الكمبيوتر الخاص بك:

```text theme={null}
Read https://docs.tokenlab.sh/ar/integrations/opencodex and help me connect OpenCodex to TokenLab.
Check my installed OpenCodex and Codex versions, active configuration, and running proxy first.
Preserve existing accounts, providers, models, and permissions. Back up files before changing them.
Have me enter the API key locally; never ask for, print, or paste it in chat.
Use the TokenLab preset and the selected model's documented API format.
Check configuration loading first. Explain the cost before running a small real request.
Match the reply with its TokenLab request record.
```

## كيف يعمل الاتصال

يُعد [OpenCodex](https://github.com/lidge-jun/opencodex) بروكسي محلياً بين Codex و APIs الخاصة بالنماذج. يستخدم هذا الدليل **OpenCodex 2.73.0** و **Codex CLI 0.149.0**.

تم إطلاق تكامل Chat Completions الخاص بالإعداد المسبق لـ TokenLab والتحقق منه بالكامل في الإصدار 2.72.0. يحتفظ [الإصدار 2.73.0](https://github.com/lidge-jun/opencodex/releases/tag/v2.73.0) بهذا التكامل ويضيف توجيهاً مخصصاً لكل نموذج لـ Responses و Anthropic Messages. تم فحص المسارات المدرجة أدناه مع TokenLab باستخدام النصوص المتدفقة ودورات استدعاء الدوال/النتائج (function-call/result round trips).

يرسل Codex طلبات Responses إلى **بروكسي OpenCodex المحلي**. ثم يقوم OpenCodex بإرسال طلب النموذج المحدد إلى **TokenLab**. لا يعني طلب Responses على الاتصال المحلي أنه يتم استدعاء النموذج عبر Responses API الخاصة بـ TokenLab.

| النماذج المحددة في Codex | OpenCodex → TokenLab |
| - | - |
| `gpt-6-astra`, `gpt-6.1-sol`, `gpt-6-sol`, `gpt-6-luna`, `grok-4.7`, `deepseek-v4.1-flash`, `deepseek-v4-pro`, `kimi-k3`, `glm-5.3` | Responses: `POST /v1/responses` |
| `claude-opus-5`, `claude-opus-5-5`, `claude-sonnet-5`, `claude-sonnet-5-5`, `claude-fable-5`, `claude-fable-5-1` | Anthropic Messages: `POST /v1/messages` |
| `gemini-3.8-flash` | Chat Completions: `POST /v1/chat/completions` |

إن Base URL الخاص بالإعداد المسبق هو `https://api.tokenlab.sh/v1`. اتركه دون تغيير: يقوم OpenCodex بإنشاء عنوان URL المطابق لـ Messages أو Responses بنفسه. تستخدم النماذج الخارجة عن الإعدادات الافتراضية لـ Responses وتوجيه Claude المدرجة محول Chat الخاص بالإعداد المسبق.

يدعم TokenLab واجهة API الأصلية لـ Gemini للنماذج التي تصرح بذلك، ولكن **الإعداد المسبق لـ TokenLab في OpenCodex 2.73.0 يستدعي Gemini عبر Chat Completions**. لا تقم بتغيير المزود بالكامل إلى Responses أو Gemini؛ لأن ذلك سيؤدي أيضاً إلى تغيير الطلبات للنماذج التي لا تقبل هذا التنسيق.

## التثبيت أو التحديث

استخدم Node.js 18 أو إصداراً أحدث للتثبيت عبر npm:

```bash theme={null}
npm install -g @bitkyc08/opencodex@2.73.0
ocx --version
codex --version
```

يجب أيضاً تثبيت Codex. يوفر OpenCodex [تعليمات التثبيت](https://opencodex.me/getting-started/installation/) و[تعليمات الاتصال بـ Codex](https://opencodex.me/getting-started/quickstart/). يحتوي كل من Windows الأصلي و WSL على تكوينات منفصلة؛ قم بتشغيل الإعداد و Codex في نفس البيئة.

## إضافة TokenLab

قم بإنشاء مفتاح في [مفاتيح TokenLab API](https://tokenlab.sh/dashboard/api?tab=keys). للإعداد عبر الطرفية، اتبع [البدء السريع](/ar/quickstart) لتعيين `TOKENLAB_API_KEY` دون وضع قيمته في سجل الأوامر. ابدأ تشغيل OpenCodex من تلك الطرفية؛ حيث تحتاج خدمة الخلفية إلى المتغير في بيئة التشغيل الخاصة بها.

بالنسبة إلى **تثبيت OpenCodex جديد**، شغّل `ocx init`، واختر TokenLab، ثم أدخل المفتاح محلياً أو استخدم مرجع متغير البيئة الحرفي `${TOKENLAB_API_KEY}`. راجع خيارات الاتصال بـ Codex والتشغيل التلقائي في معالج الإعداد قبل تطبيقها.

بالنسبة إلى **تثبيت حالي**، أضف الإعداد المسبق دون استبدال المزودين الآخرين:

```bash theme={null}
ocx provider add tokenlab --api-key '${TOKENLAB_API_KEY}'
```

تحفظ علامات الاقتباس المفردة مرجعاً لمتغير البيئة، وليس قيمة المفتاح. يعمل هذا الأمر أيضاً في PowerShell. إذا كان `tokenlab` موجوداً بالفعل، فقم بتعديل ذلك المزود في لوحة التحكم بدلاً من الكتابة فوقه باستخدام `--force`.

يمكنك أيضاً اختيار **TokenLab** من قائمة **Add provider** في لوحة التحكم وإدخال المفتاح هناك. يحفظ OpenCodex تكوينه تحت المسار `$OPENCODEX_HOME/config.json`، وعادةً ما يكون `~/.opencodex/config.json`.

ابدأ تشغيل البروكسي إذا لم يكن قيد التشغيل بالفعل، ثم افتح لوحة التحكم الخاصة به:

```bash theme={null}
ocx start
ocx status
ocx gui
```

في صفحة المزود، تحقق من Base URL والنماذج المكتشفة. يكتشف الإعداد المسبق `GET /v1/models?category=chat` ويحتفظ بالنماذج التي تمتلك قدرة `tool-use`. يتم استبعاد نماذج الصور والفيديو والصوت والـ embeddings ونماذج اتخاذ القرار. يعكس الاكتشاف باستخدام المفتاح أذونات النماذج وسياسة التسليم الخاصة بذلك المفتاح.

شغّل `ocx sync` للاتصال بـ Codex وتحديث كتالوج النماذج الخاص به، ثم ابدأ جلسة Codex جديدة. يؤدي هذا إلى تغيير اتصال البروكسي والكتالوج الخاص بـ Codex؛ راجع إعدادات المزود المخصص الحالية واحتفظ بنسخة احتياطية قبل المزامنة. لا يتطلب هذا استبدال حسابك أو سياسة الأذونات الخاصة بك.

## تحديد نموذج والتحقق من الطلب

اختر الإدخال `tokenlab/<model-id>` في أداة اختيار النماذج بـ Codex، أو حدده لتشغيل CLI لمرة واحدة:

```bash theme={null}
codex -m "tokenlab/gpt-6.1-sol"
```

يستخدم OpenCodex بادئة `tokenlab/` لتحديد المزود؛ ومعرّف النموذج المرسل إلى TokenLab هو `gpt-6.1-sol`. اختر معرّفاً دقيقاً ومتاحاً حالياً من [النماذج](https://tokenlab.sh/ar/models).

لإجراء فحص اتصال سريع، أرسل:

```text theme={null}
Reply only with TOKENLAB_CONNECTION_OK. Do not use tools or modify files.
```

يستهلك هذا الطلب من رصيد TokenLab الخاص بك. تحقق من الرد والنموذج المطابق والوقت والحالة في [الطلبات](https://tokenlab.sh/dashboard/runs?section=requests). لا يؤكد اكتشاف المزود والتشغيل الناجح وحدهما إمكانية الوصول إلى الاستدلال.

يعمل البث واستدعاء الدوال على المسارات الموضحة في الجدول. تعتمد مدخلات الصور وعناصر التحكم في التفكير على النموذج المحدد: تحقق من إمكانياته، واستخدم فقط خيارات الجهد التي يقدمها OpenCodex لذلك النموذج. تم التحقق من مدخلات الصور وطلبات التفكير على نماذج تمثيلية لمسارات Responses و Messages؛ كما تم التحقق من إدخال صور Gemini على مسار Chat الخاص به. النموذج الذي يدعم التفكير لا يعرض بالضرورة نص التفكير أو يدعم كل مستوى من مستويات الجهد.

## الإبقاء على نموذج Responses على Chat Completions

لاستخدام مسار Chat لأحد نماذج Responses المدرجة، ادمج إدخال `modelAdapters` في كائن `providers.tokenlab` **الحالي** في تكوين OpenCodex. يُبقي هذا المثال `gpt-6-astra` على Chat لـ Codex:

```json theme={null}
{
  "modelAdapters": {
    "gpt-6-astra": "openai-chat"
  }
}
```

هذا مثال لحقل المزود وليس بديلاً للتكوين الكامل. احتفظ بالتجاوزات الأخرى للنماذج، وبيانات الاعتماد، والمزودين، ثم أعد تشغيل البروكسي وافتح جلسة Codex جديدة. تؤدي إزالة إدخال هذا النموذج فقط إلى استعادة الوضع الافتراضي الخاص به كـ Responses.

يرتبط توجيه Messages الخاص بـ Claude بنقطة نهاية TokenLab الأساسية. ينطبق تجاوز Chat الموضح أعلاه على الإعدادات الافتراضية لـ Responses؛ ولا يحوّل Claude إلى Chat. بالنسبة لعميل يعتمد على Chat أصلاً، تستخدم نماذج Responses المدرجة بالفعل Chat دون هذا التجاوز. راجع [توجيه مزود OpenCodex](https://opencodex.me/guides/providers/#3-api-key-catalog).

## سياسة التسليم وأدوات TokenLab الأخرى

لا يفرض الإعداد المسبق ترويسة `X-TokenLab-Delivery-Policy`. يستخدم TokenLab الإعداد الافتراضي لسياسة التسليم الخاصة بمفتاح API الخاص بك. يُعد اختيار Chat أو Responses أو Messages أمراً منفصلاً عن اختيار سياسة التسليم؛ راجع [إعدادات مزود TokenLab](/ar/guides/tokenlab-provider).

أضف [خادم TokenLab MCP](/ar/integrations/tokenlab-mcp-server) لأدوات API الأخرى، أو [مهارات TokenLab](/ar/integrations/coding-agent-skill) للحصول على تعليمات التكامل. لا تؤدي هذه الإضافات إلى تغيير مزود النموذج الرئيسي أو تنسيق API الخاص به.

**تستخدم ميزة JEV Auto في OpenCodex 2.73.0 الواجهة الخلفية لاتخاذ القرار من TypeSafe.** وهي لا توفر TokenLab كواجهة خلفية لتلك العملية. يُعد استدعاء [System One API](/ar/api-reference/systemone/create-decision) الخاصة بـ TokenLab عبر MCP عملية منفصلة؛ لا تضع مفتاح TokenLab في حقل بيانات اعتماد TypeSafe.

## استكشاف الأخطاء وإصلاحها واستعادة الإعداد الخاص بك

* **TokenLab غير موجود في أداة الاختيار:** تحقق من `ocx --version`؛ يستهدف هذا الدليل الإصدار 2.73.0. قم بتحديث الكتالوج باستخدام `ocx sync` وابدأ جلسة Codex جديدة.
* **خطأ 401 أو بيانات اعتماد مفقودة:** تحقق من أن المفتاح نشط ومتاح للعملية التي تشغل OpenCodex. لا يؤدي تعيين متغير بيئة في نافذة طرفية مختلفة إلى تحديث خدمة قيد التشغيل بالفعل.
* **النموذج غير موجود:** تحقق من المعرّف الدقيق، وأذونات مفتاحك، والتوافر الحالي. لا يتضمن هذا الإعداد المسبق النماذج غير المخصصة للمحادثة ونماذج المحادثة التي لا تدعم `tool-use`.
* **طلب غير مدعوم أو نقطة نهاية غير صحيحة:** قارن النموذج المحدد بجدول التوجيه وافحص تجاوزات المحول المحفوظة. التنسيق المطلوب هو `tokenlab.accepted_request_formats` في [تفاصيل النموذج](/ar/api-reference/models/get-model)؛ ولا تعتبر قائمة النماذج بديلاً لحقل التفاصيل هذا. يجب عدم إرسال طلبات Claude و Gemini إلى Responses لمجرد أن Codex يستخدم Responses محلياً.
* **فشل الأدوات أو إدخال الصور:** احتفظ بالخطأ الأصلي ومعرّف الطلب. تحقق من إمكانيات النموذج ومسار OpenCodex النشط قبل تغيير الإعدادات؛ لا تحذف سجل المحادثة أو نتائج الأدوات لإخفاء الخطأ.

لإيقاف توجيه Codex عبر البروكسي، استخدم `ocx stop`؛ حيث يوقف OpenCodex البروكسي ويعيد اتصال Codex الأصلي. يعيد الأمر `ocx restore` الاتصال الأصلي مع إبقاء البروكسي قيد التشغيل للعملاء الآخرين. راجع [مرجع OpenCodex CLI](https://opencodex.me/reference/cli/) قبل تغيير تثبيت مشترك مع عملاء آخرين.
