cli.mdx 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602
  1. ---
  2. title: CLI
  3. description: أوامر وخيارات CLI في OpenCode.
  4. ---
  5. import { Tabs, TabItem } from "@astrojs/starlight/components"
  6. يبدأ CLI الخاص بـ OpenCode افتراضيا واجهة [TUI](/docs/tui) عند تشغيله بدون أي معاملات.
  7. ```bash
  8. opencode
  9. ```
  10. كما يدعم أيضا أوامر موثقة في هذه الصفحة، ما يتيح لك التفاعل مع OpenCode برمجيا.
  11. ```bash
  12. opencode run "Explain how closures work in JavaScript"
  13. ```
  14. ---
  15. ### tui
  16. بدء واجهة المستخدم terminal (TUI) الخاصة بـ OpenCode.
  17. ```bash
  18. opencode [project]
  19. ```
  20. #### الخيارات
  21. | الخيار | المختصر | الوصف |
  22. | ------------ | ------- | ----------------------------------------------------------------- |
  23. | `--continue` | `-c` | متابعة الجلسة الأخيرة |
  24. | `--session` | `-s` | معرّف الجلسة للمتابعة |
  25. | `--fork` | | تفريع الجلسة عند المتابعة (يستخدم مع `--continue` أو `--session`) |
  26. | `--prompt` | | الموجّه المراد استخدامه |
  27. | `--model` | `-m` | النموذج المراد استخدامه بصيغة provider/model |
  28. | `--agent` | | الوكيل المراد استخدامه |
  29. | `--port` | | المنفذ الذي يتم الاستماع عليه |
  30. | `--hostname` | | اسم المضيف الذي يتم الاستماع عليه |
  31. ---
  32. ## الأوامر
  33. يتضمن CLI الخاص بـ OpenCode أيضا الأوامر التالية.
  34. ---
  35. ### agent
  36. إدارة وكلاء OpenCode.
  37. ```bash
  38. opencode agent [command]
  39. ```
  40. ---
  41. ### attach
  42. إرفاق terminal بخادم الواجهة الخلفية لـ OpenCode قيد التشغيل بالفعل، والذي تم تشغيله عبر الأمرين `serve` أو `web`.
  43. ```bash
  44. opencode attach [url]
  45. ```
  46. يتيح ذلك استخدام واجهة TUI مع واجهة خلفية لـ OpenCode تعمل عن بعد. على سبيل المثال:
  47. ```bash
  48. # ابدأ خادم الواجهة الخلفية للوصول عبر الويب/الجوال
  49. opencode web --port 4096 --hostname 0.0.0.0
  50. # في محطة طرفية (terminal) أخرى، اربط TUI بالواجهة الخلفية قيد التشغيل
  51. opencode attach http://10.20.30.40:4096
  52. ```
  53. #### الرايات
  54. | الراية | المختصر | الوصف |
  55. | ----------- | ------- | ----------------------------------- |
  56. | `--dir` | | دليل العمل الذي ستبدأ منه واجهة TUI |
  57. | `--session` | `-s` | معرّف الجلسة للمتابعة |
  58. ---
  59. #### create
  60. إنشاء وكيل جديد بإعدادات مخصصة.
  61. ```bash
  62. opencode agent create
  63. ```
  64. سيرشدك هذا الأمر خلال إنشاء وكيل جديد مع موجه نظام مخصص وإعدادات الأدوات.
  65. ---
  66. #### list
  67. عرض جميع الوكلاء المتاحين.
  68. ```bash
  69. opencode agent list
  70. ```
  71. ---
  72. ### auth
  73. أمر لإدارة بيانات الاعتماد وتسجيل الدخول لمزودي الخدمة.
  74. ```bash
  75. opencode auth [command]
  76. ```
  77. ---
  78. #### login
  79. يعتمد OpenCode على قائمة المزودين في [Models.dev](https://models.dev)، لذا يمكنك استخدام `opencode auth login` لتهيئة مفاتيح API لأي مزود ترغب باستخدامه. يتم حفظ ذلك في `~/.local/share/opencode/auth.json`.
  80. ```bash
  81. opencode auth login
  82. ```
  83. عند تشغيل OpenCode يقوم بتحميل المزودين من ملف بيانات الاعتماد، وكذلك أي مفاتيح معرّفة في متغيرات البيئة لديك أو في ملف `.env` ضمن مشروعك.
  84. ---
  85. #### list
  86. يسرد جميع المزودين الذين تم توثيقهم كما هم محفوظون في ملف بيانات الاعتماد.
  87. ```bash
  88. opencode auth list
  89. ```
  90. أو النسخة المختصرة.
  91. ```bash
  92. opencode auth ls
  93. ```
  94. ---
  95. #### logout
  96. يسجلك خارج مزود عبر حذفه من ملف بيانات الاعتماد.
  97. ```bash
  98. opencode auth logout
  99. ```
  100. ---
  101. ### github
  102. إدارة وكيل GitHub لأتمتة المستودع.
  103. ```bash
  104. opencode github [command]
  105. ```
  106. ---
  107. #### install
  108. تثبيت وكيل GitHub في مستودعك.
  109. ```bash
  110. opencode github install
  111. ```
  112. يقوم ذلك بإعداد سير عمل GitHub Actions اللازم ويرشدك خلال عملية التهيئة. [اعرف المزيد](/docs/github).
  113. ---
  114. #### run
  115. تشغيل وكيل GitHub. يُستخدم هذا عادة ضمن GitHub Actions.
  116. ```bash
  117. opencode github run
  118. ```
  119. ##### الرايات
  120. | الراية | الوصف |
  121. | --------- | ------------------------------------ |
  122. | `--event` | حدث GitHub مُحاكى لتشغيل الوكيل عليه |
  123. | `--token` | رمز وصول شخصي لـ GitHub |
  124. ---
  125. ### mcp
  126. إدارة خوادم Model Context Protocol.
  127. ```bash
  128. opencode mcp [command]
  129. ```
  130. ---
  131. #### add
  132. إضافة خادم MCP إلى تهيئتك.
  133. ```bash
  134. opencode mcp add
  135. ```
  136. سيرشدك هذا الأمر خلال إضافة خادم MCP محلي أو بعيد.
  137. ---
  138. #### list
  139. عرض جميع خوادم MCP المُهيأة وحالة اتصالها.
  140. ```bash
  141. opencode mcp list
  142. ```
  143. أو استخدم النسخة المختصرة.
  144. ```bash
  145. opencode mcp ls
  146. ```
  147. ---
  148. #### auth
  149. إجراء المصادقة مع خادم MCP يدعم OAuth.
  150. ```bash
  151. opencode mcp auth [name]
  152. ```
  153. إذا لم تُحدِّد اسم خادم، فسيُطلب منك الاختيار من الخوادم المتاحة الداعمة لـ OAuth.
  154. يمكنك أيضا عرض الخوادم الداعمة لـ OAuth وحالة المصادقة الخاصة بها.
  155. ```bash
  156. opencode mcp auth list
  157. ```
  158. أو استخدم النسخة المختصرة.
  159. ```bash
  160. opencode mcp auth ls
  161. ```
  162. ---
  163. #### logout
  164. إزالة بيانات اعتماد OAuth لخادم MCP.
  165. ```bash
  166. opencode mcp logout [name]
  167. ```
  168. ---
  169. #### debug
  170. تشخيص مشاكل اتصال OAuth لخادم MCP.
  171. ```bash
  172. opencode mcp debug <name>
  173. ```
  174. ---
  175. ### models
  176. عرض جميع النماذج المتاحة من المزودين المُهيأين.
  177. ```bash
  178. opencode models [provider]
  179. ```
  180. يعرض هذا الأمر جميع النماذج المتاحة عبر المزودين المُهيأين لديك بصيغة `provider/model`.
  181. هذا مفيد لتحديد اسم النموذج الدقيق الذي ستستخدمه في [تهيئتك](/docs/config/).
  182. يمكنك اختياريا تمرير معرّف مزود لتصفية النماذج حسب ذلك المزود.
  183. ```bash
  184. opencode models anthropic
  185. ```
  186. #### الرايات
  187. | الراية | الوصف |
  188. | ----------- | ------------------------------------------------------------- |
  189. | `--refresh` | تحديث ذاكرة التخزين المؤقت للنماذج من models.dev |
  190. | `--verbose` | استخدام مخرجات أكثر تفصيلا للنماذج (تشمل بيانات مثل التكاليف) |
  191. استخدم الراية `--refresh` لتحديث قائمة النماذج المخزنة مؤقتا. يفيد ذلك عند إضافة نماذج جديدة إلى مزود وتريد رؤيتها في OpenCode.
  192. ```bash
  193. opencode models --refresh
  194. ```
  195. ---
  196. ### run
  197. تشغيل opencode في وضع غير تفاعلي عبر تمرير موجه مباشرة.
  198. ```bash
  199. opencode run [message..]
  200. ```
  201. هذا مفيد للبرمجة النصية والأتمتة، أو عندما تريد إجابة سريعة دون تشغيل واجهة TUI كاملة. على سبيل المثال.
  202. ```bash "opencode run"
  203. opencode run Explain the use of context in Go
  204. ```
  205. يمكنك أيضا الإرفاق بمثيل `opencode serve` قيد التشغيل لتجنّب زمن الإقلاع البارد لخوادم MCP في كل تشغيل:
  206. ```bash
  207. # ابدأ خادمًا بلا واجهة في محطة طرفية واحدة
  208. opencode serve
  209. # في محطة طرفية أخرى، شغّل الأوامر التي ترتبط به
  210. opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
  211. ```
  212. #### الرايات
  213. | الراية | المختصر | الوصف |
  214. | ------------ | ------- | ----------------------------------------------------------------- |
  215. | `--command` | | الأمر المراد تشغيله؛ استخدم الرسالة كوسائط |
  216. | `--continue` | `-c` | متابعة الجلسة الأخيرة |
  217. | `--session` | `-s` | معرّف الجلسة للمتابعة |
  218. | `--fork` | | تفريع الجلسة عند المتابعة (يستخدم مع `--continue` أو `--session`) |
  219. | `--share` | | مشاركة الجلسة |
  220. | `--model` | `-m` | النموذج المراد استخدامه بصيغة provider/model |
  221. | `--agent` | | الوكيل المراد استخدامه |
  222. | `--file` | `-f` | ملف/ملفات لإرفاقها بالرسالة |
  223. | `--format` | | التنسيق: default (منسق) أو json (أحداث JSON خام) |
  224. | `--title` | | عنوان للجلسة (يستخدم موجهًا مقتطعًا إن لم تُحدَّد قيمة) |
  225. | `--attach` | | الإرفاق بخادم opencode قيد التشغيل (مثل http://localhost:4096) |
  226. | `--port` | | منفذ الخادم المحلي (الافتراضي منفذ عشوائي) |
  227. ---
  228. ### serve
  229. بدء خادم OpenCode بدون واجهة للوصول عبر API. راجع [توثيق الخادم](/docs/server) لواجهة HTTP الكاملة.
  230. ```bash
  231. opencode serve
  232. ```
  233. يشغّل هذا خادم HTTP يوفّر وصولا عبر API لوظائف opencode دون واجهة TUI. اضبط `OPENCODE_SERVER_PASSWORD` لتفعيل مصادقة HTTP الأساسية (اسم المستخدم الافتراضي `opencode`).
  234. #### الرايات
  235. | الراية | الوصف |
  236. | ------------ | ----------------------------------------- |
  237. | `--port` | المنفذ الذي يتم الاستماع عليه |
  238. | `--hostname` | اسم المضيف الذي يتم الاستماع عليه |
  239. | `--mdns` | تفعيل اكتشاف mDNS |
  240. | `--cors` | أصول/منشأات إضافية للمتصفح للسماح بـ CORS |
  241. ---
  242. ### session
  243. إدارة جلسات OpenCode.
  244. ```bash
  245. opencode session [command]
  246. ```
  247. ---
  248. #### list
  249. عرض جميع جلسات OpenCode.
  250. ```bash
  251. opencode session list
  252. ```
  253. ##### الرايات
  254. | الراية | المختصر | الوصف |
  255. | ------------- | ------- | ------------------------------------- |
  256. | `--max-count` | `-n` | حصر النتائج في أحدث N جلسات |
  257. | `--format` | | تنسيق المخرجات: table أو json (table) |
  258. ---
  259. ### stats
  260. عرض إحصاءات استخدام الرموز والتكلفة لجلسات OpenCode لديك.
  261. ```bash
  262. opencode stats
  263. ```
  264. #### الرايات
  265. | الراية | الوصف |
  266. | ----------- | ------------------------------------------------------------------------- |
  267. | `--days` | عرض الإحصاءات لآخر N يومًا (الافتراضي: كل الوقت) |
  268. | `--tools` | عدد الأدوات المطلوب عرضها (الافتراضي: الكل) |
  269. | `--models` | عرض تفصيل استخدام النماذج (مخفي افتراضيا). مرّر رقمًا لعرض أعلى N |
  270. | `--project` | التصفية حسب المشروع (الافتراضي: كل المشاريع، سلسلة فارغة: المشروع الحالي) |
  271. ---
  272. ### export
  273. تصدير بيانات الجلسة بصيغة JSON.
  274. ```bash
  275. opencode export [sessionID]
  276. ```
  277. إذا لم تُقدّم معرّف جلسة، فسيُطلب منك الاختيار من الجلسات المتاحة.
  278. ---
  279. ### import
  280. استيراد بيانات الجلسة من ملف JSON أو رابط مشاركة OpenCode.
  281. ```bash
  282. opencode import <file>
  283. ```
  284. يمكنك الاستيراد من ملف محلي أو من رابط مشاركة OpenCode.
  285. ```bash
  286. opencode import session.json
  287. opencode import https://opncd.ai/s/abc123
  288. ```
  289. ---
  290. ### web
  291. بدء خادم OpenCode بدون واجهة مع واجهة ويب.
  292. ```bash
  293. opencode web
  294. ```
  295. يشغّل هذا خادم HTTP ويفتح متصفح ويب للوصول إلى OpenCode عبر واجهة ويب. اضبط `OPENCODE_SERVER_PASSWORD` لتفعيل مصادقة HTTP الأساسية (اسم المستخدم الافتراضي `opencode`).
  296. #### الرايات
  297. | الراية | الوصف |
  298. | ------------ | ----------------------------------------- |
  299. | `--port` | المنفذ الذي يتم الاستماع عليه |
  300. | `--hostname` | اسم المضيف الذي يتم الاستماع عليه |
  301. | `--mdns` | تفعيل اكتشاف mDNS |
  302. | `--cors` | أصول/منشأات إضافية للمتصفح للسماح بـ CORS |
  303. ---
  304. ### acp
  305. بدء خادم ACP (Agent Client Protocol).
  306. ```bash
  307. opencode acp
  308. ```
  309. يشغّل هذا الأمر خادم ACP يتواصل عبر stdin/stdout باستخدام nd-JSON.
  310. #### الرايات
  311. | الراية | الوصف |
  312. | ------------ | --------------------------------- |
  313. | `--cwd` | دليل العمل |
  314. | `--port` | المنفذ الذي يتم الاستماع عليه |
  315. | `--hostname` | اسم المضيف الذي يتم الاستماع عليه |
  316. ---
  317. ### uninstall
  318. إلغاء تثبيت OpenCode وإزالة جميع الملفات ذات الصلة.
  319. ```bash
  320. opencode uninstall
  321. ```
  322. #### الرايات
  323. | الراية | المختصر | الوصف |
  324. | --------------- | ------- | ----------------------------------- |
  325. | `--keep-config` | `-c` | الإبقاء على ملفات التهيئة |
  326. | `--keep-data` | `-d` | الإبقاء على بيانات الجلسات واللقطات |
  327. | `--dry-run` | | عرض ما سيتم حذفه دون تنفيذ الحذف |
  328. | `--force` | `-f` | تخطي مطالبات التأكيد |
  329. ---
  330. ### upgrade
  331. تحديث opencode إلى أحدث إصدار أو إلى إصدار محدد.
  332. ```bash
  333. opencode upgrade [target]
  334. ```
  335. للترقية إلى أحدث إصدار.
  336. ```bash
  337. opencode upgrade
  338. ```
  339. للترقية إلى إصدار محدد.
  340. ```bash
  341. opencode upgrade v0.1.48
  342. ```
  343. #### الرايات
  344. | الراية | المختصر | الوصف |
  345. | ---------- | ------- | ----------------------------------------------------------- |
  346. | `--method` | `-m` | طريقة التثبيت المستخدمة: curl أو npm أو pnpm أو bun أو brew |
  347. ---
  348. ## الخيارات العامة
  349. يدعم سطر أوامر opencode الخيارات العامة التالية.
  350. | الراية | المختصر | الوصف |
  351. | -------------- | ------- | -------------------------------------- |
  352. | `--help` | `-h` | عرض المساعدة |
  353. | `--version` | `-v` | طباعة رقم الإصدار |
  354. | `--print-logs` | | طباعة السجلات إلى stderr |
  355. | `--log-level` | | مستوى السجل (DEBUG, INFO, WARN, ERROR) |
  356. ---
  357. ## متغيرات البيئة
  358. يمكن تهيئة OpenCode باستخدام متغيرات البيئة.
  359. | المتغير | النوع | الوصف |
  360. | ------------------------------------- | ------- | --------------------------------------------------------- |
  361. | `OPENCODE_AUTO_SHARE` | boolean | مشاركة الجلسات تلقائيا |
  362. | `OPENCODE_GIT_BASH_PATH` | string | مسار ملف Git Bash التنفيذي على Windows |
  363. | `OPENCODE_CONFIG` | string | مسار ملف التهيئة |
  364. | `OPENCODE_CONFIG_DIR` | string | مسار دليل التهيئة |
  365. | `OPENCODE_CONFIG_CONTENT` | string | محتوى تهيئة JSON مُضمّن |
  366. | `OPENCODE_DISABLE_AUTOUPDATE` | boolean | تعطيل التحقق التلقائي من التحديثات |
  367. | `OPENCODE_DISABLE_PRUNE` | boolean | تعطيل تنقية البيانات القديمة |
  368. | `OPENCODE_DISABLE_TERMINAL_TITLE` | boolean | تعطيل تحديث عنوان terminal تلقائيا |
  369. | `OPENCODE_PERMISSION` | string | تهيئة أذونات JSON مُضمّنة |
  370. | `OPENCODE_DISABLE_DEFAULT_PLUGINS` | boolean | تعطيل الإضافات الافتراضية |
  371. | `OPENCODE_DISABLE_LSP_DOWNLOAD` | boolean | تعطيل تنزيل خوادم LSP تلقائيا |
  372. | `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | boolean | تفعيل النماذج التجريبية |
  373. | `OPENCODE_DISABLE_AUTOCOMPACT` | boolean | تعطيل ضغط السياق تلقائيا |
  374. | `OPENCODE_DISABLE_CLAUDE_CODE` | boolean | تعطيل القراءة من `.claude` (الموجه + المهارات) |
  375. | `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | boolean | تعطيل قراءة `~/.claude/CLAUDE.md` |
  376. | `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | boolean | تعطيل تحميل `.claude/skills` |
  377. | `OPENCODE_DISABLE_MODELS_FETCH` | boolean | تعطيل جلب النماذج من مصادر بعيدة |
  378. | `OPENCODE_FAKE_VCS` | string | مزود VCS وهمي لأغراض الاختبار |
  379. | `OPENCODE_CLIENT` | string | معرّف العميل (الافتراضي `cli`) |
  380. | `OPENCODE_ENABLE_EXA` | boolean | تفعيل أدوات بحث الويب من Exa |
  381. | `OPENCODE_SERVER_PASSWORD` | string | تفعيل المصادقة الأساسية لخادمي `serve`/`web` |
  382. | `OPENCODE_SERVER_USERNAME` | string | تجاوز اسم مستخدم المصادقة الأساسية (الافتراضي `opencode`) |
  383. | `OPENCODE_MODELS_URL` | string | رابط مخصص لجلب تهيئة النماذج |
  384. ---
  385. ### تجريبي
  386. تقوم متغيرات البيئة التالية بتفعيل ميزات تجريبية قد تتغير أو تتم إزالتها.
  387. | المتغير | النوع | الوصف |
  388. | ----------------------------------------------- | ------- | ------------------------------------------- |
  389. | `OPENCODE_EXPERIMENTAL` | boolean | تفعيل جميع الميزات التجريبية |
  390. | `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | boolean | تفعيل اكتشاف الأيقونات |
  391. | `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | boolean | تعطيل النسخ عند التحديد في TUI |
  392. | `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | number | المهلة الافتراضية لأوامر bash بالميلي ثانية |
  393. | `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | number | الحد الأقصى لرموز المخرجات لاستجابات LLM |
  394. | `OPENCODE_EXPERIMENTAL_FILEWATCHER` | boolean | تفعيل مراقب الملفات لكامل الدليل |
  395. | `OPENCODE_EXPERIMENTAL_OXFMT` | boolean | تفعيل مُنسّق oxfmt |
  396. | `OPENCODE_EXPERIMENTAL_LSP_TOOL` | boolean | تفعيل أداة LSP تجريبية |
  397. | `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | boolean | تعطيل مراقب الملفات |
  398. | `OPENCODE_EXPERIMENTAL_EXA` | boolean | تفعيل ميزات Exa التجريبية |
  399. | `OPENCODE_EXPERIMENTAL_LSP_TY` | boolean | تمكين TY LSP لملفات python |
  400. | `OPENCODE_EXPERIMENTAL_MARKDOWN` | boolean | تفعيل ميزات markdown تجريبية |
  401. | `OPENCODE_EXPERIMENTAL_PLAN_MODE` | boolean | تفعيل وضع الخطة |