---
title: الأوضاع
description: أوضاع مختلفة لحالات استخدام مختلفة.
---

:::caution
يتم الآن ضبط الأوضاع عبر خيار `agent` في إعدادات opencode. أصبح خيار
`mode` مُهمَلًا الآن. [اعرف المزيد](/docs/agents).
:::

تتيح لك الأوضاع في opencode تخصيص السلوك والأدوات والمطالبات لحالات استخدام مختلفة.

يأتي مع وضعين مدمجين: **build** و **plan**. يمكنك تخصيصهما أو إعداد
أوضاعك الخاصة عبر إعدادات opencode.

يمكنك التبديل بين الأوضاع أثناء الجلسة أو إعدادها في ملف الإعدادات لديك.

---

## الأوضاع المدمجة

يأتي opencode مع وضعين مدمجين.

---

### Build

وضع Build هو الوضع **الافتراضي** مع تفعيل جميع الأدوات. هذا هو الوضع القياسي لأعمال التطوير عندما تحتاج إلى وصول كامل لعمليات الملفات وأوامر النظام.

---

### Plan

وضع مقيَّد مُصمَّم للتخطيط والتحليل. في وضع plan، تكون الأدوات التالية مُعطَّلة افتراضيًا:

- `write` - لا يمكن إنشاء ملفات جديدة
- `edit` - لا يمكن تعديل الملفات الموجودة، باستثناء الملفات الموجودة في `.opencode/plans/*.md` لتفصيل الخطة نفسها
- `patch` - لا يمكن تطبيق التصحيحات
- `bash` - لا يمكن تنفيذ أوامر shell

يكون هذا الوضع مفيدًا عندما تريد من الذكاء الاصطناعي تحليل الشيفرة، أو اقتراح تغييرات، أو إنشاء خطط دون إجراء أي تعديلات فعلية على قاعدة الشيفرة لديك.

---

## التبديل

يمكنك التبديل بين الأوضاع أثناء الجلسة باستخدام مفتاح _Tab_، أو اختصار `switch_mode` الذي قمت بإعداده.

انظر أيضًا: [Formatters](/docs/formatters) لمعلومات حول إعدادات تنسيق الشيفرة.

---

## الإعداد

يمكنك تخصيص الأوضاع المدمجة أو إنشاء أوضاعك الخاصة عبر الإعدادات. يمكن إعداد الأوضاع بطريقتين:

### إعدادات JSON

قم بإعداد الأوضاع في ملف الإعدادات `opencode.json` لديك:

```json title="opencode.json"
{
  "$schema": "https://opencode.ai/config.json",
  "mode": {
    "build": {
      "model": "anthropic/claude-sonnet-4-20250514",
      "prompt": "{file:./prompts/build.txt}",
      "tools": {
        "write": true,
        "edit": true,
        "bash": true
      }
    },
    "plan": {
      "model": "anthropic/claude-haiku-4-20250514",
      "tools": {
        "write": false,
        "edit": false,
        "bash": false
      }
    }
  }
}
```

### إعدادات Markdown

يمكنك أيضًا تعريف الأوضاع باستخدام ملفات markdown. ضعها في:

- عالمي: `~/.config/opencode/modes/`
- للمشروع: `.opencode/modes/`

```markdown title="~/.config/opencode/modes/review.md"
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
  write: false
  edit: false
  bash: false
---

You are in code review mode. Focus on:

- Code quality and best practices
- Potential bugs and edge cases
- Performance implications
- Security considerations

Provide constructive feedback without making direct changes.
```

يصبح اسم ملف markdown هو اسم الوضع (على سبيل المثال، `review.md` ينشئ وضعًا باسم `review`).

لنلقِ نظرة على خيارات الإعداد هذه بمزيد من التفصيل.

---

### النموذج

استخدم إعداد `model` لتجاوز النموذج الافتراضي لهذا الوضع. يفيد ذلك عند استخدام نماذج مختلفة مُحسَّنة لمهام مختلفة؛ مثل نموذج أسرع للتخطيط ونموذج أكثر قدرة للتنفيذ.

```json title="opencode.json"
{
  "mode": {
    "plan": {
      "model": "anthropic/claude-haiku-4-20250514"
    }
  }
}
```

---

### درجة الحرارة

تحكَّم في العشوائية والإبداع في ردود الذكاء الاصطناعي عبر إعداد `temperature`. القيم الأقل تجعل الردود أكثر تركيزًا وحتمية، بينما تزيد القيم الأعلى الإبداع والتنوّع.

```json title="opencode.json"
{
  "mode": {
    "plan": {
      "temperature": 0.1
    },
    "creative": {
      "temperature": 0.8
    }
  }
}
```

تتراوح قيم درجة الحرارة عادةً بين 0.0 و 1.0:

- **0.0-0.2**: ردود شديدة التركيز وحتمية، مثالية لتحليل الشيفرة والتخطيط
- **0.3-0.5**: ردود متوازنة مع قدر من الإبداع، مناسبة لمهام التطوير العامة
- **0.6-1.0**: ردود أكثر إبداعًا وتنوّعًا، مفيدة للعصف الذهني والاستكشاف

