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

# الموصّل المحلي

> أوامر zapbip هي connect وlisten وchannel: الوسائط ومتغيرات البيئة وعزل الإيقاظ والسجلات.

عادةً لا يقرأ الذكاء الاصطناعي لديك WhatsApp إلا إذا كان يعمل أصلًا. وإذا راسلته وهو خامل، فرسالتك تنتظر.

يحل موصّل zapbip هذه المشكلة. وهو برنامج صغير يبقى قيد التشغيل على حاسوبك. وعندما تكتب على WhatsApp، يوقظ جلسة الذكاء الاصطناعي التي تستخدمها، ويسلّمها رسالتك، ويدعها تردّ عليك. يستغرق ذلك نحو 7 ثوانٍ مع Claude Code، ونحو 6 مع Codex.

يعمل مع Claude Code وCodex. ويجب أن يكون حاسوبك قيد التشغيل ومستيقظًا، وأن يكون الموصّل يعمل.

## الأوامر

| الأمر | ما يفعله |
| - | - |
| `connect` | يوقظ الجلسة المغلقة عندما تكتب. يقبل `--client` و`--cwd` و`--session`. |
| `listen` | يطبع سطر JSON لكل رسالة، ليستخدمه وكيل يراقب أمرًا في الخلفية. |
| `channel` | يشغّل قناة MCP محلية تضع كل رسالة في جلسة Claude Code المفتوحة. |

يحفظ `ZAPBIP_CONNECTION_URL` رابط الاتصال. وإذا لم يُضبط، يسألك `connect` و`listen` عنه.

## ما الذي تحتاج إليه

* Claude Code أو Codex مربوطًا بـ zapbip.
* جلسة سابقة واحدة على الأقل في المجلد الذي تريد أن يعمل فيه الذكاء الاصطناعي.
* Node 24 أو أحدث.
* رابط اتصالك، وهو الرابط نفسه `https://.../c/<secret>/mcp` الذي يستخدمه الذكاء الاصطناعي لديك للتواصل مع zapbip. عامله كما تعامل كلمة المرور.

## التشغيل

افتح الطرفية في المجلد الذي تستخدم فيه الذكاء الاصطناعي، وشغّل أحد الأمرين:

```bash theme={null}
export ZAPBIP_CONNECTION_URL='https://<host>/c/<secret>/mcp'
npx zapbip@0.1.0 connect --client claude-code
```

```bash theme={null}
export ZAPBIP_CONNECTION_URL='https://<host>/c/<secret>/mcp'
npx zapbip@0.1.0 connect --client codex
```

إذا لم تضبط `ZAPBIP_CONNECTION_URL`، يسألك الموصّل عن الرابط. ولا يقبله وسيطًا أبدًا، لأن الوسائط تظهر في سجل الطرفية وفي قائمة العمليات.

