---
title: CLI
description: أوامر وخيارات CLI في OpenCode.
---

import { Tabs, TabItem } from "@astrojs/starlight/components"

يبدأ CLI الخاص بـ OpenCode افتراضيا واجهة [TUI](/docs/tui) عند تشغيله بدون أي معاملات.

```bash
opencode
```

كما يدعم أيضا أوامر موثقة في هذه الصفحة، ما يتيح لك التفاعل مع OpenCode برمجيا.

```bash
opencode run "Explain how closures work in JavaScript"
```

---

### tui

بدء واجهة المستخدم terminal (TUI) الخاصة بـ OpenCode.

```bash
opencode [project]
```

#### الخيارات

| الخيار       | المختصر | الوصف                                                             |
| ------------ | ------- | ----------------------------------------------------------------- |
| `--continue` | `-c`    | متابعة الجلسة الأخيرة                                             |
| `--session`  | `-s`    | معرّف الجلسة للمتابعة                                             |
| `--fork`     |         | تفريع الجلسة عند المتابعة (يستخدم مع `--continue` أو `--session`) |
| `--prompt`   |         | الموجّه المراد استخدامه                                           |
| `--model`    | `-m`    | النموذج المراد استخدامه بصيغة provider/model                      |
| `--agent`    |         | الوكيل المراد استخدامه                                            |
| `--port`     |         | المنفذ الذي يتم الاستماع عليه                                     |
| `--hostname` |         | اسم المضيف الذي يتم الاستماع عليه                                 |

---

## الأوامر

يتضمن CLI الخاص بـ OpenCode أيضا الأوامر التالية.

---

### agent

إدارة وكلاء OpenCode.

```bash
opencode agent [command]
```

---

### attach

إرفاق terminal بخادم الواجهة الخلفية لـ OpenCode قيد التشغيل بالفعل، والذي تم تشغيله عبر الأمرين `serve` أو `web`.

```bash
opencode attach [url]
```

يتيح ذلك استخدام واجهة TUI مع واجهة خلفية لـ OpenCode تعمل عن بعد. على سبيل المثال:

```bash
# ابدأ خادم الواجهة الخلفية للوصول عبر الويب/الجوال
opencode web --port 4096 --hostname 0.0.0.0

# في محطة طرفية (terminal) أخرى، اربط TUI بالواجهة الخلفية قيد التشغيل
opencode attach http://10.20.30.40:4096
```

#### الرايات

| الراية      | المختصر | الوصف                               |
| ----------- | ------- | ----------------------------------- |
| `--dir`     |         | دليل العمل الذي ستبدأ منه واجهة TUI |
| `--session` | `-s`    | معرّف الجلسة للمتابعة               |

---

#### create

إنشاء وكيل جديد بإعدادات مخصصة.

```bash
opencode agent create
```

سيرشدك هذا الأمر خلال إنشاء وكيل جديد مع موجه نظام مخصص وإعدادات الأدوات.

---

#### list

عرض جميع الوكلاء المتاحين.

```bash
opencode agent list
```

---

### auth

أمر لإدارة بيانات الاعتماد وتسجيل الدخول لمزودي الخدمة.

```bash
opencode auth [command]
```

---

#### login

