اقتراح OSC 7501 يتيح لأي برنامج إبلاغ الـ terminal بحالته في سطر واحد
المغزى: مع أدوات تعمل ساعات دون مراقبة، صار سؤال هل انتهى البرنامج أم ينتظر تدخلًا سؤالًا يوميًا، والاقتراح يستبدل تخمين الحالة من المخرجات بإعلان صريح يرسله البرنامج نفسه.
نشر Mitchell Hashimoto في 6 أكتوبر 2026 اقتراحًا باسم OSC 7501، يسمح لأي برنامج يعمل داخل الـ terminal بأن يعلن حالته بنفسه عبر escape sequence واحد. والـ escape sequence سلسلة أحرف خاصة يرسلها البرنامج إلى الـ terminal فيفهمها أمرًا لا نصًا يُعرض.
والمشكلة التي يعالجها مألوفة لمن يشغّل agent أو عملية build طويلة. فالبرنامج يعمل وحده فترة، ثم يتوقف منتظرًا ردًا، ولا يعرف المستخدم بذلك إلا إذا نظر إلى الشاشة. ولهذا لجأت أدوات كثيرة إلى تخمين حالة البرنامج من النص الذي يطبعه، وهو تخمين ينهار مع أول تغيير في صيغة المخرجات.
ويقوم الاقتراح على حقل إجباري واحد اسمه state، وله خمس قيم:
- القيمة idle: البرنامج ينتظر أمرًا.
- القيمة working: البرنامج يعمل، ويمكن أن ترافقها نسبة تقدم اختيارية.
- القيمة done: البرنامج انتهى وينتظر المراجعة.
- القيمة blocked: البرنامج متوقف ويحتاج تدخلًا.
- القيمة error: البرنامج فشل.
ويضاف إليه حقلان اختياريان: app لاسم البرنامج، وmsg لرسالة مشفرة بـ base64. ويصف المقال الاقتراح بأنه سهل الكتابة من سكربت POSIX sh عادي، بلا SDK ولا sockets ولا متغيرات بيئة ولا JSON. وهذا يعني أن أي أداة قائمة تستطيع إرساله دون مكتبة إضافية.
وقد نفّذه Hashimoto في libghostty وفي Rex، مع تجارب أولية في Terraform وClaude Code وHomebrew. لكنه ما زال اقتراحًا، وليس معيارًا معتمدًا، ونجاحه يتوقف على أن تتبناه الـ terminals والأدوات على نطاق أوسع.
وتأتي أهميته من تغير طبيعة العمل نفسه. فحين تعمل الأدوات ساعات دون مراقبة، يصبح معرفة ما إذا كانت قد انتهت أم تنتظر المستخدم سؤالًا متكررًا طوال اليوم، لا سؤالًا عابرًا. والاقتراح يحوّل الإجابة من استنتاج هش إلى إشارة صريحة.