شنو هي CometixCode؟
CometixCode هو مساعد للبرمجة بالذكاء الاصطناعي خدام فالتيرمينال ومكتوب بلغة Rust. هو إعادة تنفيذ مستقلة، ملف بملف، لواجهة Claude Code ديال Anthropic فالتيرمينال، وماشي منتوج رسمي ديال Anthropic.
CometixCode غير رسمي، وما عندوش علاقة بـ Anthropic، وما مدعومش ولا مصادق عليه من طرف Anthropic. Claude وClaude Code علامات تجارية ديال Anthropic, PBC.
واجهة Claude Code الأصلية فالتيرمينال مكتوبة بـ TypeScript باستعمال React وInk. CometixCode كيعيد بناء هاد الهيكلة فـ Rust باستعمال CometixTUI، وهو fork ديال إطار واجهة التيرمينال iocraft اللي كيحتافظ بالحالة. المكوّنات ديال TypeScript كتقابلها مكوّنات Rust، والـ hooks كتقابلها hooks، والاختلافات المعمارية المقصودة موثقة فالمصدر.
المشروع مازال قيد التطوير. أجزاء كبيرة من الحلقة التفاعلية، وتنفيذ الأدوات، والصلاحيات، والاندماج مع Model Context Protocol، وأوامر slash مطبقة، ولكن كاينين مجالات مازال التنفيذ ديالها جزئي.
أهم المميزات والهيكلة
- واجهة تيرمينال مبنية بـ Rust: الواجهة مطبقة بنموذج ديال المكوّنات والـ hooks على طريقة React.
- نقل معماري قريب: المشروع كيتبع الهيكلة المنشورة ديال CLI ديال Claude Code ملف بملف، بلا ما يعوضها بتصميم جديد.
- مسار تفاعلي للبرمجة: الأجزاء الرئيسية من حلقة المساعد ونظام تنفيذ الأدوات مطبقة.
- الصلاحيات والأوامر: تدبير الصلاحيات ودعم أوامر slash مطبقين بشكل كبير.
- دعم MCP: وظائف Model Context Protocol مدمجة، مع أن المشروع كامل مازال قيد التطوير.
- إمكانيات محسّنة للتيرمينال: CometixTUI كيوفر المقارنة على مستوى الصفوف، وتمرير الأحداث، والاسترجاع من SIGCONT، ودعم مؤشر IME، واللصق بين الأقواس، وتخطيط الشبكة.
- البحث الخارجي فالملفات: CometixCode كيستعمل ملف تنفيذي مستقل ديال ripgrep بلا ما يدمج ripgrep فالثنائي ديالو.
المتطلبات المسبقة
قبل ما تبني CometixCode، ثبّت التبعيات التالية:
- Rust 1.87 أو أحدث، باستعمال Rust edition 2024.
- ICU4C، اللي كيتطلبها crates ديال
rust_icu_*عبرpkg-config.
تثبيت ICU4C فـ macOS
Homebrew كيثبت ICU4C كحزمة keg-only. ثبّتها وزيد المجلد ديال pkgconfig لمسار البحث:
brew install icu4c
export PKG_CONFIG_PATH="$(brew --prefix icu4c)/lib/pkgconfig"نفّذ أمر export فالشيل اللي غادي تبني فيه CometixCode. إلا كنت كتخدم على المشروع بانتظام، زيد المتغير لملف إعداد الشيل المناسب.
تثبيت ICU4C فـ Debian أو Ubuntu
sudo apt install libicu-dev pkg-configبناء CometixCode
حل التيرمينال فالجذر ديال المستودع وصايب build محسّن ديال release:
cargo build --releaseالملف التنفيذي الناتج سميتو cometix. build ديال release مناسب للاستعمال العادي حيث كيفعّل تحسينات release ديال Rust.
تشغيل المساعد
بني وشغّل CometixCode عبر Cargo بهاد الأمر:
cargo run --releaseهاد الأمر كيشغل واجهة التيرمينال باستعمال profile ديال release. حيث المشروع مازال فالتطوير النشيط، توقّع بلي بعض المسارات مازال ناقصة، حتى إلا كانت الوظائف التفاعلية الرئيسية، وتنفيذ الأدوات، والصلاحيات، وMCP، والأوامر موجودة.
أمر تشخيص أساسي
داخل CometixCode، استعمل أمر slash التالي باش تفحص البيئة المهيأة، بما فيها شنو هو الملف التنفيذي ديال ripgrep اللي كيتستعمل:
/doctorهاد الشي مفيد خصوصاً ملي البحث فالملفات ما كيكونش متاح، أو ملي كتحتاج تتأكد واش CometixCode اختار ملف rg مرفق مع الحزمة ولا مثبت فالنظام المضيف.
إعداد ripgrep للبحث فالملفات
CometixCode كيفوّض عمليات البحث فالملفات لـ rg، أداة سطر الأوامر ripgrep. الملف التنفيذي ديال ripgrep كيبقى أصلاً خارجياً وما كيتدمجش أبداً فملف cometix التنفيذي.
CometixCode كيقلب على ripgrep بهاد الترتيب:
vendor/ripgrep/<arch>-<os>/rgحدّ الملف التنفيذي، كيف كيتستعمل فالأرشيفات ديال release.vendor/ripgrep/<arch>-<os>/rgفشجرة المصدر، كيف كيتستعمل أثناء التطوير.- الأمر
rgديال النظام المضيف، والمتاح عبرPATH.
تقدر بالتالي تحط build مثبت ديال ripgrep فمجلد المنصة المطابق داخل vendor/ripgrep/، أو تثبت ripgrep فالنظام المضيف وتتأكد بلي rg كاين فـ PATH.
فرض استعمال ملف ripgrep ديال النظام المضيف
عيّن USE_BUILTIN_RIPGREP لـ 0 ملي بغيتي CometixCode يتجاوز ملفات ripgrep المرفقة ويستعمل الملف التنفيذي ديال النظام المضيف:
USE_BUILTIN_RIPGREP=0 cargo run --releaseمن بعد التشغيل، نفّذ /doctor باش تتأكد من الملف التنفيذي اللي تختار.
تشغيل مجموعة الاختبارات بالطريقة الصحيحة
CometixCode فيه حالة مشتركة على مستوى العملية، بما فيها متغيرات البيئة وذاكرات التخزين المؤقت ديال OnceLock. تشغيل جميع الاختبارات كخيوط داخل عملية وحدة يقدر يخلي الحالة تتسرّب بين الاختبارات، وهادي علاش cargo test العادي ما كيعتبرش بوابة جودة صالحة لهاد crate.
المشروع كيستعمل عوضاً عن ذلك cargo-nextest، وكيتم تشغيله عبر just. هاد الشي كيعطي لكل اختبار العملية ديالو وكيثبت حالة النظام المضيف اللي يقدر الاختبار يرثها بطريقة أخرى.
تشغيل المجموعة كاملة
just testهاد الشي هو اختبار الجودة الكامل الإلزامي ديال المشروع.
تشغيل الاختبارات اللي كيطابقها نمط معيّن
just t <pattern>عوّض <pattern> بسلسلة نصية كتستعملها باش تصفّي الاختبارات اللي بغيتي تنفّذ.
دير فحص سريع للكود
just checkهاد الأمر كيدير التحقّق من الأنواع والاستعارة بلا ما يدير الربط، وهادشي كيخليه مفيد باش تاخد ملاحظات سريعة وانت كتحرّر كود Rust.
نصائح متقدّمة للتطوير
- فضّل وضع الإصدار للاستعمال العادي: استعمل
cargo run --releaseباش تشغّل النسخة المحسّنة المحدّدة فتوثيق المشروع. - تحقّق من اكتشاف ICU أولا: فـ macOS، فشل فالبناء مرتبط بـ ICU يقدر يعني بلي
PKG_CONFIG_PATHما فيهش مسار بيانات ICU4C الوصفية ديال Homebrew. - شخّص البحث فالملفات باستعمال
/doctor: تأكّد من الملف التنفيذي ديال ripgrep اللي تختار بالضبط قبل ما تبدّل الملفات المضمّنة أو إعدادات النظام. - ثبّت نسخة ripgrep ملي كتكون قابلية إعادة الإنتاج مهمّة: حطّ الملف التنفيذي المقصود فالمسار الخاص بالمنصّة
vendor/ripgrep/بلا ما تعتمد على أي نسخة منصّبة عالميا. - ما تعوّضش
cargo testببوابة المشروع: استعملjust testباش الاختبارات تستافد من عزل العمليات اللي متوقّعو الكود. - راجع justfile باش تفهم علاش تختارات هاد الاستراتيجية ديال الاختبار: الترويسة ديالو كتشرح القياسات اللي مبني عليها اختيار استراتيجية الاختبار.
اعتبارات الترخيص
CometixCode موزّع بموجب ترخيص AGPL-3.0-only. هاد الترخيص فيه بند الاستعمال عبر الشبكة: إلا شغّلتي نسخة معدّلة كخدمة شبكية، المستخدمين ديالها من حقّهم يحصلو على الكود المصدري المعدّل المطابق.
الخلاصة
CometixCode كيوفّر إعادة إنشاء مبنية بـ Rust لمعمارية الطرفية ديال Claude Code باستعمال CometixTUI. منين كيكون Rust وICU4C وملف تنفيذي مناسب ديال ripgrep متوفّرين، تقدر تبنيه وتشغّلو بـ Cargo، وتفحص إعدادات البحث عبر /doctor، وتتحقّق من التغييرات باستعمال سير العمل ديال just test المعزول على مستوى العمليات فالمشروع.
