# أداة سطر الأوامر

ثبّت الأمر oleafly على Windows أو macOS أو Linux، وابنِ المشاريع وافحصها من طرفية أو من CI، وزامن مع خدمة LaTeX عبر الإنترنت، واربط وكلاء البرمجة عبر خادم MCP الخاص به ومهارته.

يأتي Oleafly مع `oleafly`، أداة سطر أوامر تعمل على المشاريع نفسها التي يعمل عليها التطبيق. ابنِ ورقة أو افحصها من طرفية أو من نص برمجي أو من CI. امنح وكيل برمجة طريقًا موثوقًا إلى مشروعك. زامن مع خدمة LaTeX عبر الإنترنت أو مع خادم Oleafly، أو شغّل وكيل Oleafly دون فتح التطبيق.

وهو يأتي داخل التطبيق على كل المنصات. تغطي هذه الصفحة الأوامر في Oleafly 0.4.8 وما بعده. كانت الإصدارات الأقدم تحوي أوامر أقل، لذا ثبّت إصدار Oleafly في النصوص البرمجية التي تعتمد عليه.

## التثبيت

| النظام | أين يحتفظ به التطبيق | ضع `oleafly` على PATH |
|---|---|---|
| Windows | `oleafly-cli.exe` بجوار التطبيق، في `%LOCALAPPDATA%\Oleafly` لبرنامج الإعداد أو `C:\Program Files\Oleafly` لحزمة MSI | يؤدي **Install** في صف **Terminal command** ضمن **Settings → General** إلى نسخه إلى `%LOCALAPPDATA%\Oleafly\bin\oleafly.exe` وإضافة ذلك المجلد إلى PATH لديك |
| macOS | `Oleafly.app/Contents/MacOS/oleafly-cli` | يربط **Install** في صف **Terminal command** الأمر `oleafly` داخل `/usr/local/bin` إذا كان بإمكانك الكتابة هناك، وإلا داخل `~/.local/bin` |
| حزم Linux (.deb و.rpm) | `/usr/bin/oleafly-cli` | لا شيء تفعله: تثبّت الحزمة `/usr/bin/oleafly` |
| AppImage على Linux | داخل AppImage | يؤدي **Install** إلى نسخه إلى `~/.local/bin/oleafly` |

البرامج التي يشغّلها Oleafly، مثل طرفيته الخاصة ووكلاء CLI، تجد `oleafly` دائمًا على PATH لديها، حتى قبل أن تثبّته. ويحمل المتغير `OLEAFLY_CLI` مساره الكامل.

### Windows

1. افتح **Settings → General** واختر **Install** في صف **Terminal command**.
2. افتح نافذة PowerShell أو Command Prompt جديدة. النوافذ المفتوحة من قبل تحتفظ بـ PATH القديم.
3. تحقق من أنه يعمل:

```powershell
Get-Command oleafly
oleafly version
```

يحذف **Remove** في الصف نفسه النسخة ويُخرج المجلد من PATH مرة أخرى. وعندما يتحدّث Oleafly، يجدد النسخة عند تشغيله في المرة التالية.

### macOS

انقل Oleafly إلى مجلد Applications أولًا. النسخة التي تعمل من صورة القرص تعرض "Move Oleafly to your Applications folder first" بدلًا من **Install**.

الأمر رابط إلى التطبيق، لذا يؤدي تحديث Oleafly إلى تحديث الأمر أيضًا. وإذا لم يكن المجلد على PATH لديك، يعرض الصف السطر الذي تضيفه إلى ملف تهيئة الغلاف. تحقق منه بـ `command -v oleafly`.

### Linux

تضع حزم .deb و.rpm الأمر `oleafly` على PATH لديك عند تثبيتها. وتشغيل `oleafly` دون أي شيء بعده يفتح التطبيق.

يحتاج AppImage إلى نسخة، لأن الملفات داخل AppImage تزول عندما يُغلق. وبعد أن تستبدل AppImage بنسخة أحدث، يعرض الصف **Update**. وإذا لم يكن `~/.local/bin` على PATH لديك، يعرض الصف السطر الذي تضيفه.

