إشعارات Codex: احصل على تنبيه عندما ينتهي أو ينتظر الموافقة
يمكن لـ Codex أن يخبرك متى ينتهي دور (turn) ومتى يحتاج إلى موافقتك. لكن هناك مشكلة: الآليتان الموجودتان في ملف التهيئة تغطيان أحداثًا مختلفة، وفي معظم الطرفيات يتحول «إشعار سطح المكتب» بصمت إلى جرس.
الإجابة المختصرة
استخدم القسم [tui]: notifications = ["agent-turn-complete", "approval-requested"]، وnotification_condition = "always" إذا أردت التنبيهات حتى أثناء تركيزك على الطرفية. لا يرسل Codex إشعار سطح المكتب (OSC 9) إلا في Ghostty وiTerm2 وKitty وWarp وWezTerm. وفي كل مكان آخر، بما في ذلك Windows Terminal، يقرع الجرس. أما الإعداد notify في المستوى الأعلى فيشغّل برنامجك الخاص، لكن فقط عند agent-turn-complete، وليس عند الموافقات أبدًا.
إعدادان مختلفان
| [tui] notifications | notify | |
|---|---|---|
| ماذا يفعل | تنبيه في الطرفية من Codex CLI | يشغّل برنامجًا تختاره |
| اكتمال الدور | نعم (agent-turn-complete) | نعم (agent-turn-complete) |
| طلب موافقة | نعم (approval-requested) | لا |
| طلبات الخطة / الأسئلة | نعم (plan-mode-prompt وasync-question) | لا |
| الافتراضي | مفعّل | معطّل |
إذا أردت أن تعرف متى ينتظرك Codex، فإن notify وحده لن يفعل ذلك أبدًا. استخدم إشعارات TUI لهذا الغرض.
إشعارات TUI
هذا هو الجزء المعني من مثال التهيئة لدى OpenAI:
notifications: trueأوfalseأو قائمة أحداث. يغطيapproval-requestedطلبات الموافقة على الأوامر وتعديلات الملفات وMCP.notification_condition: افتراضيًا لا تُطلَق التنبيهات إلا عندما لا تكون الطرفية في وضع التركيز. اضبطalwaysإذا كنت تُبقي الطرفية ظاهرة على شاشة أخرى.notification_method:autoأوosc9أوbel.
تبدو الرسائل مثل «Approval requested: <command>» و«Codex wants to edit <file>» و«Agent turn complete».
لماذا لا تسمع سوى صفير (Windows Terminal وغيرها)
في وضع auto لا يرسل Codex إشعار سطح المكتب (تسلسل الهروب OSC 9) إلا عندما يتعرف على Ghostty أو iTerm2 أو Kitty أو Warp أو WezTerm. كل طرفية أخرى (Windows Terminal، وطرفية VS Code، وApple Terminal) تحصل على جرس الطرفية. هذا مأخوذ من الشيفرة المصدرية لـ Codex (tui/src/notifications/mod.rs)؛ أما الوثائق فتقول فقط إن auto «prefers OSC 9» (يفضّل OSC 9).
في Windows Terminal يمكنك جعل الجرس أوضح: اضبط bellStyle على all في إعدادات ملف التعريف ليشغّل صوتًا ويجعل أيقونة شريط المهام تومض (القيمة الافتراضية audible).
يمكنك أيضًا فرض notification_method = "osc9"؛ أما تحويله إلى إشعار نظام فيعتمد على الطرفية.
شغّل برنامجك الخاص باستخدام notify
يشغّل notify برنامجًا خارجيًا عند اكتمال الدور ويمرّر إليه وسيطة JSON واحدة تحتوي على type وthread-id وturn-id وcwd وinput-messages وlast-assistant-message. وهذا يجعله مناسبًا لإشعار على الهاتف، أو webhook، أو سجل: أي شيء خارج الطرفية. إنه مفتاح في المستوى الأعلى، لذا ضعه فوق أي [section]:
سكربت بسيط، على غرار السكربت الموجود في وثائق OpenAI:
- لا يمكن لملف
.codex/config.tomlالخاص بالمشروع ضبطnotify. يجب أن يكون في تهيئة المستخدم. - تصنّف الشيفرة المصدرية لـ Codex الإعداد
notifyعلى أنه قديم وتخطط لاستبداله بالخطافات. إنه يعمل اليوم؛ تابع سجل التغييرات.
ماذا عن الخطافات؟
لدى Codex خطافات أيضًا. وهي مفعّلة افتراضيًا وتتضمن الحدثين PermissionRequest وStop، وتُهيّأ في ~/.codex/hooks.json أو في جدول [hooks]، ويجب مراجعة كل خطاف غير مُدار والوثوق به عبر /hooks قبل أن يعمل. لا يوجد حدث Notification، ولا تعرض وثائق OpenAI خطاف إشعارات. للتنبيهات، إعداد TUI أعلاه هو المسار الموثّق.
تطبيق Codex وإضافة بيئة التطوير
لتطبيق Codex لسطح المكتب عناصر تحكم خاصة به: يمكن ضبط تنبيهات اكتمال الدور على «أبدًا»، أو «فقط عندما يكون التطبيق في الخلفية»، أو «دائمًا»، وهناك مفاتيح منفصلة لتشغيل إشعارات الأذونات والأسئلة أو إيقافها. لا تحتوي إضافة بيئة التطوير على إعدادات إشعارات خاصة بها. وتحيلك وثائق OpenAI إلى notify بدلًا من ذلك.
إذا كنت توافق من هاتفك عبر تطبيق ChatGPT، فإن المشكلة #39346 تُبلغ عن حالة يعرض فيها الهاتف «approval waiting» (موافقة بانتظارك) دون بطاقة للرد عليها.
أن تراه، وأن ترد عليه
الجرس يخبرك بأن شيئًا ما حدث في طرفية ما. يعرض Pet Island حالة Codex في جزيرة صغيرة أعلى الشاشة (يعمل، أو ينتظر، أو انتهى)، وعندما يطلب Codex تشغيل أمر أو تعديل ملف، يظهر الطلب هناك مع الأمر أو الفروقات (diff). اسمح به أو ارفضه دون التبديل بين النوافذ؛ وبالنسبة للأسئلة، تنقلك نقرة واحدة إلى الطرفية الصحيحة. يعمل مع Codex CLI وتطبيق Codex، إلى جانب Claude Code وCursor وبقية وكلائك.
الأسئلة الشائعة
كيف أحصل على إشعار عندما ينتهي Codex؟
إشعارات TUI في Codex مفعّلة افتراضيًا لحدث agent-turn-complete، لكنها افتراضيًا لا تُطلَق إلا عندما لا تكون الطرفية في وضع التركيز. اضبط notification_condition = "always" في [tui] إذا أردتها أثناء التركيز.
كيف أحصل على إشعار عندما يحتاج Codex إلى موافقة؟
أضف "approval-requested" إلى notifications في القسم [tui] من ~/.codex/config.toml. الإعداد notify لا يُطلَق عند الموافقات.
لماذا يكتفي Codex بالصفير بدلًا من عرض إشعار؟
في وضع auto لا يرسل Codex إشعار سطح المكتب إلا في Ghostty وiTerm2 وKitty وWarp وWezTerm. أما الطرفيات الأخرى، ومنها Windows Terminal، فتحصل على الجرس.
هل يمكنني وضع notify في ملف .codex/config.toml الخاص بمشروعي؟
لا. لا يمكن لتهيئة المشروع ضبط notify؛ ضعه في ~/.codex/config.toml.
هل لدى Codex خطاف Notification؟
لا. تتضمن خطافات Codex الحدثين PermissionRequest وStop، لكن لا يوجد حدث Notification ولا خطاف إشعارات موثّق.
المصادر
راجعنا كل إعداد وسلوك في هذه الصفحة مقابل هذه الصفحات بتاريخ 26 أكتوبر 2026. الوكلاء يتغيرون بسرعة؛ فإذا لم يعد شيء مطابقًا، فالمرجع هو الصفحة الرسمية.
- OpenAI: مثال تهيئة Codex
- OpenAI: التهيئة المتقدمة في Codex (notify)
- OpenAI: إشعارات Codex
- OpenAI: خطافات Codex
- الشيفرة المصدرية لـ openai/codex: tui/src/notifications/mod.rs
- الشيفرة المصدرية لـ openai/codex: tui/src/chatwidget/notifications.rs
- المشكلة #39346: يعرض الهاتف أن هناك موافقة بانتظارك دون بطاقة موافقة
- Microsoft Learn: إعدادات ملف التعريف في Windows Terminal (bellStyle)