يعتمد OpenCode على قائمة المزودين في [Models.dev](https://models.dev)، لذا يمكنك استخدام `opencode auth login` لتهيئة مفاتيح API لأي مزود ترغب باستخدامه. يتم حفظ ذلك في `~/.local/share/opencode/auth.json`.

```bash
opencode auth login
```

عند تشغيل OpenCode يقوم بتحميل المزودين من ملف بيانات الاعتماد، وكذلك أي مفاتيح معرّفة في متغيرات البيئة لديك أو في ملف `.env` ضمن مشروعك.

---

#### list

يسرد جميع المزودين الذين تم توثيقهم كما هم محفوظون في ملف بيانات الاعتماد.

```bash
opencode auth list
```

أو النسخة المختصرة.

```bash
opencode auth ls
```

---

#### logout

يسجلك خارج مزود عبر حذفه من ملف بيانات الاعتماد.

```bash
opencode auth logout
```

---

### github

إدارة وكيل GitHub لأتمتة المستودع.

```bash
opencode github [command]
```

---

#### install

تثبيت وكيل GitHub في مستودعك.

```bash
opencode github install
```

يقوم ذلك بإعداد سير عمل GitHub Actions اللازم ويرشدك خلال عملية التهيئة. [اعرف المزيد](/docs/github).

---

#### run

تشغيل وكيل GitHub. يُستخدم هذا عادة ضمن GitHub Actions.

```bash
opencode github run
```

##### الرايات

| الراية    | الوصف                                |
| --------- | ------------------------------------ |
| `--event` | حدث GitHub مُحاكى لتشغيل الوكيل عليه |
| `--token` | رمز وصول شخصي لـ GitHub              |

---

### mcp

إدارة خوادم Model Context Protocol.

```bash
opencode mcp [command]
```

---

#### add

إضافة خادم MCP إلى تهيئتك.

```bash
opencode mcp add
```

سيرشدك هذا الأمر خلال إضافة خادم MCP محلي أو بعيد.

---

#### list

عرض جميع خوادم MCP المُهيأة وحالة اتصالها.

```bash
opencode mcp list
```

أو استخدم النسخة المختصرة.

```bash
opencode mcp ls
```

---

#### auth

إجراء المصادقة مع خادم MCP يدعم OAuth.

```bash
opencode mcp auth [name]
```

إذا لم تُحدِّد اسم خادم، فسيُطلب منك الاختيار من الخوادم المتاحة الداعمة لـ OAuth.

يمكنك أيضا عرض الخوادم الداعمة لـ OAuth وحالة المصادقة الخاصة بها.

```bash
opencode mcp auth list
```

أو استخدم النسخة المختصرة.

```bash
opencode mcp auth ls
```

---

#### logout

إزالة بيانات اعتماد OAuth لخادم MCP.

```bash
opencode mcp logout [name]
```

---

#### debug

تشخيص مشاكل اتصال OAuth لخادم MCP.

```bash
opencode mcp debug <name>
```

---

### models

عرض جميع النماذج المتاحة من المزودين المُهيأين.

```bash
opencode models [provider]
```

يعرض هذا الأمر جميع النماذج المتاحة عبر المزودين المُهيأين لديك بصيغة `provider/model`.

هذا مفيد لتحديد اسم النموذج الدقيق الذي ستستخدمه في [تهيئتك](/docs/config/).

يمكنك اختياريا تمرير معرّف مزود لتصفية النماذج حسب ذلك المزود.

```bash
opencode models anthropic
```

#### الرايات

| الراية      | الوصف                                                         |
| ----------- | ------------------------------------------------------------- |
| `--refresh` | تحديث ذاكرة التخزين المؤقت للنماذج من models.dev              |
| `--verbose` | استخدام مخرجات أكثر تفصيلا للنماذج (تشمل بيانات مثل التكاليف) |

استخدم الراية `--refresh` لتحديث قائمة النماذج المخزنة مؤقتا. يفيد ذلك عند إضافة نماذج جديدة إلى مزود وتريد رؤيتها في OpenCode.

```bash
opencode models --refresh
```

---

### run

تشغيل opencode في وضع غير تفاعلي عبر تمرير موجه مباشرة.

```bash
opencode run [message..]
```

هذا مفيد للبرمجة النصية والأتمتة، أو عندما تريد إجابة سريعة دون تشغيل واجهة TUI كاملة. على سبيل المثال.

```bash "opencode run"
opencode run Explain the use of context in Go
```

يمكنك أيضا الإرفاق بمثيل `opencode serve` قيد التشغيل لتجنّب زمن الإقلاع البارد لخوادم MCP في كل تشغيل:

```bash
# ابدأ خادمًا بلا واجهة في محطة طرفية واحدة
opencode serve

# في محطة طرفية أخرى، شغّل الأوامر التي ترتبط به
opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
```

#### الرايات

| الراية       | المختصر | الوصف                                                             |
| ------------ | ------- | ----------------------------------------------------------------- |
| `--command`  |         | الأمر المراد تشغيله؛ استخدم الرسالة كوسائط                        |
| `--continue` | `-c`    | متابعة الجلسة الأخيرة                                             |
| `--session`  | `-s`    | معرّف الجلسة للمتابعة                                             |
| `--fork`     |         | تفريع الجلسة عند المتابعة (يستخدم مع `--continue` أو `--session`) |
| `--share`    |         | مشاركة الجلسة                                                     |
| `--model`    | `-m`    | النموذج المراد استخدامه بصيغة provider/model                      |
| `--agent`    |         | الوكيل المراد استخدامه                                            |
| `--file`     | `-f`    | ملف/ملفات لإرفاقها بالرسالة                                       |
| `--format`   |         | التنسيق: default (منسق) أو json (أحداث JSON خام)                  |
| `--title`    |         | عنوان للجلسة (يستخدم موجهًا مقتطعًا إن لم تُحدَّد قيمة)           |
| `--attach`   |         | الإرفاق بخادم opencode قيد التشغيل (مثل http://localhost:4096)    |
| `--port`     |         | منفذ الخادم المحلي (الافتراضي منفذ عشوائي)                        |

---

### serve

بدء خادم OpenCode بدون واجهة للوصول عبر API. راجع [توثيق الخادم](/docs/server) لواجهة HTTP الكاملة.

```bash
opencode serve
```

يشغّل هذا خادم HTTP يوفّر وصولا عبر API لوظائف opencode دون واجهة TUI. اضبط `OPENCODE_SERVER_PASSWORD` لتفعيل مصادقة HTTP الأساسية (اسم المستخدم الافتراضي `opencode`).

#### الرايات

| الراية       | الوصف                                     |
| ------------ | ----------------------------------------- |
| `--port`     | المنفذ الذي يتم الاستماع عليه             |
| `--hostname` | اسم المضيف الذي يتم الاستماع عليه         |
| `--mdns`     | تفعيل اكتشاف mDNS                         |
| `--cors`     | أصول/منشأات إضافية للمتصفح للسماح بـ CORS |

---

### session

إدارة جلسات OpenCode.

```bash
opencode session [command]
```

---

#### list

عرض جميع جلسات OpenCode.

```bash
opencode session list
```

##### الرايات

| الراية        | المختصر | الوصف                                 |
| ------------- | ------- | ------------------------------------- |
| `--max-count` | `-n`    | حصر النتائج في أحدث N جلسات           |
| `--format`    |         | تنسيق المخرجات: table أو json (table) |

---

### stats

عرض إحصاءات استخدام الرموز والتكلفة لجلسات OpenCode لديك.

```bash
opencode stats
```

#### الرايات

| الراية      | الوصف                                                                     |
| ----------- | ------------------------------------------------------------------------- |
| `--days`    | عرض الإحصاءات لآخر N يومًا (الافتراضي: كل الوقت)                          |
| `--tools`   | عدد الأدوات المطلوب عرضها (الافتراضي: الكل)                               |
| `--models`  | عرض تفصيل استخدام النماذج (مخفي افتراضيا). مرّر رقمًا لعرض أعلى N         |
| `--project` | التصفية حسب المشروع (الافتراضي: كل المشاريع، سلسلة فارغة: المشروع الحالي) |

---

### export

تصدير بيانات الجلسة بصيغة JSON.

```bash
opencode export [sessionID]
```

إذا لم تُقدّم معرّف جلسة، فسيُطلب منك الاختيار من الجلسات المتاحة.

---

### import

استيراد بيانات الجلسة من ملف JSON أو رابط مشاركة OpenCode.

```bash
opencode import <file>
```

يمكنك الاستيراد من ملف محلي أو من رابط مشاركة OpenCode.

```bash
opencode import session.json
opencode import https://opncd.ai/s/abc123
```

---

### web

بدء خادم OpenCode بدون واجهة مع واجهة ويب.

```bash
opencode web
```

يشغّل هذا خادم HTTP ويفتح متصفح ويب للوصول إلى OpenCode عبر واجهة ويب. اضبط `OPENCODE_SERVER_PASSWORD` لتفعيل مصادقة HTTP الأساسية (اسم المستخدم الافتراضي `opencode`).

#### الرايات

| الراية       | الوصف                                     |
| ------------ | ----------------------------------------- |
| `--port`     | المنفذ الذي يتم الاستماع عليه             |
| `--hostname` | اسم المضيف الذي يتم الاستماع عليه         |
| `--mdns`     | تفعيل اكتشاف mDNS                         |
| `--cors`     | أصول/منشأات إضافية للمتصفح للسماح بـ CORS |

---

### acp

بدء خادم ACP (Agent Client Protocol).

```bash
opencode acp
```

يشغّل هذا الأمر خادم ACP يتواصل عبر stdin/stdout باستخدام nd-JSON.

#### الرايات

| الراية       | الوصف                             |
| ------------ | --------------------------------- |
| `--cwd`      | دليل العمل                        |
| `--port`     | المنفذ الذي يتم الاستماع عليه     |
| `--hostname` | اسم المضيف الذي يتم الاستماع عليه |

---

### uninstall

إلغاء تثبيت OpenCode وإزالة جميع الملفات ذات الصلة.

```bash
opencode uninstall
```

#### الرايات

| الراية          | المختصر | الوصف                               |
| --------------- | ------- | ----------------------------------- |
| `--keep-config` | `-c`    | الإبقاء على ملفات التهيئة           |
| `--keep-data`   | `-d`    | الإبقاء على بيانات الجلسات واللقطات |
| `--dry-run`     |         | عرض ما سيتم حذفه دون تنفيذ الحذف    |
| `--force`       | `-f`    | تخطي مطالبات التأكيد                |

---

### upgrade

تحديث opencode إلى أحدث إصدار أو إلى إصدار محدد.

```bash
opencode upgrade [target]
```

للترقية إلى أحدث إصدار.

```bash
opencode upgrade
```

للترقية إلى إصدار محدد.

```bash
opencode upgrade v0.1.48
```

#### الرايات

| الراية     | المختصر | الوصف                                                       |
| ---------- | ------- | ----------------------------------------------------------- |
| `--method` | `-m`    | طريقة التثبيت المستخدمة: curl أو npm أو pnpm أو bun أو brew |

---

## الخيارات العامة

يدعم سطر أوامر opencode الخيارات العامة التالية.

| الراية         | المختصر | الوصف                                  |
| -------------- | ------- | -------------------------------------- |
| `--help`       | `-h`    | عرض المساعدة                           |
| `--version`    | `-v`    | طباعة رقم الإصدار                      |
| `--print-logs` |         | طباعة السجلات إلى stderr               |
| `--log-level`  |         | مستوى السجل (DEBUG, INFO, WARN, ERROR) |

---

## متغيرات البيئة

يمكن تهيئة OpenCode باستخدام متغيرات البيئة.

| المتغير                               | النوع   | الوصف                                                     |
| ------------------------------------- | ------- | --------------------------------------------------------- |
| `OPENCODE_AUTO_SHARE`                 | boolean | مشاركة الجلسات تلقائيا                                    |
| `OPENCODE_GIT_BASH_PATH`              | string  | مسار ملف Git Bash التنفيذي على Windows                    |
| `OPENCODE_CONFIG`                     | string  | مسار ملف التهيئة                                          |
| `OPENCODE_CONFIG_DIR`                 | string  | مسار دليل التهيئة                                         |
| `OPENCODE_CONFIG_CONTENT`             | string  | محتوى تهيئة JSON مُضمّن                                   |
| `OPENCODE_DISABLE_AUTOUPDATE`         | boolean | تعطيل التحقق التلقائي من التحديثات                        |
| `OPENCODE_DISABLE_PRUNE`              | boolean | تعطيل تنقية البيانات القديمة                              |
| `OPENCODE_DISABLE_TERMINAL_TITLE`     | boolean | تعطيل تحديث عنوان terminal تلقائيا                        |
| `OPENCODE_PERMISSION`                 | string  | تهيئة أذونات JSON مُضمّنة                                 |
| `OPENCODE_DISABLE_DEFAULT_PLUGINS`    | boolean | تعطيل الإضافات الافتراضية                                 |
| `OPENCODE_DISABLE_LSP_DOWNLOAD`       | boolean | تعطيل تنزيل خوادم LSP تلقائيا                             |
| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | تفعيل النماذج التجريبية                                   |
| `OPENCODE_DISABLE_AUTOCOMPACT`        | boolean | تعطيل ضغط السياق تلقائيا                                  |
| `OPENCODE_DISABLE_CLAUDE_CODE`        | boolean | تعطيل القراءة من `.claude` (الموجه + المهارات)            |
| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | تعطيل قراءة `~/.claude/CLAUDE.md`                         |
| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | تعطيل تحميل `.claude/skills`                              |
| `OPENCODE_DISABLE_MODELS_FETCH`       | boolean | تعطيل جلب النماذج من مصادر بعيدة                          |
| `OPENCODE_FAKE_VCS`                   | string  | مزود VCS وهمي لأغراض الاختبار                             |
| `OPENCODE_CLIENT`                     | string  | معرّف العميل (الافتراضي `cli`)                            |
| `OPENCODE_ENABLE_EXA`                 | boolean | تفعيل أدوات بحث الويب من Exa                              |
| `OPENCODE_SERVER_PASSWORD`            | string  | تفعيل المصادقة الأساسية لخادمي `serve`/`web`              |
| `OPENCODE_SERVER_USERNAME`            | string  | تجاوز اسم مستخدم المصادقة الأساسية (الافتراضي `opencode`) |
| `OPENCODE_MODELS_URL`                 | string  | رابط مخصص لجلب تهيئة النماذج                              |

---

### تجريبي

تقوم متغيرات البيئة التالية بتفعيل ميزات تجريبية قد تتغير أو تتم إزالتها.

| المتغير                                         | النوع   | الوصف                                       |
| ----------------------------------------------- | ------- | ------------------------------------------- |
| `OPENCODE_EXPERIMENTAL`                         | boolean | تفعيل جميع الميزات التجريبية                |
| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY`          | boolean | تفعيل اكتشاف الأيقونات                      |
| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT`  | boolean | تعطيل النسخ عند التحديد في TUI              |
| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number  | المهلة الافتراضية لأوامر bash بالميلي ثانية |
| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX`        | number  | الحد الأقصى لرموز المخرجات لاستجابات LLM    |
| `OPENCODE_EXPERIMENTAL_FILEWATCHER`             | boolean | تفعيل مراقب الملفات لكامل الدليل            |
| `OPENCODE_EXPERIMENTAL_OXFMT`                   | boolean | تفعيل مُنسّق oxfmt                          |
| `OPENCODE_EXPERIMENTAL_LSP_TOOL`                | boolean | تفعيل أداة LSP تجريبية                      |
| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER`     | boolean | تعطيل مراقب الملفات                         |
| `OPENCODE_EXPERIMENTAL_EXA`                     | boolean | تفعيل ميزات Exa التجريبية                   |
| `OPENCODE_EXPERIMENTAL_LSP_TY`                  | boolean | تمكين TY LSP لملفات python                  |
| `OPENCODE_EXPERIMENTAL_MARKDOWN`                | boolean | تفعيل ميزات markdown تجريبية                |
| `OPENCODE_EXPERIMENTAL_PLAN_MODE`               | boolean | تفعيل وضع الخطة                             |