### تحقق من أنه يعمل

يطبع `oleafly version` إصدار التطبيق والمحركات التي سيستخدمها الأمر. ويفحص `oleafly doctor` المحركات والتطبيق وGit وأمر الطرفية وعملاء MCP لديك، ويطبع إصلاحًا لكل ما هو ناقص. وهو يعمل خارج المشروع أيضًا.

## ابنِ مشروعًا

يفتح `oleafly .` المجلد الحالي في التطبيق. وكل أمر آخر يعمل على المجلد الذي أنت فيه؛ ويوجّهه `-C` متبوعًا بمسار إلى مكان آخر.

```sh
cd ~/papers/thesis
oleafly init --engine typst
oleafly build
oleafly log --diagnostics
oleafly -C ~/papers/review --json build
```

- يجعل `oleafly init` المجلد الحالي مشروعًا. ويقبل `--engine` القيم `tectonic` أو `latexmk` أو `typst` أو `markdown`.
- ينشئ `oleafly new` متبوعًا بمجلد و`--template` ومعرّف قالب مشروعًا من قالب. ويسرد `oleafly templates list --all` القوالب.
- يستخدم `oleafly build` محرك المشروع وإعداداته، بالطريقة نفسها التي يعمل بها التطبيق: Tectonic وTypst وPandoc المرفقة مع Oleafly، أو LaTeX الذي ثبّتّه. ويبني `--main` مستندًا آخر من المشروع، ويختار `--compiler` مجمّع LaTeX لمشاريع latexmk، وينسخ `-o` ملف PDF إلى مكان آخر، ويضبط `--timeout` الحد بالثواني.
- المجلد الذي فتحته في مكانه في التطبيق يُبنى بالمحرك والمستند الرئيسي اللذين اخترتهما هناك، داخل مجلد البناء الخاص بالتطبيق.
- لا يبني التطبيق والأمر المشروع نفسه في وقت واحد: ينتظر الثاني الأول. والبناء الفاشل يُبقي آخر ملف PDF سليم.
- يعيد `oleafly watch` البناء عند كل حفظ. ويسرد `oleafly log --diagnostics` الأخطاء والتحذيرات مع الملف والسطر، ويزيل `oleafly clean` مخرجات البناء.

