File size: 10,375 Bytes
3e05655 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 | ---
title: مقدمة
description: ابدأ باستخدام OpenCode.
---
import { Tabs, TabItem } from "@astrojs/starlight/components"
import config from "../../../../config.mjs"
export const console = config.console
[**OpenCode**](/) هو وكيل ترميز بالذكاء الاصطناعي مفتوح المصدر. يتوفر كواجهة terminal، وتطبيق لسطح المكتب، أو إضافة لبيئة تطوير متكاملة (IDE).

لنبدأ.
---
#### المتطلبات
لاستخدام OpenCode في terminal، ستحتاج إلى:
1. محاكي terminal حديث مثل:
- [WezTerm](https://wezterm.org) متعدد المنصات
- [Alacritty](https://alacritty.org) متعدد المنصات
- [Ghostty](https://ghostty.org) على Linux وmacOS
- [Kitty](https://sw.kovidgoyal.net/kitty/) على Linux وmacOS
2. مفاتيح API لمزوّدي نماذج اللغة (LLM) الذين تريد استخدامهم.
---
## التثبيت
أسهل طريقة لتثبيت OpenCode هي عبر سكربت التثبيت.
```bash
curl -fsSL https://opencode.ai/install | bash
```
يمكنك أيضا تثبيته عبر الأوامر التالية:
- **باستخدام Node.js**
<Tabs>
<TabItem label="npm">
```bash
npm install -g opencode-ai
```
</TabItem>
<TabItem label="Bun">
```bash
bun install -g opencode-ai
```
</TabItem>
<TabItem label="pnpm">
```bash
pnpm install -g opencode-ai
```
</TabItem>
<TabItem label="Yarn">
```bash
yarn global add opencode-ai
```
</TabItem>
</Tabs>
- **باستخدام Homebrew على macOS وLinux**
```bash
brew install anomalyco/tap/opencode
```
> نوصي باستخدام tap الخاص بـ OpenCode للحصول على أحدث الإصدارات. صيغة `brew install opencode` الرسمية تُدار بواسطة فريق Homebrew ويتم تحديثها بوتيرة أقل.
- **باستخدام Paru على Arch Linux**
```bash
sudo pacman -S opencode # Arch Linux (Stable)
paru -S opencode-bin # Arch Linux (Latest from AUR)
```
#### Windows
:::tip[موصى به: استخدم WSL]
لأفضل تجربة على Windows، نوصي باستخدام [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). يوفر أداء أفضل وتوافقا كاملا مع ميزات OpenCode.
:::
- **باستخدام Chocolatey**
```bash
choco install opencode
```
- **باستخدام Scoop**
```bash
scoop install opencode
```
- **باستخدام NPM**
```bash
npm install -g opencode-ai
```
- **باستخدام Mise**
```bash
mise use -g github:anomalyco/opencode
```
- **باستخدام Docker**
```bash
docker run -it --rm ghcr.io/anomalyco/opencode
```
دعم تثبيت OpenCode على Windows باستخدام Bun قيد العمل حاليا.
يمكنك أيضا تنزيل الملف التنفيذي من صفحة [Releases](https://github.com/anomalyco/opencode/releases).
---
## الإعداد
مع OpenCode يمكنك استخدام أي مزود LLM عبر إعداد مفاتيح API الخاصة به.
إذا كنت جديدا على استخدام مزوّدي LLM، فنوصي باستخدام [OpenCode Zen](/docs/zen).
إنها قائمة منتقاة من النماذج تم اختبارها والتحقق منها بواسطة فريق OpenCode.
1. شغّل الأمر `/connect` في واجهة TUI، واختر opencode، ثم انتقل إلى [opencode.ai/auth](https://opencode.ai/auth).
```txt
/connect
```
2. سجّل الدخول، وأضف تفاصيل الدفع، ثم انسخ مفتاح API.
3. الصق مفتاح API.
```txt
┌ API key
│
│
└ enter
```
بدلا من ذلك يمكنك اختيار أحد المزوّدين الآخرين. [اعرف المزيد](/docs/providers#directory).
---
## التهيئة
بعد أن قمت بإعداد مزوّد، يمكنك الانتقال إلى المشروع الذي تريد العمل عليه.
```bash
cd /path/to/project
```
ثم شغّل OpenCode.
```bash
opencode
```
بعد ذلك، هيّئ OpenCode للمشروع عبر تشغيل الأمر التالي.
```bash frame="none"
/init
```
سيجعل هذا OpenCode يحلل مشروعك ويُنشئ ملف `AGENTS.md` في جذر المشروع.
:::tip
يستحسن أن تقوم بعمل commit لملف `AGENTS.md` الخاص بمشروعك إلى Git.
:::
يساعد هذا OpenCode على فهم بنية المشروع وأنماط الترميز المستخدمة.
---
## الاستخدام
أصبحت الآن جاهزا لاستخدام OpenCode للعمل على مشروعك. لا تتردد في سؤاله أي شيء!
إذا كنت جديدا على استخدام وكيل ترميز بالذكاء الاصطناعي، فإليك بعض الأمثلة التي قد تساعد.
---
### اطرح أسئلة
يمكنك أن تطلب من OpenCode شرح قاعدة الشيفرة لك.
:::tip
استخدم المفتاح `@` للبحث التقريبي عن الملفات داخل المشروع.
:::
```txt frame="none" "@packages/functions/src/api/index.ts"
How is authentication handled in @packages/functions/src/api/index.ts
```
يفيد هذا عندما تكون هناك أجزاء من قاعدة الشيفرة لم تعمل عليها.
---
### أضف ميزات
يمكنك أن تطلب من OpenCode إضافة ميزات جديدة إلى مشروعك، لكننا نوصي أولا بطلب إنشاء خطة.
1. **أنشئ خطة**
لدى OpenCode _وضع Plan_ يعطل قدرته على إجراء التغييرات، ويقترح بدلا من ذلك _كيف_ سينفّذ الميزة.
انتقل إليه باستخدام مفتاح **Tab**. سترى مؤشرا لذلك في الزاوية السفلية اليمنى.
```bash frame="none" title="التبديل إلى وضع Plan"
<TAB>
```
الآن لنصف ما نريده أن يفعله.
```txt frame="none"
When a user deletes a note, we'd like to flag it as deleted in the database.
Then create a screen that shows all the recently deleted notes.
From this screen, the user can undelete a note or permanently delete it.
```
احرص على تزويد OpenCode بتفاصيل كافية ليفهم ما تريد. يساعد أن تتحدث إليه كما لو كنت تتحدث إلى مطور مبتدئ ضمن فريقك.
:::tip
أعطِ OpenCode سياقا وأمثلة كافية لمساعدته على فهم ما تريد.
:::
2. **حسّن الخطة**
بعد أن يقدم لك خطة، يمكنك إعطاؤه ملاحظات أو إضافة تفاصيل أكثر.
```txt frame="none"
We'd like to design this new screen using a design I've used before.
[Image #1] Take a look at this image and use it as a reference.
```
:::tip
اسحب الصور وأفلِتها داخل terminal لإضافتها إلى الطلب.
:::
يستطيع OpenCode فحص أي صور تزوده بها وإضافتها إلى الطلب. يمكنك فعل ذلك عبر سحب الصورة وإفلاتها داخل terminal.
3. **ابنِ الميزة**
عندما تشعر بالارتياح للخطة، عد إلى _وضع Build_ بالضغط على مفتاح **Tab** مرة أخرى.
```bash frame="none"
<TAB>
```
ثم اطلب منه تنفيذ التغييرات.
```bash frame="none"
Sounds good! Go ahead and make the changes.
```
---
### نفّذ تغييرات
للتغييرات الأبسط، يمكنك أن تطلب من OpenCode تنفيذها مباشرة دون الحاجة لمراجعة خطة أولا.
```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts"
We need to add authentication to the /settings route. Take a look at how this is
handled in the /notes route in @packages/functions/src/notes.ts and implement
the same logic in @packages/functions/src/settings.ts
```
تأكد من تقديم قدر مناسب من التفاصيل لكي يجري OpenCode التغييرات الصحيحة.
---
### تراجع عن التغييرات
لنفترض أنك طلبت من OpenCode إجراء بعض التغييرات.
```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```
لكن تتضح لك لاحقا أنها ليست ما تريده. يمكنك **التراجع** عن التغييرات باستخدام الأمر `/undo`.
```bash frame="none"
/undo
```
سيقوم OpenCode الآن بعكس التغييرات التي أُجريت ويعرض رسالتك الأصلية مجددا.
```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```
من هنا يمكنك تعديل الطلب وطلب المحاولة مرة أخرى.
:::tip
يمكنك تشغيل `/undo` عدة مرات للتراجع عن عدة تغييرات.
:::
أو يمكنك **إعادة تنفيذ** التغييرات باستخدام الأمر `/redo`.
```bash frame="none"
/redo
```
---
## المشاركة
يمكن [مشاركة المحادثات](/docs/share) التي تجريها مع OpenCode مع فريقك.
```bash frame="none"
/share
```
سيقوم هذا بإنشاء رابط للمحادثة الحالية ونسخه إلى الحافظة.
:::note
لا تتم مشاركة المحادثات افتراضيا.
:::
إليك [مثالا لمحادثة](https://opencode.ai/s/4XP1fce5) مع OpenCode.
---
## التخصيص
وهذا كل شيء! أصبحت الآن محترفا في استخدام OpenCode.
لتجعله مناسبا لك، نوصي بـ [اختيار سمة](/docs/themes)، و[تخصيص اختصارات لوحة المفاتيح](/docs/keybinds)، و[إعداد منسقات الشيفرة](/docs/formatters)، و[إنشاء أوامر مخصصة](/docs/commands)، أو التجربة مع [إعدادات OpenCode](/docs/config).
|