أبقِ الطرفية مفتوحة. يطبع الموصّل سطرًا لكل حدث، ويتوقف عند `Ctrl+C`. ولإبقائه يعمل دون طرفية، راجع [التشغيل في الخلفية](https://docs.zapbip.com/ar/developers/background-running.md).

## ما الذي يحدث عندما تكتب

1. تراسل الذكاء الاصطناعي لديك على WhatsApp.
2. يتلقى الموصّل رسالتك ويوقظ أحدث جلسة في ذلك المجلد.
3. يقرأ الذكاء الاصطناعي رسالتك ويردّ عليك على WhatsApp.
4. وإذا وصلت عدة رسائل معًا، فتُعالج بالترتيب واحدة بعد أخرى.

وإذا كنت دون اتصال أو توقف الموصّل، فلا تضيع رسالتك. وعندما يعيد الاتصال يجلب كل الرسائل التي لم يُجَب عنها.

## اختيار الجلسة

افتراضيًا يستخدم الموصّل أحدث جلسة في المجلد. وإذا فتحت المجلد نفسه في نافذة أخرى، فقد ينضم إيقاظ إلى تلك المحادثة. ولتجنب ذلك ثبّت جلسة بعينها:

```bash theme={null}
npx zapbip@0.1.0 connect --client claude-code --session <session-id>
```

| الخيار | ما يفعله |
| - | - |
| `--client` | `claude-code` أو `codex`. مطلوب. |
| `--cwd` | مجلد العمل. افتراضيًا المجلد الذي شغّلت منه الأمر. |
| `--session` | معرّف الجلسة (UUID) التي تُستأنف دائمًا بدل أحدث جلسة. |

## ما الذي يستطيع الذكاء الاصطناعي فعله بعد الإيقاظ

شيء واحد فقط: أن يرسل لك رسالة ردًّا. يعطي الموصّل الذكاء الاصطناعي إعدادًا خاصًا لا يحتوي إلا zapbip، فلا تتوفر له أدوات خوادم MCP الأخرى لديك. ويعمل Claude Code أيضًا دون تحميل ملفات إعداداتك ومع تعطيل كل الأدوات المدمجة؛ ويعمل Codex في بيئة معزولة للقراءة فقط، وتُعطَّل خوادم MCP الأخرى التي يجدها في ملفات إعداد Codex لديك. وإذا تعذّرت عليه قراءة أحد هذه الملفات، لا يوقظ Codex بل يترك الرسالة غير مقروءة. ويرفض كذلك في الحالات التالية: ملف Codex مُدار يضبط أي مفتاح خارج قائمة قصيرة من المفاتيح غير الضارة، أو ملف إعداد يضبط البيئة المعزولة أو الموافقة أو الأدوات أو الميزات (أو أي مفتاح خارج القائمة)، أو ملف يفعّل مفتاح البحث على الويب، أو كان `zapbip` معرَّفًا في أي مكان غير `config.toml` في مجلد Codex الرئيسي. ويُعطَّل البحث على الويب في Codex. ويبقى لدى Codex الأداة `send_message` وصَدَفة للقراءة فقط؛ أما تطبيقات حساب Codex وموصّلاته فلا تُعطَّل، وتبقى سارية تفضيلات macOS المُدارة `com.openai.codex` وإعدادات السياسة المُدارة في Claude Code. وتصله رسالتك على أنها رسالتك أنت، بوسم «موثَّقة». أما الرسالة التي أعدت توجيهها من شخص آخر فتصله بوسم «غير موثَّقة» ووسم إعادة التوجيه، ولا يعاملها الذكاء الاصطناعي كتعليماتك.

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

## إبقاء الجلسة المفتوحة مستمعة

يوقظ `connect` الجلسات المغلقة. أما الجلسة المفتوحة الآن، فيستطيع Claude Code أن يسمعك فيها فورًا، دون إيقاظ ودون انتظار. وهناك طريقتان، والأولى أفضل.

القناة هي المفضّلة. وهي برنامج صغير يشغّله Claude Code نفسه كأي أداة أخرى. يمرّر كل رسالة تكتبها على WhatsApp مباشرةً إلى الجلسة المفتوحة، على أنها رسالتك أنت بوسم «موثَّقة» (وتوسَم الرسائل المعاد توجيهها بأنها غير موثَّقة). اضبط `ZAPBIP_CONNECTION_URL` في البيئة التي يعمل فيها Claude Code، فيشغّلها بالأمر:

```bash theme={null}
npx zapbip@0.1.0 channel
```

لا تستطيع القناة أن تسألك عن الرابط، لذا تقرؤه من `ZAPBIP_CONNECTION_URL` فقط. ولا تقبل وسائط.

صرّح بالخادمين في `.mcp.json` في المجلد الذي تعمل فيه. تُدخل القناة رسائلك؛ وخادم zapbip HTTP تحت المفتاح الآخر يمنح الجلسة الأداة `send_message` التي تردّ بها:

```json theme={null}
{
  "mcpServers": {
    "zapbip-channel": {
      "command": "npx",
      "args": ["zapbip@0.1.0", "channel"],
      "env": { "ZAPBIP_CONNECTION_URL": "https://<host>/c/<secret>/mcp" }
    },
    "zapbip": {
      "type": "http",
      "url": "https://<host>/c/<secret>/mcp"
    }
  }
}
```

تجيب الجلسة عبر `zapbip`. ومن دونه تسمعك الجلسة لكنها لا تستطيع الرد. ثم شغّل Claude Code بالأمر:

```bash theme={null}
claude --dangerously-load-development-channels server:zapbip-channel
```

`zapbip` هو مفتاح خادم القناة في `.mcp.json`. يعرض سطر التشغيل `Channels (experimental)`. وسيسألك Claude Code إن كنت تقبل قنوات التطوير وخوادم MCP للمشروع، فاقبلهما معًا.

المستمع هو البديل. يطبع سطرًا لكل رسالة تكتبها على WhatsApp، ويراقب Claude Code هذه الأسطر بأداة Monitor. يوقظ كل سطر الجلسة المفتوحة، ولا يستهلك شيئًا حين لا تتكلم:

```bash theme={null}
export ZAPBIP_CONNECTION_URL='https://<host>/c/<secret>/mcp'
npx zapbip@0.1.0 listen
```

كل سطر هو JSON يحمل معرّف الرسالة ونوعها و`"sender":"owner"` و`"verified"` (قيمته `true` لرسائلك أنت و`false` للمعاد توجيهها) و`"forwarded"` والنص. وتدوم مراقبة Monitor الواحدة 30 دقيقة على الأكثر، فيعيد الذكاء الاصطناعي المراقبة بعد كل انتهاء. ويمكن لوكلاء آخرين يُبقون أمرًا في الخلفية قيد التشغيل ويتفاعلون مع مخرجاته، مثل OpenClaw وHermes، أن يستخدموا `npx zapbip@0.1.0 listen` بالطريقة نفسها.

يبقى البرنامجان مفتوحين ويعيدان الاتصال تلقائيًا كما يفعل `connect`. وكلاهما لا يعلّم الرسالة بأنها عولجت إلا بعد تسليمها، فلا تضيع الرسائل ولا تظهر مرتين. وتُكتب سجلاتهما في خرج الأخطاء، ولا تحتوي رسائلك ولا رابطك.

لذلك تعمل الطرق الثلاث معًا: القناة للجلسة المفتوحة، و`listen` بديلًا عنها، و`connect` للجلسات المغلقة.

## موصّل واحد لكل اتصال

إذا شغّلت موصّلًا ثانيًا للاتصال نفسه، ينهي الأول الإيقاظ الجاري ثم يتوقف. شغّله على حاسوب واحد في كل مرة. وإذا وصلت رسالة في لحظة التبديل نفسها، فقد يوقظ الموصّلان الذكاء الاصطناعي لديك مرة لكل منهما للرسالة نفسها؛ فيضمن zapbip التسليم مرة واحدة على الأقل.

وما دام الموصّل متصلًا، يوقظ zapbip الذكاء الاصطناعي لديك عبره. وعندما يُغلق، يعود zapbip إلى إعدادك السابق.

## ما الذي يطبعه

كل سطر JSON يحمل الوقت وحدثًا، مثل `wake_started` و`wake_finished`. وتحتوي الأسطر معرّفًا ونوعًا ونتيجة ومدة، ولا تحتوي رسائلك ولا ردود الذكاء الاصطناعي ولا رابط اتصالك.

## عندما يحدث خطأ

| ما تراه | معناه |
| - | - |
| يخرج الموصّل فورًا | الرابط غير معروف أو أُبطل. اطلب رابطًا جديدًا. |
| رسالتك لا تُجاب | لا توجد جلسة بعد في ذلك المجلد، أو لم يُثبَّت `claude` أو `codex` في المكان الذي يعمل فيه الموصّل. افتح الذكاء الاصطناعي مرة في ذلك المجلد أولًا. |
| يعيد الاتصال باستمرار | انقطعت شبكتك. يعيد المحاولة بفواصل تتزايد حتى 30 ثانية، ويجلب الرسائل من حيث توقف. |
| توقف من تلقاء نفسه | شغّلت موصّلًا آخر للاتصال نفسه. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.