> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dodo CLI

> واجهة سطر الأوامر الرسمية لـ Dodo Payments — إدارة الموارد، تشغيل الاستفسارات المدعومة بالذكاء الاصطناعي، إنشاء جلسات الدفع، واختبار webhooks من جهازك.

قم بإدارة موارد Dodo Payments، وتشغيل الاستفسارات المدعومة بالذكاء الاصطناعي على حسابك، وإنشاء جلسات الدفع، واختبار webhooks - كل ذلك من الطرفية. تأتي CLI مع واجهة مستخدم تفاعلية، ومساعد ذكاء اصطناعي مدمج مدعوم من MCP، واختبار webhook خارج الخط.

<Frame>
  <iframe className="w-full aspect-video rounded-md" src="https://www.youtube.com/embed/gwtvQsANbW4" title="Dodo CLI | Dodo Payments" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</Frame>

## الميزات

* **واجهة مستخدم تفاعلية** — قم بتشغيل `dodo` دون وجود أي وسيطات لفتح الواجهة التفاعلية بالكامل مع لوحة الأوامر، والتاريخ، والإشعارات الحية.
* **المساعد الذكي المدمج** — اطرح الأسئلة أو قم بالإجراءات باللغة الإنجليزية العادية مع `/ai`. لا تتطلب إعدادًا إضافيًا، يعمل `dodopayments-mcp` محلياً.
* **آمن افتراضيًا** — يتم تخزين مفاتيح API في مخزن سرية النظام (macOS Keychain، Windows Credential Vault، Linux libsecret). لا يوجد إعداد نص عادي على القرص.
* **تحديث تلقائي** — تقوم CLI بالتحقق من الإصدارات الجديدة عند بدء التشغيل وتبلغك داخل التطبيق. قم بتشغيل `/update` للترقية في المكان.
* **أدوات Webhook** — استمع إلى webhooks الحية أو قم بتشغيل الحمولة خارج الخط للتطوير المحلي.

## التثبيت

قم بتثبيت CLI في سطر واحد على macOS أو Linux:

```bash theme={null}
curl -fsSL https://dodopayments.com/install.sh | sh
```

### التثبيت باستخدام npm أو Bun

إذا كان لديك بالفعل Node أو Bun، فالتثبيتات باستخدام مدير الحزم تسحب دائمًا الإصدار الأحدث:

<CodeGroup>
  ```bash npm theme={null}
  npm install -g dodopayments-cli
  ```

  ```bash Bun theme={null}
  bun install -g dodopayments-cli
  ```
</CodeGroup>

### التثبيت اليدوي (لا يلزم Node / Bun)

إذا كنت تفضل عدم توجيه سكريبت عن بعد إلى `sh`، قم بتحميل الملف الثنائي بنفسك.

