
شنو هو Codenotch؟
Codenotch هو تطبيق ديال macOS كيثبّت شقّ أسود وصغير فشي حافة من حواف الشاشة. الدواير ديالو كيبينو شحال تستهلك من حدّ الاستعمال ديال كل مساعد برمجي مدعوم، وكيبيّنو حتى واش السيشن خدامة، سالات، ولا كتسنى الإدخال.
الشق كيبقى بحال حبّة صغيرة ملي كيكون ساكت، وكيتوسّع ملي المؤشر كيوصل عندو. ملي كتدوز فوق دائرة ديال شي مزوّد، كيبانو نوافذ الحدود ديالو وأوقات إعادة الضبط. بالنسبة لـ Claude Code، الدائرة الرئيسية كتمثّل نفس نافذة السيشن الحالية اللي كيبينها Claude Code اللولة فالأمر /usage.
Codenotch كيراقب حتى نشاط السيشنات. قوس رقيق كيدور داخل دائرة المزوّد ملي كتكون السيشن خدامة. إلا كانت السيشن محتاجة الانتباه ديالك، كتبدّل الدائرة للحالة الكهرمانية النابضة. ملي كتدوز فوقها، كيبانو أسماء السيشنات مباشرة، فين خدامين، وشنو محتاجين.
المزوّدين المدعومين ومصادر البيانات
Codenotch ما عندوش نظام حسابات مستقل وما كيطلبش منك تسجّل الدخول. كيقرا بيانات الدخول ولا السيشنات اللي راه مخزّنين من قبل فالأدوات المدعومة فـ Mac ديالك.
- Claude Code: كيستعمل رمز OAuth المخزّن فـ login keychain وكيستعمل نفس النقطة الطرفية اللي كيستعملها الأمر
/usageديال Claude Code. - Cursor: كيقرا السيشن اللي داخل بها فالمحرّر من الحالة المحلية ديال SQLite.
- Codex: كيسول خادم تطبيق Codex اللي خدام على الحدود الحالية ديال المعدّل. إلا ما كانش Codex خدام، Codenotch كيرجع لسجلّ rollout ديالو.
- Antigravity: كيجرب خادم اللغة المحلي اللول، ومن بعد النقطة الطرفية ديال الحصة ديال Google. إلا ما عطا حتى واحد فيهم بيانات الحصة ديال الحساب، كيعرض غير عدد الطلبات.
- GLM: كيتاصل بالنقطة الطرفية ديال مراقبة Coding Plan ديال Z.ai باستعمال مفتاح راه مخزّن من قبل فـ
settings.jsonديال Claude Code، ولا ZCode، ولا OpenCode.
ثبّت الأداة المدعومة وسجّل الدخول فيها بالطريقة العادية. ملي كيكتاشف Codenotch السيشن المحلية ولا بيانات الدخول ديالها، كيبان المزوّد المطابق. تعطيل شي مزوّد من Settings كيوقف Codenotch من قراية بيانات الدخول ديالو وكيحيد القراءات المخزّنة، بلا ما يخرّجك من الأداة الأصلية.
المزايا الرئيسية
- دواير الاستعمال ديال Claude Code وCursor وCodex وAntigravity وGLM.
- تفاصيل نوافذ إعادة الضبط ملي كتدوز فوق الدائرة.
- حالات مباشرة ديال السيشنات اللي خدامة واللي كتسنى.
- اكتشاف أوتوماتيكي لعدة إعدادات ديال Claude Code.
- إمكانية وضعو فالحافة الفوقانية، التحتانية، اليسرى، ولا اليمنى ديال الشاشة.
- تصاميم كتتأقلم مع المساحة القابلة للاستعمال فالشاشة، ومكان Dock، والشقّ المادّي.
- أيقونة اختيارية فـ Dock، ولا فشريط القوائم، ولا بلا حتى وحدة.
- تحققات يومية من التحديثات فالخلفية عبر Sparkle.
- حالات ظاهرة بحال
staleوneedsAuthوerrorبلا النسب المقدّرة.
بناء وتشغيل Codenotch
المتطلبات القبلية
المشروع هو تطبيق macOS مولّد بـ XcodeGen. ثبّت XcodeGen مرة وحدة باستعمال Homebrew:
brew install xcodegen
من نسخة محلية من المستودع، ولّد المشروع، وبنيه، وشغّل نسخة Debug:
make run
ما كايناش حاجة لهوية توقيع فنسخة Debug.
شغّل الاختبارات
استعمل هدف الاختبارات ديال المشروع باش تتأكد من محوّلات المزوّدين ومن السلوكات الأخرى:
make test
أشكال استجابات المزوّدين مثبتة فالاختبارات، حيث إن النقاط الطرفية الداخلية، وقواعد البيانات المحلية، وواجهات RPC يقدرو يتبدلو بلا إشعار.
استعمل بيانات تجريبية
إلا بغيتي تشوف الواجهة بلا ما يقرا Codenotch بيانات مباشرة من المزوّدين، شغّل التطبيق بـ CODENOTCH_DEMO=1:
CODENOTCH_DEMO=1 make run
الوضع التجريبي كيوفّر بيانات نموذجية ثابتة، ومفيد لتطوير الواجهة، ومراجعة التخطيط، والتقاط الصور.
make releaseماشي جزء من الإعداد المحلي العادي. كيحتاج شهادة Developer ID وبروفايل notarization ديال App Store Connect، وكيتستعمل من طرف المسؤول على الصيانة باش يدير الأرشفة، والتوثيق، وينتج موجّه التحديثات التلقائية الموقّع.
الاستعمال الأساسي
1. سجّل الدخول من خلال الأداة الخاصة بالمزوّد
حلّ أداة البرمجة اللي بغيتي تراقب وسجّل الدخول فيها. Codenotch عمره كيدير تسجيل الدخول بلاصتك. مثلا، دير المصادقة من خلال Claude Code ولا Cursor بالطريقة العادية، ومن بعد شغّل Codenotch.
2. راقب دواير المزوّدين
كل مزوّد مكتاشف كيبان فشكل دائرة داخل الشق. استعمل الدائرة باش تعرف شحال تستهلك من الحد المتاح. دوز فوقها باش تشوف نوافذ الحدود المتاحة وأوقات إعادة الضبط ديالها.
3. راقب حالة السيشن
ملي كتكون شي سيشن مدعومة خدامة، قلّب على القوس الرقيق اللي كيدور داخل الدائرة ديالها. الدائرة الكهرمانية النابضة كتعني أن السيشن توقفات وكتسناك. دوز فوقها باش تشوف اسم السيشن، المكان ديالها، والعملية المطلوبة.
4. كوّن الشق
حلّ Settings من خلال الكرة اللي تحت الشق. فحالة السكون كتبان بحال قوس، وملي كتدوز فوقها كتولي ترس. Settings كتخليك تتحكم واش الشق يتفتح ملي كتدوز فوقو، يبقى باين، ولا يختفى كامل.
وتقدر حتى تختار واش Codenotch يبيّن أيقونة فـ Dock، ولا أيقونة فشريط القوائم، ولا بلا حتى وحدة.
5. اختار حافة من حواف الشاشة
حطّ الشق فشي وحدة من الحواف الأربعة:
- اليسرى ولا اليمنى: قراءات المزوّدين كيبانو فعمود عمودي.
- الفوقانية ولا التحتانية: قراءات المزوّدين كيبانو حدّ حدّ.
Codenotch كيتبع الحافة القابلة للاستعمال فالشاشة. الوضعية التحتانية كتبقى فوق Dock وكتتفاعل ملي كيختفى Dock ولا كيتحرّك. فـ Mac فيه شقّ مادّي، الوضعية الفوقانية كتستعمل الشكل الدقيق ديالو باش يبان الشق المادّي والبرمجي بحال عنصر واحد.
راقب عدة حسابات ديال Claude Code
Codenotch يقدر يبيّن حلقات منفصلة لكل مجلد إعدادات منفصل ديال Claude Code. مثلاً، باش تشغّل حساب الخدمة:
CLAUDE_CONFIG_DIR=~/.claude-work claude
من بعد ما يستعمل Claude Code داك المجلد، Codenotch كيكتاشفو وكيبيّن حلقة Claude (work) حدّ الحساب الشخصي. حساب الخدمة كيكون عندو الحدود والجلسات وصفّ Settings ديالو.
ملي كيبدا، Codenotch كيقلب على المجلدات اللي كيطابقو ~/.claude-<slug> واللي سبق لـ Claude Code يستعملهم. حساب ~/.claude الافتراضي كيبقى ديما اللول، والإعدادات الإضافية كيتّرتبو أبجدياً باش ما يتبدلش موضع الحلقات بشكل مفاجئ.
سلوك التحديث وحدود الطلبات
Codenotch كيعدّل وتيرة الاستطلاع باش ينقص الطلبات اللي ما عندهاش لزوم. ملي ما كتكون حتى جلسة مراقَبة خدامة، الاستطلاع كيبطأ حتى كل خمس دقايق. باش تطلب قراءة جديدة يدوياً، كليك بالزر الأيمن على الـ notch واختار Refresh now.
نقطة النهاية ديال Claude تقدر ترجع HTTP 429 إلا تطرحات عليها الطلبات بزاف وبسرعة. Codenotch كيزيد التأخير تدريجياً، كيبدا بـ 60 ثانية، وكيتضاعف من بعد الردود المتتالية ديال تجاوز حدّ الطلبات، والحد الأقصى ديالو هو 15 دقيقة. الموعد النهائي كيبقى محفوظ بين مرات التشغيل، وكيمنع إعادة التشغيل من استهلاك محاولة أخرى مباشرة.
التحديثات والأمان
Codenotch كيستعمل Sparkle باش يقلب على التحديثات كل نهار وينصّبها فالخلفية. تقدر تعطل التحديثات التلقائية من Settings. التحديثات الرسمية موقّعة بـ EdDSA، باش التطبيق ما ينصّبش نسخة ما تصاوباتش وما توقّعهاش الجهة المسؤولة على الصيانة.
بالنسبة للمزوّدين اللي كيعتمدو على keychain، التطبيق الرسمي كيستعمل هوية مستقرة ديال Developer ID، وبهذا ترخيص واحد ديال Always Allow يقدر يبقى خدام حتى من بعد إعادة البناء. Codenotch كيتحقق من تاريخ تعديل عنصر فـ keychain قبل ما يقرا السر من جديد، وهاد الشي كينقص طلبات الولوج المتكررة أثناء الاستطلاع العادي.
ملاحظات متقدمة على التطوير
بنية المزوّدين
كل تكامل كيطبّق UsageProvider داخل Sources/Providers/. كل مزوّد كيصرّح حتى بقيمة Fidelity من بين .official أو .derived أو .manual. هاد الشي كيمنع الواجهة من تقديم قيمة مستنتَجة على أساس أنها منشورة مباشرة من طرف المزوّد.
UsageStore، الموجود داخل Sources/Model/، كيدير استطلاع للمزوّدين بواحد المؤقت وكيحتافظ بآخر قراءة ناجحة بين مرات التشغيل. ملي كيفشل شي مزوّد، المخزن كيعرض حالة واضحة بحال stale أو needsAuth أو error، بلا ما يختلق نسبة مئوية.
تخطيط حافة الشاشة
تخطيط الـ notch كيخدم فمساحة تكديس أحادية البعد باستعمال إحداثيات along وacross. NotchPlacement كيحوّل هاد القيم لإحداثيات فعلية فالشاشة حسب الحافة المختارة. NotchLayout كيجمع القياسات المستعملة لمقارنة التنفيذ بإطار التصميم.
فحص السجلات التشخيصية
حيت Codenotch ما عندوش نافذة تقليدية ديال التطبيق، المعلومات التشخيصية كتتكتب فالسجل الموحّد ديال macOS. باش تبثّ رسائل التصحيح:
/usr/bin/log stream --predicate 'subsystem == "com.vinz.codenotch"' --level debug
هاد الشي هو الأداة الرئيسية لاستكشاف المشاكل ملي ما يقدرش شي مزوّد يدير المصادقة، أو كيرجع بيانات قديمة، أو كيلقى صيغة مختلفة فالرد.
فهم الحدود
ما كاين حتى مزوّد مدعوم كينشر API بسيطة ومستقرة كتقدّم بشكل عام جلسة البرمجة كنسبة مئوية دقيقة مستعملة. لذلك Codenotch كيقرا نفس المصادر الداخلية أو المحلية اللي كتستعملها التطبيقات المالكة، ومن بينها نقاط النهاية وقواعد البيانات وخوادم اللغات والسجلات.
هاد الواجهات تقدر تتبدل بلا إشعار. Codenotch كيتعامل مع هاد الخطر باختبارات المحوّلات وحالات فشل واضحة، ولكن تكامل شي مزوّد يقدر يوقف مؤقتاً من بعد تغيير فالتطبيق upstream ديالو.
الخلاصة
Codenotch كيجمع استعمال مساعدي البرمجة، ونوافذ إعادة الضبط، وحالة الجلسة النشيطة فواجهة صغيرة على حافة شاشة macOS. بدا بـ make run، واستعمل الوضع التجريبي باش تستكشف الواجهة بأمان، ومن بعد خلّي التطبيق يكتاشف الحسابات اللي مكوّنة من قبل فالأدوات المدعومة. لمعلومات التطوير والمساهمة، راجع CONTRIBUTING.md. المشروع متاح بموجب رخصة MIT.