```json title="opencode.json"
{
  "mode": {
    "analyze": {
      "temperature": 0.1,
      "prompt": "{file:./prompts/analysis.txt}"
    },
    "build": {
      "temperature": 0.3
    },
    "brainstorm": {
      "temperature": 0.7,
      "prompt": "{file:./prompts/creative.txt}"
    }
  }
}
```

إذا لم يتم تحديد درجة الحرارة، يستخدم opencode القيم الافتراضية الخاصة بكل نموذج (عادةً 0 لمعظم النماذج و 0.55 لنماذج Qwen).

---

### الموجّه

حدِّد ملف موجّه نظام (system prompt) مخصص لهذا الوضع عبر إعداد `prompt`. ينبغي أن يحتوي ملف الموجّه على تعليمات مرتبطة بهدف هذا الوضع.

```json title="opencode.json"
{
  "mode": {
    "review": {
      "prompt": "{file:./prompts/code-review.txt}"
    }
  }
}
```

هذا المسار نسبي بالنسبة لموقع ملف الإعدادات. لذلك يعمل مع
إعدادات opencode العالمية وكذلك إعدادات المشروع.

---

### الأدوات

تحكَّم في الأدوات المتاحة في هذا الوضع عبر إعداد `tools`. يمكنك تفعيل أدوات محددة أو تعطيلها بضبطها على `true` أو `false`.

```json
{
  "mode": {
    "readonly": {
      "tools": {
        "write": false,
        "edit": false,
        "bash": false,
        "read": true,
        "grep": true,
        "glob": true
      }
    }
  }
}
```

إذا لم يتم تحديد أدوات، فستكون جميع الأدوات مفعّلة افتراضيًا.

---

#### الأدوات المتاحة

فيما يلي جميع الأدوات التي يمكن التحكم بها عبر إعدادات الوضع.

| الأداة      | الوصف                      |
| ----------- | -------------------------- |
| `bash`      | تنفيذ أوامر shell          |
| `edit`      | تعديل الملفات الموجودة     |
| `write`     | إنشاء ملفات جديدة          |
| `read`      | قراءة محتويات الملفات      |
| `grep`      | البحث في محتويات الملفات   |
| `glob`      | العثور على الملفات حسب نمط |
| `list`      | سرد محتويات الدليل         |
| `patch`     | تطبيق تصحيحات على الملفات  |
| `todowrite` | إدارة قوائم المهام         |
| `todoread`  | قراءة قوائم المهام         |
| `webfetch`  | جلب محتوى الويب            |

---

## أوضاع مخصصة

يمكنك إنشاء أوضاعك المخصصة بإضافتها إلى الإعدادات. فيما يلي أمثلة باستخدام كلا الأسلوبين:

### باستخدام إعدادات JSON

```json title="opencode.json" {4-14}
{
  "$schema": "https://opencode.ai/config.json",
  "mode": {
    "docs": {
      "prompt": "{file:./prompts/documentation.txt}",
      "tools": {
        "write": true,
        "edit": true,
        "bash": false,
        "read": true,
        "grep": true,
        "glob": true
      }
    }
  }
}
```

### باستخدام ملفات markdown

أنشئ ملفات الأوضاع في `.opencode/modes/` لأوضاع خاصة بالمشروع أو في `~/.config/opencode/modes/` لأوضاع عالمية:

```markdown title=".opencode/modes/debug.md"
---
temperature: 0.1
tools:
  bash: true
  read: true
  grep: true
  write: false
  edit: false
---

You are in debug mode. Your primary goal is to help investigate and diagnose issues.

Focus on:

- Understanding the problem through careful analysis
- Using bash commands to inspect system state
- Reading relevant files and logs
- Searching for patterns and anomalies
- Providing clear explanations of findings

Do not make any changes to files. Only investigate and report.
```

```markdown title="~/.config/opencode/modes/refactor.md"
---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.2
tools:
  edit: true
  read: true
  grep: true
  glob: true
---

You are in refactoring mode. Focus on improving code quality without changing functionality.

Priorities:

- Improve code readability and maintainability
- Apply consistent naming conventions
- Reduce code duplication
- Optimize performance where appropriate
- Ensure all tests continue to pass
```

---

### حالات الاستخدام

فيما يلي بعض حالات الاستخدام الشائعة لأوضاع مختلفة.

- **Build mode**: أعمال تطوير كاملة مع تفعيل جميع الأدوات
- **Plan mode**: التحليل والتخطيط دون إجراء تغييرات
- **Review mode**: مراجعة الشيفرة مع وصول للقراءة فقط بالإضافة إلى أدوات التوثيق
- **Debug mode**: تركيز على الاستقصاء مع تفعيل أدوات `bash` و `read`
- **Docs mode**: كتابة التوثيق مع عمليات الملفات لكن دون أوامر النظام

قد تجد أيضًا أن نماذج مختلفة تكون أنسب لحالات استخدام مختلفة.
