
شنو كيدير VibeClaude
VibeClaude هو إضافة ديال Claude Code كتحوّل نشاط البرمجة لتعليقات من الجهاز عبر Intiface Central وbuttplug.io. أحداث Claude Code كتمشي لواحد الخدمة المحلية، اللي كيتاصل بـ Intiface Central عبر WebSocket ومن بعد كيتحكم فجهاز مقترن وكيقدر يهتز.
Claude Code — وحدة hooks — HTTP — الخدمة — WebSocket — Intiface Central — BLE — الجهازالإضافة كتجاوب مع مخرجات الموديل اللي كتوصل بالتدريج، واستدعاءات الأدوات، وطلبات الصلاحيات، والمهام اللي سالاو، والوكلاء الفرعيين، والمقاطعات، وأحداث دورة العمل أو الجلسة. مخصصة للاستعمال فمكان خاص ومريح، وخصك تستعمل العتاد المتوافق بمسؤولية.
المتطلبات
- Claude Code مع دعم إضافة function-hooks. VibeClaude تبنات على الإصدار 2.1.291 من هاد الواجهة اللي مازال فالوصول المبكر.
- Node.js 22 ولا أحدث، ومتاح باسم
nodeفـPATHديالك. - Intiface Central وخادم WebSocket ديالو خدام. العنوان الافتراضي هو
ws://127.0.0.1:12345. - جهاز تحكم كيقدر يهتز، ومقترن فـ Intiface Central.
- مكان خاص ومناسب لاستعمال الجهاز المتصل.
ثبّت VibeClaude
نسخ المستودع لدليل إعدادات Claude ديالك وثبّت الاعتماديات ديالو:
git clone https://github.com/transkatgirl/vibeclaude.git ~/.claude/vibeclaude
cd ~/.claude/vibeclaude && npm installتقدر تحمّل الإضافة فجلسة وحدة ديال Claude Code بهاد الأمر:
claude --plugin-dir ~/.claude/vibeclaudeولا ثبّتها بشكل دائم من داخل Claude Code:
/plugin marketplace add ~/.claude/vibeclaude
/plugin install vibeclaude@vibeclaude-localعاود شغّل Claude Code من بعد التثبيت. الإضافة كتحمّل ملي كتبدا جلسة جديدة.
تأكّد من مكان الاعتماديات
الخدمة كتخدم من الدليل اللي كيستعمل Claude Code باش يحمّل الإضافة، وكتحتاج يكون فيه دليل node_modules. الإضافات اللي تثبتات من Marketplace يقدر يتنسخ منها واحد المكان ما فيهش الاعتماديات اللي تثبتات فالنسخة الأصلية ديالك.
إلا بان ليك فـ Claude Code أن حزمة npm ديال buttplug ناقصة، شغّل npm install فالدليل اللي مذكور فالرسالة.
ربط جهاز
- شغّل Intiface Central وضغط على زر تشغيل الخادم.
- فـ Claude Code، شغّل
/intiface. - تسنى حتى يكمل الاتصال والبحث.
- اختار جهاز كيقدر يهتز من النتائج.
- بدا تستعمل Claude Code من بعد ما تتأكد أن الجهاز متصل ومناسب للمكان اللي نتا فيه.
الأمر /intiface كيفتح حوار كيبين حالة الاتصال والبحث. استعمل الأسهم ولا Tab باش تدوز بين الأجهزة، ضغط على Enter ولا كليك باش تختار واحد، وضغط على Escape باش تخرج من الحوار.
ما كيتصيفط والو للجهاز حتى كتختار واحد. VibeClaude كيتحكم فجهاز واحد مختار فكل مرة. ملي كتبدا جلسة جديدة من بعد، الإضافة كتحاول تعاود تتاصل بـ Intiface Central وترجع تربط الجهاز اللي تختار من قبل إلا كان متوفر.
أوامر الإضافة
/intiface: تاصل بـ Intiface، قلب على الأجهزة، واختار جهاز./intiface-connect: تاصل بخادم Intiface المكوّن ورجّع ربط الجهاز المختار من قبل إلا كان متوفر./intiface-disconnect: قطع الاتصال ووقف جميع مخرجات الجهاز./intiface-intensity [0.0-1.0]: حدّد معامل الشدة العام، ولا عرض القيمة الحالية إلا ما دخلتي حتى رقم.
هاد الأوامر كتخدم داخل الإضافة بلا ما تبدا دورة ديال الموديل ولا تستهلك التوكنات. حتى هي ما كتخلي حتى مخرج ديال الأمر فالمحادثة، وتقدر تستعملها والـ turn مازال خدام.
فهم أنماط التعليقات
VibeClaude كيمثّل كل حدث بنمط ثابت المدة وبشدة ثابتة. داخل نفس المحادثة، آخر حدث كيعوّض الحدث اللي قبل منو. معامل الشدة العام كيتطبق من بعد اختيار الحدث.
- التفكير والنص اللي كيوصل بالتدريج: نبضة مدتها 70 ميلي ثانية لكل جزء، بشدة بين 0.35 و0.8 حسب متوسط سرعة الإخراج. حساب سرعة الاستجابة كيوصل للحد الأقصى عند 40 حرف فالثانية.
- الاستجابات الكاملة: نبضة مدتها 150 ميلي ثانية بشدة 0.4 ملي كتوصّل استجابة بلا بث تدريجي.
- استدعاءات الأدوات: نبضة مدتها 120 ميلي ثانية بشدة 0.5 ملي كيبدا الموديل يكتب استدعاء أداة.
- عمليات التعديل: تثبيت مستمر بشدة 0.3 فاش كتتكتب وكتتطبق عملية
EditأوWriteأوMultiEditأوNotebookEdit. - استدعاءات الأدوات الناجحة: نبضة مدتها 180 ميلي ثانية بشدة 0.7.
- استدعاءات الأدوات الفاشلة أو المرفوضة أو اللي ترفضات: نبضة مدتها 280 ميلي ثانية بشدة 1.0.
- مهام todo اللي سالاو: نبضة بشدة 0.8، وكتتعوّض مباشرة بنمط نجاح الأداة.
- طلبات الصلاحية: ثلاث نبضات مدة كل وحدة 90 ميلي ثانية بشدة 0.85، من بعد توقف وإعادة حتى يتحل الطلب.
- نهاية الدورة: ثلاث نبضات مدة كل وحدة 100 ميلي ثانية بشدة 1.0.
- الدورات اللي تقطعات ولا فشلات: كيتوقف الإخراج الحالي، ومن بعد كيجيو نفس النبضات الثلاثة ديال إكمال الدورة.
- نهاية الجلسة: كيتوقف كل الإخراج.
الجلسات المتعددة والوكلاء الفرعيون
كل جلسة مفتوحة ديال Claude Code كتتبع الأدوات والطلبات والمهام والوكلاء الفرعيين ديالها بوحدها. ملي كيكونو عدة أنماط خدامين، كيتستعمل أقواهم. وملي كيسالي داك النمط، يقدر الجهاز يرجع لنمط خدام من جلسة أخرى.
الـSubagents كيتخلطو مع المحادثة اللي بداتهم. المخرجات ديالهم اللي كتتدفق، استدعاءات الأدوات، طلبات الصلاحيات، لائحة المهام، وأحداث الإكمال ولا الفشل كيتُمثلو بشكل مستقل. ملي كتسالي الجلسة الرئيسية، كيتوقفو جميع الـsubagents ديالها.
ضبط الشدة
استعمل أمر الشدة باش تنقص ولا تعطل المخرجات:
/intiface-intensity 0.5المضاعف الافتراضي هو 1.0. القيمة 0 كتعطل التغذية الراجعة، والقيم بين 0 و1 كتنقص كل نمط نشط حسب النسبة. التغيير كيدخل حيز التنفيذ فالحين، حتى بالنسبة لنمط راه خدام، وكيبقى محفوظ حتى تبدلو.
قيود مهمة على الأحداث
شي سلوكات كتبقى تقريبية بالضرورة بسبب المعلومات اللي كيكشفها Claude Code للإضافات:
- التفكير: التفكير كيمثل غير فالأماكن اللي Claude Code كيخلي فيها النص باين. مثلا، التفكير ما كيبانش فالتشغيل بدون واجهة
claude -p. - أجوبة الصلاحيات: Claude Code ما كيعطيش اللحظة الدقيقة اللي كيتجاوب فيها على طلب الصلاحية. النمط ديال الطلب كيسالي غالبا ملي الأداة المرتابطة به كتسالي، كتفشل، ولا كيرفضوها. بعض الإشارات ديال تشغيل الأوامر فخلفية الطرفية تقدر توقفو قبل.
- مخرجات الأدوات: الإضافة ما كتتوصلش بمخرجات الأوامر وهي كتتدفق، لذلك مخرجات الأداة كتمثلها نتيجة الأداة، ماشي كل سطر مطبوع.
ضبط الإضافة
Claude Code كيسولك على إعدادات الإضافة ملي كتفعلها. تقدر تبدلها من بعد عبر /plugin وواجهة تدبير الإضافات.
wsAddress: عنوان WebSocket ديال Intiface Central. الافتراضي ديالو هوws://127.0.0.1:12345.
العنوان الجديد ديال WebSocket كيدخل حيز التنفيذ فالمرة الجاية اللي كيبدا فيها الـdaemon. سالِي الجلسات ديالك، ولا وقف الـdaemon مباشرة بهاد الأمر:
node daemon/daemon.mjs stopVibeClaude كيخزن الجهاز المختار، الشدة، وdaemon.log فـ~/.config/vibeclaude. إلا كان منفذ TCP 12350 مستعمل من قبل، أنشئ ~/.config/vibeclaude/config.json بمنفذ مختلف:
{ "port": 12351 }استعمل الـDaemon من الصدفة
تقدر تتحكم فالـdaemon بشكل مستقل على أوامر Claude Code اللي كتبدأ بـslash. هاد الأوامر كتستعمل مجلد الإعدادات والعنوان ديال WebSocket الافتراضيين:
node daemon/daemon.mjs scan: اتصال، مسح لمدة ثلاثة ثواني، وعرض الأجهزة القابلة للاهتزاز.node daemon/daemon.mjs select <index>: اختيار جهاز من نتائج المسح.node daemon/daemon.mjs connectوdisconnect: الاتصال بـIntiface ولا قطع الاتصال به.node daemon/daemon.mjs intensity [value]: ضبط مضاعف الشدة ولا عرضو.node daemon/daemon.mjs start: التأكد باللي الـdaemon خدام وطباعة المنفذ ديالو.node daemon/daemon.mjs status: التحقق واش الـdaemon كيرد.node daemon/daemon.mjs stop: وقف جميع المخرجات والخروج من الـdaemon.node daemon/daemon.mjs: تشغيل الـdaemon فالواجهة الأمامية.
استعمل --home <dir> باش تختار مجلد إعدادات آخر، و--ws <address> باش تحدد عنوان Intiface آخر. باش تسجل كل حدث ملي كيوصل، عيّن متغير البيئة ديال التصحيح:
VIBECLAUDE_DEBUG=1 node daemon/daemon.mjsالاختبار بلا جهاز
المستودع فيه خادم Intiface وهمي كيطبع مستوى المحرك اللي كان غادي يتوصل به. شغلو فالمنفذ 12345:
node test/mock-intiface.mjs 12345ومن بعد شغل مجموعة الاختبارات:
npm testالاختبارات كتشغل الـdaemon من البداية للنهاية ضد الخادم الوهمي ديالو، وكتختبر حتى وحدة hooks، وهادشي كيخليك تتأكد من التثبيت بلا وحدة تحكم فعلية.
كيفاش خدامة البنية
hooks/register.tsx كتخدم داخل Claude Code. كترصد أحداث الـhooks بحال خطوات الدور اللي كتتدفق، استدعاءات الأدوات، فحوصات الصلاحيات، إنشاء الـsubagents، والتغييرات فدورة حياة الجلسة ولا الدور. كتحول هاد الأحداث لرسائل صغيرة فيها الأحجام والمعرفات بلا نص النموذج، ومن بعد كترسلهم بالترتيب للـdaemon عبر عنوان loopback 127.0.0.1:12350.
وحدة hooks كتسجل حتى أوامر slash، وكتعرض نافذة اختيار الجهاز، وكتبيّن إشعارات الـdaemon على شكل رسائل مؤقتة. وحيت وحدة hooks ما عندهاش الولوج لـNode.js، ما كتقدرش تشغل عميل Buttplug ولا تحافظ بوحدها على اتصال WebSocket ديال Intiface.
daemon/daemon.mjs كيتكلف بعميل Buttplug الرسمي، واتصال Intiface، والجهاز المختار، ومحرك الاهتزاز، ومعالجات الأحداث. وحيت الجهاز يقدر يجاوب ببطء أكثر من وصول مخرجات النموذج، فالـdaemon كيرسل آخر مستوى مطلوب بلا ما يبني طابور انتظار.
الـdaemon كيبدا ملي كتحتاجو أول جلسة، وكيخرج من بعد ما كتسالي آخر جلسة. كيراقب عملية Claude Code المرتابطة بكل جلسة، ويقدر ينظف الجلسات اللي كتختفي بشكل غير متوقع. إلا ما قدرش يحدد شنو هي العملية اللي سالات، كيرجع للخروج من بعد 30 دقيقة بلا نشاط.
الخصوصية والإيقاف التلقائي
الإضافة كترسل أوامر الجهاز غير لعنوان Intiface اللي مضبوط فالجهاز ديالك. الـdaemon كيسمع على loopback وكيقبل طلبات JSON الموجهة لـ127.0.0.1 ولا localhost؛ وما كيعرضش خدمة شبكة لصفحات المتصفح. VibeClaude ما فيه حتى قياس عن بعد.
المخرجات كتوقف بوحدها ملي كتبدل الجهاز، كتسالي جلسة، كتقطع الاتصال، كتضيع وصلة Intiface، ولا كيخرج الـdaemon. إلا تقطع جهاز من Intiface، كيتحيد الاختيار ديالو؛ استعمل /intiface باش تعاود الاتصال. الجهاز اللي كيختفي مؤقتا تقدر تختارو من جديد ملي يرجع.
الخلاصة
VibeClaude كيربط hooks ديال Claude Code مع Intiface Central عن طريق daemon محلي بـ Node.js، وكيحوّل أحداث البرمجة لردود فعل قابلة للإعداد من الجهاز. نصّب الـ plugin والاعتماديات، شغّل Intiface Central، اختار جهاز باستعمال /intiface، وعدّل التجربة باستعمال /intiface-intensity. إلى بغيتي تشخّص المشاكل ولا تطوّر المشروع، استعمل أوامر daemon ديال shell، وdebug logging، وmock server المرفق.
المشروع مرخّص بموجب رخصة MIT. Buttplug وIntiface هما علامتان تجاريتان ديال Nonpolynomial Labs, LLC.