للتفاصيل الخاصة بـ Typst، انظر [مشاريع Typst](/docs/typst/#build-from-the-command-line).

## استخدمه من وكيل برمجة

تعمل وكلاء البرمجة على أفضل وجه مع ثلاثة أشياء يمنحها الأمر: `oleafly context` لخريطة المشروع، و`--json` لنتائج يمكنها قراءتها، ورموز خروج تقول ما الذي حدث خطأً. وهناك ثلاث طرق لربط وكيل.

### مهارة oleafly-cli

يأتي Oleafly بمهارة اسمها `oleafly-cli`. وهي تعلّم الوكيل الأوامر ومخرجات JSON ورموز الخروج، والحلقة التي تعمل أفضل: اقرأ السياق، وعدّل، وابنِ، واقرأ التشخيصات، وأصلح الخطأ الأول.

في طرفية Oleafly ووكلاء CLI الذين يشغّلهم، اختر المهارة كأي مهارة أخرى. وللوكيل الذي تشغّله بنفسك، فعّل **Settings → AI Assistant → Skills → Share skills with other agents on this computer**. يربط Oleafly عندها مهاراته، ومنها `oleafly-cli`، بالمجلدات التي تقرؤها وكلاء البرمجة الأخرى، مثل `~/.claude/skills` و`~/.codex/skills` و`~/.agents/skills`. ويطبع `oleafly skills path` مكان المهارات، للوكلاء الذين يقرؤون مجلدًا آخر.

### اربط وكيلًا عبر MCP

`oleafly mcp` هو خادم MCP يتحدث عبر الإدخال والإخراج القياسيين. وعندما يكون مشروعك مفتوحًا في التطبيق، فإنه يمرّر الاستدعاءات إلى [خادم MCP](/docs/mcp/) الخاص بالتطبيق، فيحصل الوكيل على كل أدوات التطبيق وعلى مطالبات موافقتك. وإلا فإنه يعمل بمفرده، بأدوات قراءة (حالة المشروع، وخريطة المشروع، والملفات، والبحث، والسجلات، وتقرير doctor، والبحث عن الاستشهادات) و`compile`. لا يوجد عنوان URL أو رمز لنسخه، ولا Node.js لتثبيته.

أسرع إعداد هو `oleafly mcp config --client` متبوعًا بـ `claude-code` أو `claude-desktop` أو `codex` أو `cursor` أو `gemini`. فهو يطبع المدخل الخاص بذلك العميل؛ وأضف `--write` ليُضاف لك، مع نسخة احتياطية من ملف العميل. أعد تشغيل العميل أو أعد الاتصال به بعد ذلك. داخل مشروع يكتب إعدادات المشروع؛ وفي غير ذلك يكتب إعدادات المستخدم، مع المسار الكامل للأمر، لأن التطبيقات التي تشغّلها من سطح المكتب قد لا ترى PATH لديك.

#### Claude Code

```sh
claude mcp add --scope user oleafly -- oleafly mcp
```

داخل مشروع، يضيف `oleafly mcp config --client claude-code --write` الخادم إلى ملف `.mcp.json` الخاص بالمشروع بدلًا من ذلك.

#### Claude Desktop

يشغّل Claude Desktop الخوادم دون مجلد مشروع، لذا يعمل مدخله دائمًا عبر التطبيق: أبقِ Oleafly مفتوحًا مع مشروعك. استخدم المسار الكامل إلى `oleafly`. وعلى Windows، ضاعف كل شرطة مائلة عكسية في المسار.

```json title="claude_desktop_config.json"
{
  "mcpServers": {
    "oleafly": {
      "command": "/usr/local/bin/oleafly",
      "args": ["mcp", "--bridge", "always"]
    }
  }
}
```

يوجد الملف في `~/Library/Application Support/Claude` على macOS وفي `%APPDATA%\Claude` على Windows.

#### Codex

```toml title="~/.codex/config.toml"
[mcp_servers.oleafly]
command = "oleafly"
args = ["mcp"]
tool_timeout_sec = 300
```

#### Cursor

استخدم `~/.cursor/mcp.json` لكل المشاريع، أو `.cursor/mcp.json` داخل مشروع واحد.

```json title="~/.cursor/mcp.json"
{
  "mcpServers": {
    "oleafly": {
      "command": "oleafly",
      "args": ["mcp"]
    }
  }
}
```

#### Gemini CLI

```json title="~/.gemini/settings.json"
{
  "mcpServers": {
    "oleafly": {
      "command": "oleafly",
      "args": ["mcp"],
      "timeout": 300000
    }
  }
}
```

### امنح وكيلًا المشروع كله

يرسم `oleafly context` خريطة المشروع: ملفاته ومخططه التفصيلي ووسومه واستشهاداته والملفات الناقصة والإحالات غير المحلولة ومشكلات آخر بناء. ويعطي `--format md` نصًا تلصقه في موجّه، ويعطي `--format json` الخريطة نفسها لبرنامج.

## افحص ورقة قبل التقديم

يشغّل `oleafly check` [فحوصات Preflight](/docs/preflight/) على المشروع، بالنتائج نفسها التي تعرضها لوحة Preflight: المراجع والاستشهادات والوسوم والملفات الناقصة وحقول قائمة المراجع والأشكال وإخفاء الهوية في التحكيم الأعمى. والفحوصات التي تحتاج إلى ملف PDF المجمّع تستخدم آخر بناء.

يشغّل `oleafly lint` فحوصات LaTeX وBibTeX، والتدقيق الإملائي والنحوي في الإصدارات التي تتضمنه. ويطبّق `--fix` الإصلاحات التي يمكن تطبيقها بأمان.

كلاهما يقبل `--format human` أو `json` أو `sarif`، ويجعلهما `--exit-code` ينتهيان بالرمز 9 عندما يجدان مشكلات. ويعمل SARIF مع خدمات فحص الشيفرة مثل خدمة GitHub: اكتب التقرير بـ `oleafly check --format sarif -o preflight.sarif`، وارفعه بإجراء `upload-sarif`، فيظهر كل اكتشاف على سطره في طلب السحب.

## زامن مع خدمة LaTeX عبر الإنترنت

ينزّل `oleafly remote` المشاريع من حسابك في خدمة LaTeX عبر الإنترنت ويُبقي مجلدًا متزامنًا مع أحدها، بعملية الدمج نفسها التي يستخدمها التطبيق.

### تسجيل الدخول

تُحفظ عمليات تسجيل الدخول في المخزن المشفّر للتطبيق، فيعمل تسجيل دخول أجريته في التطبيق على سطر الأوامر والعكس بالعكس.

- يحفظ `oleafly auth login online --with-token` رمز Git من إعدادات حساب الخدمة. ويحتاج الربط والمزامنة إلى واحد.
- ينسخ `oleafly auth login online --from-browser firefox` تسجيل دخولك من متصفح على هذا الحاسوب، لسرد المشاريع وتنزيلها. يعمل Firefox على كل الأنظمة؛ ويعمل Chrome وEdge وBrave على macOS. ويقرأ `--cookie-stdin` ملف تعريف ارتباط الجلسة بدلًا من ذلك.
- يحفظ `oleafly auth login git --host https://gitlab.com` رمزًا لمضيف Git.
- يسرد `oleafly auth status` كل عمليات تسجيل الدخول ومصدر كل منها، دون إظهار أي سر.
- يزيل `oleafly auth logout` تسجيل دخول.

:::caution[أبعد الرموز عن سجل الغلاف]
تُدخل الرموز عبر الإدخال القياسي، مثل `oleafly auth login online --with-token < token.txt`، لا كوسائط أبدًا. وفي الطرفية يطلبها الأمر دون إظهار ما تكتبه. ويطبع `oleafly auth token` رمزًا محفوظًا للنصوص البرمجية، فتعامل مع مخرجاته كما تعامل كلمة مرور.
:::

### استورد المشاريع وزامنها

```sh
oleafly remote list
oleafly remote import 64a1f0c2e5b7 --into ~/papers
cd ~/papers/thesis
oleafly remote link
oleafly remote sync
```

- ينزّل `oleafly remote import` المشاريع إلى مجلدات جديدة. وهو يعمل مع أي حساب.
- يربط `oleafly remote link` مجلدًا بمشروعه على الإنترنت عبر تكامل Git في الخدمة، وهو يحتاج إلى رمز Git.
- يدمج `oleafly remote sync` التغييرات التي على الإنترنت في المجلد ويرسل تغييراتك. ويعرض `--dry-run` ما سيتغير، ويدمج `--no-push` دون إرسال.
- عندما يتغير ملف على الجانبين، لا تكتب المزامنة شيئًا وتنتهي بالرمز 8. شغّلها مرة أخرى مع `--resolve` ومسار الملف متبوعًا بـ `=local` أو `=remote` لكل ملف.
- يعرض `oleafly remote diff` ما يختلف؛ ومع `--exit-code` ينتهي بالرمز 9 عندما تختلف الملفات وبالرمز 8 عندما تتعارض. ويبني `--latexdiff --pdf` ملف PDF موسومًا بتغييراتك، باستخدام latexdiff من توزيعة TeX لديك.
- تعرض `oleafly remote status` و`oleafly remote unlink` و`oleafly remote open` الرابط، وتزيله، وتفتح المشروع في متصفحك.

## اعمل مع خادم Oleafly

يسجّل `oleafly server sign-in` متبوعًا بعنوان الخادم دخول سطر الأوامر برمز توافق عليه في متصفحك. وسطر الأوامر جهاز قائم بذاته على الخادم، منفصل عن التطبيق.

- يعرض `oleafly server status` و`oleafly server projects` خوادمك والمشاريع المشتركة.
- يعرض `oleafly server share` رابط المشروع ويشغّل مشاركة الرابط والتعليقات أو يوقفها.
- يسرد `oleafly server members` الأشخاص في مشروع ويضيفهم أو يزيلهم أو يغيّر أدوارهم. ولا يستطيع تغيير المشاركة والأعضاء إلا المالك.
- يسرد `oleafly server comments` التعليقات ويضيفها ويردّ عليها ويحلّها. والتعليق الذي لا يمكن إرساله فورًا يُحفظ ويُرسل في المرة التالية.

تتم مشاركة مشروع للمرة الأولى في التطبيق. انظر [التعاون المباشر](/docs/collaboration/).

## شغّل وكيل Oleafly من طرفية

يجيب `oleafly ask` عن سؤال حول المشروع دون تغيير أي شيء. ويؤدي `oleafly agent run` مهمة.

```sh
oleafly ask "Which sections cite Smith 2021?"
oleafly agent run --allow write "Fix the overfull boxes in chapter 3"
```

- يستطيع الوكيل قراءة المشروع دائمًا. ويضيف `--allow` القيم `write` أو `commands` أو `network`، ويرفض الوكيل كل ما لم تسمح به. ولا يتوقف أبدًا ليطرح سؤالًا.
- تذهب التغييرات إلى مجلد مراجعة في `.oleafly/agent-runs/` أولًا. ويكتبها `oleafly agent apply` متبوعًا بذلك المجلد في المشروع، ويكتبها `--apply` في التشغيل مباشرة.
- يأتي المزوّد والنموذج ومستوى الجهد من إعدادات التطبيق، أو من `--provider` و`--model` و`--effort`. ويأتي المفتاح من متغير البيئة الخاص بالمزوّد نفسه، مثل `ANTHROPIC_API_KEY`، أو من المخزن المشفّر للتطبيق.
- يطبع `--json` نتيجة واحدة عند انتهاء التشغيل، ويضيف `--events` سطر JSON لكل حدث أثناء العمل.

### أبقِ مهام البحث تعمل بعد إغلاق التطبيق

علّم [مهمة بحث](/docs/research-tasks/) بالخيار **Keep running when Oleafly is closed**. وعندما تغلق التطبيق، يتولى مساعد صغير يعمل في الخلفية تلك المهام وتواصل تجاربها عملها. والخطوة التي تحتاج إلى موافقتك توقف المهمة مؤقتًا وترسل إشعارًا. وعندما تفتح Oleafly مرة أخرى، يستعيد المهام ويعرض ما حدث. أوقف هذا، أو شغّل المساعد عند تسجيل الدخول، ضمن **Settings → Research → Background tasks**. ويعرض `oleafly daemon status` ما يفعله المساعد.

## مرجع الأوامر

يشرح كل أمر خياراته بـ `--help`. المرجع الكامل في المستودع: [docs/cli.md](https://github.com/Oleafly/Oleafly/blob/main/docs/cli.md).

### المشاريع وعمليات البناء

| الأمر | ما يفعله |
|---|---|
| `oleafly open` | يفتح مجلدًا في التطبيق (`oleafly .` للمجلد الحالي) |
| `oleafly init` | يجعل المجلد الحالي مشروعًا |
| `oleafly new` | ينشئ مشروعًا، من قالب إذا سمّيت واحدًا |
| `oleafly templates` | يسرد القوالب ويعرض أحدها |
| `oleafly build` | يبني المشروع |
| `oleafly watch` | يعيد البناء عند كل حفظ |
| `oleafly clean` | يزيل مخرجات البناء |
| `oleafly log` | يعرض سجل آخر بناء أو مشكلاته |
| `oleafly doctor` | يفحص المحركات والتطبيق وإعدادك |
| `oleafly version` | يعرض الإصدار والمحركات المستخدمة |
| `oleafly project info` | يعرض إعدادات المشروع |
| `oleafly projects list` | يسرد مشاريع التطبيق |
| `oleafly config` | يقرأ إعدادات المشروع والتطبيق ويضبطها |

### الكتابة والمراجع

| الأمر | ما يفعله |
|---|---|
| `oleafly cite` | يطبع BibTeX لـ DOI أو معرّف arXiv أو ISBN أو معرّف PubMed؛ ويضيفه `--add` إلى قائمة المراجع |
| `oleafly literature` | يبحث في OpenAlex وSemantic Scholar وCrossref وarXiv وPubMed |
| `oleafly bib check` | يجد المدخلات التي لا تطابق أي سجل حقيقي |
| `oleafly bib clean` | يصلح مفاتيح الاستشهاد ويزيل التكرارات؛ ويكتب `--apply` التغييرات |
| `oleafly stats` | يعدّ الكلمات والعناوين والأشكال والمعادلات |
| `oleafly synctex` | يربط سطر مصدر بملف PDF والعكس |
| `oleafly export` | يصدّر المستند إلى Word وHTML وMarkdown وEPUB وغيرها |
| `oleafly convert` | يحوّل ملفًا واحدًا إلى صيغة أخرى |
| `oleafly typst` | يسرد نسخ Typst ويثبّتها ويزيلها |
| `oleafly checkpoint` | يسرد نقاط التحقق المحفوظة في التطبيق ويقارنها وينسخها |

### الوكلاء والأتمتة

| الأمر | ما يفعله |
|---|---|
| `oleafly context` | يرسم خريطة المشروع لشخص أو لوكيل |
| `oleafly mcp` | يشغّل خادم MCP؛ ويُعدّ `mcp config` عميلًا |
| `oleafly skills` | يسرد المهارات ويطبع أماكنها |
| `oleafly ask` | يجيب عن سؤال حول المشروع |
| `oleafly agent` | يشغّل وكيل Oleafly على مهمة |
| `oleafly daemon` | يشغّل المساعد الذي يُبقي المهام تعمل ويتحكم فيه |

### الفحوصات

| الأمر | ما يفعله |
|---|---|
| `oleafly check` | يشغّل فحوصات Preflight |
| `oleafly lint` | يشغّل فحوصات LaTeX وBibTeX والتدقيق الإملائي والنحوي |

### الحسابات والمزامنة

| الأمر | ما يفعله |
|---|---|
| `oleafly auth` | يسجّل الدخول إلى خدمات LaTeX عبر الإنترنت وخوادم Oleafly ومضيفي Git |
| `oleafly remote` | يستورد المشاريع التي على الإنترنت ويربطها ويزامنها |
| `oleafly server` | يعمل مع خوادم Oleafly: المشاريع والمشاركة والأعضاء والتعليقات |

### الغلاف والمساعدة

| الأمر | ما يفعله |
|---|---|
| `oleafly completions` | يطبع إكمالات الغلاف لـ bash وzsh وfish وPowerShell وelvish |
| `oleafly man` | يطبع صفحة الدليل |
| `oleafly help exit-codes` | يشرح رموز الخروج |

### خيارات كل أمر

| الخيار | ما يفعله |
|---|---|
| `-C` متبوعًا بمسار | يشغّل الأمر على مجلد مشروع آخر |
| `--json` | يطبع نتيجة JSON واحدة |
| `--events` | يطبع التقدم كأسطر JSON قبل النتيجة |
| `--quiet` | يطبع النتيجة فقط |
| `--log` | يعرض سجل المجمّع `none` أو `tail` أو `full` |
| `--no-input` | لا يطرح سؤالًا أبدًا |
| `--color` | يستخدم اللون `auto` أو `always` أو `never` |

## مخرجات للنصوص البرمجية

### مخرجات JSON

مع `--json`، يطبع كل أمر كائن JSON واحدًا: `schema_version` و`ok` و`command` وحقول الأمر الخاصة و`warnings`. وعندما يفشل أمر، يحمل `error` قيمة `kind` و`code` ثابتًا و`message`. وعندما يفيد ذلك، يحمل أيضًا `hint` و`details`، و`"retryable": true` إذا كانت إعادة المحاولة قد تنجح. تحقق من `schema_version` قبل أن تعتمد على أي حقل.

```json
{
  "schema_version": 1,
  "type": "result",
  "ok": false,
  "command": "remote sync",
  "error": {
    "kind": "conflict",
    "code": "remote.conflicts",
    "message": "2 files changed both here and online.",
    "hint": "Pick a side with --resolve PATH=local or --resolve PATH=remote, then sync again.",
    "details": { "conflicts": ["main.tex", "refs.bib"] }
  },
  "warnings": []
}
```

يضيف `--events` سطر JSON واحدًا لكل حدث تقدم قبل النتيجة.

### رموز الخروج

يطبع `oleafly help exit-codes` الجدول نفسه.

| الرمز | المعنى |
|---|---|
| 0 | نجح الأمر |
| 1 | حدث خطأ داخل Oleafly |
| 2 | استُخدم الأمر استخدامًا خاطئًا، أو يحتاج إلى `--yes` ليمضي |
| 3 | المشروع مفقود أو غير صالح، أو مسار يشير إلى خارجه |
| 4 | أداة يحتاج إليها أو تطبيق Oleafly غير مثبّتة |
| 5 | فشل البناء |
| 6 | تحتاج إلى تسجيل الدخول |
| 7 | فشلت الشبكة |
| 8 | شيء آخر يحتجز المشروع، أو في المزامنة تعارضات |
| 9 | وجد فحص مشكلات |
| 130 | ضغطت Ctrl+C |

### الأسئلة واللون والسجلات

لا يطرح الأمر سؤالًا أبدًا دون طرفية. ويوقف `--no-input` الأسئلة أيضًا، وكذلك يفعل المتغير `CI`؛ والأمر الذي يحتاج إلى «نعم» يفشل عندئذ برمز الخروج 2 ويطلب `--yes`. ويوقف `NO_COLOR` أو `--color never` اللون. وتُرفض المسارات التي تخرج من المشروع.

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

| المتغير | الاستخدام |
|---|---|
| `OLEAFLY_DATA_DIR` | مجلد بيانات Oleafly، عندما لا يكون `~/.oleafly` |
| `OLEAFLY_TECTONIC`, `OLEAFLY_LATEXMK`, `OLEAFLY_TYPST`, `OLEAFLY_PANDOC` | مجمّع يُستخدم بدلًا من الذي يجده Oleafly |
| `OLEAFLY_APP` | تطبيق Oleafly الذي يشغّله `oleafly open` |
| `OLEAFLY_ONLINE_GIT_TOKEN` | رمز Git لخدمة LaTeX عبر الإنترنت، يُستخدم بدلًا من الرمز المحفوظ |
| `OLEAFLY_CLI` | يعيّنه Oleafly للبرامج التي يشغّلها: المسار الكامل للأمر |
| `CI` | عند تعيينه، لا يطرح الأمر سؤالًا أبدًا |
| `NO_COLOR` | عند تعيينه، لا يكون في المخرجات لون |

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

| ما تراه | ما تجرّبه |
|---|---|
| `oleafly` غير موجود | افتح طرفية جديدة. ثم تحقق بـ `Get-Command oleafly` على Windows أو `command -v oleafly` على macOS وLinux، وأضف السطر الذي تعرضه Settings إلى ملف تهيئة الغلاف لديك |
| يبلّغ `oleafly doctor` عن محرك ناقص | ثبّته بالأمر الذي يطبعه doctor، أو افتح المشروع في التطبيق مرة |
| عميل MCP لا يستطيع بدء الخادم | شغّل الأمر المهيأ في طرفية، واستخدم المسار الكامل من `oleafly mcp config`، وشغّل `oleafly doctor` |
| رمز الخروج 6 | شغّل `oleafly auth status`، ثم سجّل الدخول مرة أخرى |
| رمز الخروج 8 أثناء مزامنة | شغّل المزامنة مرة أخرى مع `--resolve` لكل ملف تسرده |
| على macOS، تقول Settings "Move Oleafly to your Applications folder first" | انقل التطبيق، وافتحه من Applications، ثم اختر **Install** |

## صفحات ذات صلة

- [مشاريع Typst](/docs/typst/#build-from-the-command-line)
- [الاتصال عبر MCP](/docs/mcp/)
- [وكلاء CLI](/docs/cli-agents/)
- [فحوصات Preflight](/docs/preflight/)
- [مهام البحث](/docs/research-tasks/)
