> ## 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.

# OpenCode

> قم بتهيئة OpenCode لاستخدام TokenLab API

## نظرة عامة

<Note>
  **النوع**: أداة برمجة

  **المسار الرئيسي**: متوافق مع OpenAI

  **مستوى الدعم**: مسار مدعوم
</Note>

OpenCode هو مساعد برمجة AI مفتوح المصدر يعمل داخل الطرفية الخاصة بك. وهو يدعم عدة مزوّدي LLM ويمكن تهيئته لاستخدام API الخاصة بـ TokenLab للوصول إلى مئات النماذج.

## التثبيت

<Tabs>
  <Tab title="سكريبت التثبيت">
    ```bash theme={null}
    curl -fsSL https://opencode.ai/install | bash
    ```
  </Tab>

  <Tab title="Homebrew">
    ```bash theme={null}
    brew install opencode-ai/tap/opencode
    ```

    أو استخدم community tap (تحديثات أكثر تكرارًا):

    ```bash theme={null}
    brew install anomalyco/tap/opencode
    ```
  </Tab>

  <Tab title="Go">
    ```bash theme={null}
    go install github.com/opencode-ai/opencode@latest
    ```
  </Tab>
</Tabs>

تحقق من التثبيت:

```bash theme={null}
opencode --version
```

## التهيئة

### الخطوة 1: تعيين متغيرات البيئة

```bash theme={null}
export OPENAI_API_KEY="sk-your-tokenlab-key"
```

للتهيئة الدائمة، أضف إلى `~/.bashrc` أو `~/.zshrc`:

```bash theme={null}
echo 'export OPENAI_API_KEY="sk-your-tokenlab-key"' >> ~/.zshrc
source ~/.zshrc
```

### الخطوة 2: تهيئة OpenCode

توصي وثائق OpenCode الحالية بتهيئة المزوّدين من خلال `opencode.json` أو `opencode.jsonc`. بالنسبة إلى TokenLab، استخدم مزوّدًا مخصصًا بدلًا من تحميل المزوّد المدمج `openai` فوق طاقته:

```jsonc theme={null}
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tokenlab": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "TokenLab",
      "options": {
        "baseURL": "https://api.tokenlab.sh/v1",
        "apiKey": "{env:OPENAI_API_KEY}"
      },
      "models": {
        "gpt-5.4": {
          "name": "GPT-5.4"
        },
        "gpt-5-mini": {
          "name": "GPT-5 Mini"
        }
      }
    }
  },
  "model": "tokenlab/gpt-5.4"
}
```

<Note>
  استخدم `@ai-sdk/openai-compatible` للتوافق بأسلوب chat-completions. إذا كنت تحتاج تحديدًا إلى مسار مزوّد مبني على `/v1/responses`، فإن وثائق OpenCode توصي بتبديل الحزمة إلى `@ai-sdk/openai`.
</Note>

## الاستخدام الأساسي

**ابدأ الوضع التفاعلي:**

```bash theme={null}
opencode
```

**شغّل مع prompt:**

```bash theme={null}
opencode "Explain this codebase"
```

**حدد النموذج:**

```bash theme={null}
opencode --model tokenlab/gpt-5.4 "Fix the bugs in main.py"
```

## النماذج المتاحة

| النموذج             | الأفضل لـ                              |
| ------------------- | -------------------------------------- |
| `gpt-5.4`           | المهام المعقدة، بنية الكود             |
| `gpt-5-mini`        | الإصلاحات السريعة، الاستعلامات البسيطة |
| `claude-sonnet-4-6` | مراجعة الكود، التوثيق                  |
| `claude-opus-4-6`   | الاستدلال المعقد                       |
| `gemini-3.5-flash`  | الاستجابات السريعة                     |
| `deepseek-r1`       | تصميم الخوارزميات                      |

## الأوامر الشائعة

**تحليل الكود:**

```bash theme={null}
opencode "What does this function do?" < src/utils.ts
```

**توليد الكود:**

```bash theme={null}
opencode "Create a REST API with Express"
```

**مراجعة التغييرات:**

```bash theme={null}
git diff | opencode "Review these changes"
```

**إصلاح الأخطاء:**

```bash theme={null}
opencode "Fix the TypeScript errors in this project"
```

## الأوامر التفاعلية

| الأمر           | الوصف                   |
| --------------- | ----------------------- |
| `/help`         | عرض الأوامر المتاحة     |
| `/model <name>` | التبديل إلى نموذج مختلف |
| `/clear`        | مسح سجل المحادثة        |
| `/exit`         | الخروج من OpenCode      |

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

<AccordionGroup>
  <Accordion title="خطأ في الاتصال">
    * تحقق من أن `options.baseURL` مضبوط على `https://api.tokenlab.sh/v1`
    * تحقق من اتصال الشبكة
    * جرّب `curl https://api.tokenlab.sh/v1/models` للاختبار
  </Accordion>

  <Accordion title="فشلت المصادقة">
    * تحقق من تعيين متغير البيئة `OPENAI_API_KEY`
    * تحقق من أن `options.apiKey` يشير إلى `{env:OPENAI_API_KEY}` أو إلى مصدر secret صالح آخر
    * تحقق من أن المفتاح يبدأ بـ `sk-`
    * تأكد من أن المفتاح نشط في لوحة تحكم TokenLab
  </Accordion>

  <Accordion title="النموذج غير موجود">
    * تحقق من أن اسم النموذج في ملف التهيئة مطابق تمامًا
    * تحقق من توفر النموذج على [tokenlab.sh/en/models](https://tokenlab.sh/ar/models)
  </Accordion>
</AccordionGroup>

## أفضل الممارسات

<AccordionGroup>
  <Accordion title="استخدم سياق المشروع">
    شغّل OpenCode من جذر مشروعك للحصول على فهم أفضل لقاعدة الكود الخاصة بك.
  </Accordion>

  <Accordion title="اختر النماذج المناسبة">
    استخدم النماذج الأسرع (`gpt-5-mini`) للمهام البسيطة والنماذج الأقوى (`gpt-5.4`, `claude-sonnet-4-6`) للمهام المعقدة.
  </Accordion>

  <Accordion title="راجع الكود المُولَّد">
    راجع دائمًا الكود الذي يولّده AI قبل تطبيق التغييرات على مشروعك.
  </Accordion>
</AccordionGroup>