<Steps>
  <Step title="Download the binary">
    قم بتحميل الملف الثنائي لمنصتك من [GitHub Release](https://github.com/dodopayments/dodopayments-cli/releases) الأحدث.

    | المنصة                | الملف الثنائي              |
    | --------------------- | -------------------------- |
    | macOS (Apple Silicon) | `dodo-cli-darwin-arm64`    |
    | macOS (Intel)         | `dodo-cli-darwin-x64`      |
    | Linux (x86\_64)       | `dodo-cli-linux-x64`       |
    | Linux (arm64)         | `dodo-cli-linux-arm64`     |
    | Windows (x86\_64)     | `dodo-cli-windows-x64.exe` |
  </Step>

  <Step title="Rename the binary to `dodo`">
    <CodeGroup>
      ```bash Linux / macOS theme={null}
      mv ./dodo-cli-* ./dodo && chmod +x ./dodo
      ```

      ```powershell Windows theme={null}
      ren .\dodo-cli-windows-x64.exe .\dodo.exe
      ```
    </CodeGroup>
  </Step>

  <Step title="Move it to a directory on your PATH">
    <CodeGroup>
      ```bash Linux / macOS theme={null}
      sudo mv ./dodo /usr/local/bin/
      ```

      ```powershell Windows theme={null}
      move .\dodo.exe C:\Windows\System32\dodo.exe
      ```
    </CodeGroup>

    <Info>
      على Windows، يتطلب النقل إلى `C:\Windows\System32` صلاحيات المسؤول.
    </Info>
  </Step>

  <Step title="(Optional) Verify the download">
    كل إصدار ينشر `SHA256SUMS.txt`. تحقق من تحميلك بواسطة:

    ```bash theme={null}
    shasum -a 256 -c SHA256SUMS.txt
    ```
  </Step>
</Steps>

## المصادقة

قبل استخدام الأوامر المصادق عليها، قم بتسجيل الدخول باستخدام مفتاح API الخاص بك:

```bash theme={null}
dodo login
```

أو، من داخل واجهة المستخدم:

```text theme={null}
/login
```

تدفق تسجيل الدخول سيقوم بـ:

1. فتح متصفحك إلى صفحة مفاتيح API لـ Dodo Payments.
2. يُطلب منك لصق مفتاح API الخاص بك.
3. يطلب منك تحديد بيئة — **وضع الاختبار** أو **الوضع المباشر**.
4. تخزين الاعتمادات في مخزن سرية النظام (Keychain على macOS، وCredential Vault على Windows، وlibsecret على Linux).

<Info>
  لأن الاعتمادات مخزنة في مخزن سرية النظام، قد يُطلب منك تقديم **كلمة مرور الجهاز** الخاصة بك لأول مرة تقرأ فيها CLI أو تكتب الاعتمادات. إذا كنت تُرقّي من إصدار سابق، فسيتم **نقل** أي مفتاح API نصي موجود إلى مخزن السرية وحذف الملف القديم تلقائيًا.
</Info>

### التبديل بين الأوضاع وتسجيل الخروج

يمكنك الاحتفاظ بمفتاح واحد مصادق عليه لـ **وضع الاختبار** و**الوضع المباشر** في نفس الوقت. لمسح الاعتمادات:

<CodeGroup>
  ```bash Direct theme={null}
  dodo logout
  ```

  ```text TUI theme={null}
  /logout
  ```
</CodeGroup>

يسمح لك تدفق تسجيل الخروج بالاختيار بين **جميع الحسابات**، **وضع الاختبار**، أو **الوضع المباشر** بشكل مستقل.

## الاستخدام

يمكنك استخدام CLI في وضعين.

### 1. واجهة المستخدم التفاعلية (موصى بها)

قم بتشغيل `dodo` دون وجود أي وسيطات لبدء الواجهة التفاعلية الكاملة:

```bash theme={null}
dodo
```

اكتب `/` لفتح لوحة الأوامر، أو ابدأ بالكتابة مباشرة — يتم إرسال أي شيء ليس أمرًا بشريون إلى المساعد الذكي.

| الأمر     | الوصف                                                       |
| --------- | ----------------------------------------------------------- |
| `/help`   | عرض مرجع الأوامر                                            |
| `/update` | التحقق من وجود تحديث لـ CLI وتثبيته                         |
| `/login`  | المصادقة بمفتاح API                                         |
| `/logout` | تسجيل الخروج من بيئة واحدة أو جميعها                        |
| `/clear`  | مسح شاشة TUI                                                |
| `/exit`   | الخروج من TUI (أيضًا: اكتب `exit`، أو اضغط على `Esc` مرتين) |

### 2. الأوامر الفرعية المباشرة

قم بتشغيل الأوامر مباشرة دون الدخول إلى TUI:

```bash theme={null}
dodo <category> <sub-command> [args...]
```

على سبيل المثال:

```bash theme={null}
dodo payments list 1
dodo customers create
dodo wh trigger
```

تظهر جداول المراجع أدناه كل أمر. في TUI، قم بتقديمها بـ `/`؛ في الوضع المباشر، أسقط `/`.

## المساعد الذكاء الاصطناعي

استخدم اللغة الطبيعية لطرح الأسئلة أو اتخاذ الإجراءات. يستخدم المساعد `dodopayments-mcp` بشكل محلي — لا يتطلب إعدادًا إضافيًا أو تدفق OAuth، ولا يترك مرور الذكاء الاصطناعي جهازك إلا للتحدث مع موفر النموذج.

| الأمر                      | الوصف                                                         |
| -------------------------- | ------------------------------------------------------------- |
| `/ai <query>`              | اسأل المساعد الذكي سؤالًا أو قدم له تعليمًا                   |
| *(أي نص ليس أمرًا بشريون)* | يتم إرساله إلى المساعد الذكي بشكل افتراضي أثناء تواجدك في TUI |

أمثلة:

```text theme={null}
how much revenue did I make this week?
/ai create a new customer named Acme Inc.
/ai find my last failed payment
```

<Tip>
  يحترم المساعد البيئة النشطة الخاصة بك (الاختبار / المباشر)، لذا فهو يعمل فقط على البيانات من البيئة التي سجلت فيها الدخول حاليًا.
</Tip>

## هيكل المشروع

`dodo init` يقوم ببناء مسارات الفواتير لـ Dodo Payments مباشرة في مشروع موجود. يقوم بإنشاء ملفات الطريق النموذجية، يثبت حزمة `@dodopayments/*` المتوافقة، ويكتب متغيرات البيئة `DODO_PAYMENTS_*` بأمان إلى `.env` الخاصة بك (فقط يضيف المتغيرات غير الموجودة بالفعل). يعمل الأمر **بدون تسجيل الدخول**.

```bash theme={null}
dodo init <framework>
```

| السقالة                 | الوصف                                                                                                                    |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `dodo init nextjs`      | بناء مسارات فوترة لـ Next.js App Router (عملية الشراء، بوابة العملاء، ومعالجات webhooks) باستخدام `@dodopayments/nextjs` |
| `dodo init express`     | بناء مسارات فوترة خادم Express باستخدام `@dodopayments/express`                                                          |
| `dodo init better-auth` | بناء تكوين ملحق Better-Auth باستخدام `@dodopayments/better-auth`                                                         |

بالنسبة للسقالة Better-Auth، يمكنك تمرير قائمة ملحقات مفصولة بفواصل لتوليدها (الافتراضي لجميعها): `checkout`، `portal`، `usage`، `webhooks`.

```bash theme={null}
# Scaffold every Better-Auth plugin (default)
dodo init better-auth

# Scaffold only specific plugins
dodo init better-auth checkout,portal
```

<Info>
  السقالة تكتشف تلقائيًا دليل `src/` وتضبط مسارات المخرجات وفقًا لذلك، وتكتشف تلقائيًا مدير الحزم الخاص بك (`bun`، `pnpm`، `yarn`، أو `npm`) لتشغيل أمر التثبيت الصحيح.
</Info>

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

### المنتجات

إدارة كتالوج المنتجات الخاص بك.

| الأمر                       | الوصف                        |
| --------------------------- | ---------------------------- |
| `dodo products list <page>` | قائمة المنتجات               |
| `dodo products create`      | افتح لوحة التحكم لإنشاء منتج |
| `dodo products info <id>`   | عرض التفاصيل لمنتج معين      |

### المدفوعات

عرض معاملات الدفع.

| الأمر                       | الوصف                           |
| --------------------------- | ------------------------------- |
| `dodo payments list <page>` | قائمة المدفوعات                 |
| `dodo payments info <id>`   | الحصول على معلومات حول دفع معين |

### العملاء

إدارة قاعدة العملاء الخاصة بك.

| الأمر                        | الوصف            |
| ---------------------------- | ---------------- |
| `dodo customers list <page>` | قائمة العملاء    |
| `dodo customers create`      | إنشاء عميل جديد  |
| `dodo customers update <id>` | تحديث عميل موجود |

### الخصومات

إدارة القسائم والخصومات.

| الأمر                        | الوصف                                   |
| ---------------------------- | --------------------------------------- |
| `dodo discounts list <page>` | قائمة الخصومات                          |
| `dodo discounts create`      | إنشاء خصم جديد يعتمد على النسبة المئوية |
| `dodo discounts delete <id>` | إزالة خصم بواسطة معرف                   |

### التراخيص

إدارة تراخيص البرامج.

| الأمر                       | الوصف          |
| --------------------------- | -------------- |
| `dodo licences list <page>` | قائمة التراخيص |

### الإضافات

إدارة الإضافات للمنتجات.

| الأمر                     | الوصف                         |
| ------------------------- | ----------------------------- |
| `dodo addons list <page>` | قائمة الإضافات                |
| `dodo addons create`      | افتح لوحة التحكم لإنشاء إضافة |
| `dodo addons info <id>`   | عرض التفاصيل لإضافة معينة     |

### الاستردادات

عرض معلومات الاسترداد.

| الأمر                      | الوصف                      |
| -------------------------- | -------------------------- |
| `dodo refunds list <page>` | قائمة الاستردادات          |
| `dodo refunds info <id>`   | عرض التفاصيل لاسترداد معين |

### الدفع

إنشاء جلسات دفع مستضاف.

| الأمر               | الوصف                                               |
| ------------------- | --------------------------------------------------- |
| `dodo checkout new` | إنشاء جلسة دفع تفاعلية مستضافة والحصول على رابط دفع |

## Webhooks

يتضمن CLI أداتين قويتين لاختبار webhooks أثناء التطوير: **مستمع** ينقل webhooks الاختبارية المباشرة إلى خادمك المحلي، و **محفز** يرسل تحميلات سعر وهمية إلى أي نقطة نهاية.

| الأمر             | الوصف                                                                           |
| ----------------- | ------------------------------------------------------------------------------- |
| `dodo wh listen`  | الاستماع للـ webhooks في الوقت الفعلي وتحويلها إلى خادم التطوير المحلي الخاص بك |
| `dodo wh trigger` | حفز حدث webhook اختباراً تفاعلياً — حتى أثناء تسجيل الخروج                      |

### استمع للـ webhooks

حول webhooks من Dodo Payments مباشرة إلى خادم التطوير المحلي الخاص بك في الوقت الفعلي.

```bash theme={null}
dodo wh listen
```

<Steps>
  <Step title="Enter your local endpoint URL">
    قدم عنوان URL المحلي حيث تريد تلقي webhooks (على سبيل المثال، `http://localhost:3000/webhook`).
  </Step>

  <Step title="Automatic setup">
    ينشئ CLI تلقائيًا نقطة نهاية webhook على حساب Dodo Payments الخاص بك إذا لم تكن موجودة بالفعل، ثم يفتح اتصال WebSocket لتلقي الأحداث في الوقت الفعلي.
  </Step>

  <Step title="Receive and forward">
    عند إطلاق حدث webhook (من دفعة اختبار، تغيير اشتراك، إلخ.)، يستقبله CLI، يسجل نوع الحدث، ويحوله الطلب الكامل مع الرؤوس والجسم إلى نقطة النهاية المحلية الخاصة بك. يتم تسجيل الرد من نقطة النهاية الخاصة بك وإرجاعه.
  </Step>
</Steps>

<Warning>
  `dodo wh listen` يتطلب مفتاح API في **وضع الاختبار**. لا يتم دعم المفاتيح التفاعلية في وضع الاستماع.
</Warning>

<Tip>
  المستمع يحافظ على رؤوس الـ webhook الأصلية (`webhook-id`، `webhook-signature`، `webhook-timestamp`) عند التحويل إلى نقطة النهاية المحلية الخاصة بك، حتى تتمكن من اختبار منطق التحقق من توقيعك.
</Tip>

### تحفيز webhooks التجريبية

إرسال حمولات webhooks وهمية إلى أي نقطة نهاية لاختبار سريع دون الحاجة إلى إنشاء معاملات حقيقية.

```bash theme={null}
dodo wh trigger
```

يوجهك تدفق `/wh trigger` خلال:

1. إعداد عنوان URL لنقطة النهاية **الإخراج**
2. اختيار **حدث** معين لتحفيزه من قائمة تفاعلية

<Info>
  `dodo wh trigger` لا يتطلب تسجيل الدخول. إنه يعمل كمولد حمولات webhook محلي/غير متصل بالشبكة.
</Info>

<Warning>
  الأحداث المحفزة **غير موقعة**. أثناء الاختبار، قم بتعطيل التحقق من توقيع الـ webhook في نقطة النهاية الخاصة بك — على سبيل المثال، استخدم `unsafe_unwrap()` بدلاً من `unwrap()` في معالج الـ webhook **أثناء الاختبار فقط**.
</Warning>

### أحداث webhook المدعومة

| الفئة         | الأحداث                                                                                     |
| ------------- | ------------------------------------------------------------------------------------------- |
| **الاشتراك**  | `active`، `updated`، `on_hold`، `renewed`، `plan_changed`، `cancelled`، `failed`، `expired` |
| **الدفع**     | `succeeded`، `failed`، `processing`، `cancelled`                                            |
| **الاسترداد** | `succeeded`، `failed`                                                                       |
| **النزاع**    | `opened`، `expired`، `accepted`، `cancelled`، `challenged`، `won`، `lost`                   |
| **الترخيص**   | `created`                                                                                   |

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

| المتغير                   | الوصف                                                                        |
| ------------------------- | ---------------------------------------------------------------------------- |
| `DODO_WH_TEST_SERVER_URL` | تجاوز عنوان URL لخادم الـ webhook الافتراضي المستخدم بواسطة `dodo wh listen` |

## التحديثات

يتحقق CLI من وجود إصدار أحدث عند بدء التشغيل ويعرض إشعارًا في شريط الحالة عند توفره. للترقية:

```text theme={null}
/update
```

أو، أعد تشغيل المثبت للترقية مباشرة:

<CodeGroup>
  ```bash install.sh theme={null}
  curl -fsSL https://dodopayments.com/install.sh | sh
  ```

  ```bash npm theme={null}
  npm install -g dodopayments-cli
  ```

  ```bash Bun theme={null}
  bun install -g dodopayments-cli
  ```
</CodeGroup>

## الموارد

<CardGroup cols={2}>
  <Card title="GitHub Repository" icon="github" href="https://github.com/dodopayments/dodopayments-cli">
    عرض كود المصدر والإصدارات
  </Card>

  <Card title="npm Package" icon="npm" href="https://www.npmjs.com/package/dodopayments-cli">
    عرض على سجل npm
  </Card>
</CardGroup>

## الدعم

* **Discord**: انضم إلى [خادم المجتمع](https://discord.gg/bYqAp4ayYh)
* **GitHub**: افتح قضية على [المستودع](https://github.com/dodopayments/dodopayments-cli/issues)
* **البريد الإلكتروني**: اتصل بنا عبر [support@dodopayments.com](mailto:support@dodopayments.com)
