Transcript
00:00:00هيردر (Herder) هو معدد وكلاء يعمل داخل الطرفية التي تستخدمها بالفعل،
00:00:05بحيث يمكنك تشغيل مجموعة من وكلاء البرمجة جنباً إلى جنب في نوافذ أو علامات تبويب مختلفة،
00:00:10ومعرفة أيهم يعمل وأيهم عالق أو مكتمل، مع إشعارات النظام في ملف ثنائي واحد مكتوب بلغة راست (Rust)،
00:00:15مما يعني عدم الحاجة إلى إلكترون (Electron) أو تطبيق منفصل. حتى أنه يمتلك طريقة ذكية للعمل عبر SSH،
00:00:20ولكن مع تزايد شعبية أدوات مثل cmux، لماذا قد تهتم باستخدام هيردر؟ اشترك في القناة ولنكتشف ذلك.
00:00:28بنى هيردر مطور يدعى أوجل كانسيليكس (Ogle Cancelix)، وأفترض أنه حذف حرف “e” من كلمة
00:00:34هيردر (Herder) لأنه من محبي أوائل العقد الأول من القرن الحادي والعشرين. لا أعرف، لكنني أفترض أن هيردر أداة
00:00:39يمكنك استخدامها لرعاية (Herd) وكلاء متعددين مثل راعي الأغنام، وهي مشكلة تواجه، حسناً، لنقل معظم
00:00:45المطورين الذين يستخدمون الذكاء الاصطناعي في البرمجة، لأنه من الصعب متابعة
00:00:49ما يفعله كل وكيل. استلهم هيردر الكثير من tmux، وهو معدد طرفية
00:00:54يتميز بعلامات تبويب، نوافذ مقسمة، وجلسات مستمرة حتى بعد قطع الاتصال. لكن tmux
00:01:00بُني قبل عقود طويلة من وجود وكلاء الذكاء الاصطناعي، لذا إذا انتهى بك الأمر بتشغيل وكيل داخل إحدى
00:01:06نوافذه، فهو لا يعرف بوجوده أو بحالته. لهذا السبب توجد أدوات مثل warp أو cmux
00:01:12التي تخرجك من طرفيتك الخاصة إلى طرفياتهم، مما يضطرك لتعلم سير عمل شخص آخر،
00:01:18وهو سبب بناء أوجل كانسيليكس لهيردر ليفعل الأمرين معاً: استمرارية tmux مع وعي مدمج بالوكلاء.
00:01:24وبما أن هيردر مجرد ملف ثنائي بلغة راست بُني باستخدام راتاتوي (Ratatouille)، فإن الأمر كله مجرد
00:01:29عرض نص في طرفيتك، لذا يمكن تشغيله في أي مكان يمكن لطرفيتك تشغيله، بما في ذلك عبر SSH.
00:01:35هناك أيضاً واجهة برمجة تطبيقات (Socket API) مما يعني أن الوكلاء يمكنهم قيادة هيردر بأنفسهم، وهو أمر مثير للإعجاب حقاً.
00:01:40في الواقع، لنقم بعرض سريع. بعد تثبيت هيردر باستخدام brew أو curl أو حتى
00:01:46nix flake (أنا سعيد جداً لأنهم أضافوا هذا الخيار)، يمكنك ببساطة تشغيل أمر هيردر الذي سيعطيك
00:01:50هذا العرض الذي يظهر الطرفية وبعض مساحات العمل وبعض الوكلاء. لقد قمت بالتكبير قليلاً لذا هناك
00:01:56أشياء لن تتمكن من رؤيتها مثل النطاق الكامل للأوامر، لكنني سأبذل قصارى جهدي لعرض هيردر.
00:02:00هنا يمكنك أن ترى أنه لا توجد مساحات عمل، وبشكل افتراضي البادئة
00:02:05هي Ctrl + b، وهو مشابه لـ tmux، لكنني سأريك كيف تغير ذلك لاحقاً. الآن البادئة
00:02:10قد تم تفعيلها بالفعل، وهو ما يمكنني رؤيته في التنقل أدناه. لذا كل ما علي فعله هو الضغط على
00:02:14Shift + n لإنشاء مساحة عمل جديدة. بالطبع يمكنك التنقل بالكامل باستخدام لوحة المفاتيح،
00:02:19لذا يمكنني الضغط على البادئة وعلامة الاستفهام لرؤية جميع اختصارات لوحة المفاتيح، لكن يمكنك أيضاً
00:02:23استخدام الفأرة. يمكنني إنشاء علامة تبويب جديدة باسم “two”، ويمكنني النقر بزر الفأرة الأيمن لإغلاق علامة التبويب، وإعادة تسمية
00:02:28مساحة العمل الخاصة بي إلى “test”، وإنشاء مساحة عمل جديدة، والوصول إلى هذه الإعدادات في القائمة، وهكذا. يمكنني حتى
00:02:34إنشاء تقسيمات أفقية وعمودية بالإضافة إلى إعادة تسمية النافذة المحددة والتنقل بين
00:02:38النوافذ باستخدام الفأرة. لكن نقطة البيع الحقيقية لهيردر هي كيفية تفاعله مع الوكلاء.
00:02:43في الوقت الحالي يستخدم Bash، لكنني أحب استخدام Fish، لذا سأغير هاتين الطرفيتين،
00:02:46وبعد ذلك سأفتح “Claude Code” في الجزء العلوي و”Codex” في الجزء السفلي. بالفعل يمكننا رؤية أن
00:02:51هيردر التقط تلقائياً الوكلاء وأعطاهم حالات؛ لذا كلود (Claude) معلق
00:02:55وكودكس (Codex) في وضع الخمول. لنخاطبهما بمنحهما حق الوصول إلى هذه المجلدات، وبالطبع يمكنني
00:03:00إعطاؤهما أوامر مثل “ما هو النموذج الذي أستخدمه؟” ويمكننا أن نرى أن هيردر يحدث نفسه فوراً
00:03:05ليخبرنا أن كلود يعمل، وهو ما يعمل أيضاً مع واجهة كودكس البرمجية. لقد لاحظت أيضاً أنني في
00:03:09مساحة العمل الخطأ، لذا لنحذف هذه ونعيد تسمية هذه إلى “test”. لكن مع هيردر يمكن للوكلاء أيضاً
00:03:15إنشاء مساحات عمل وعلامات تبويب وتقسيمات أيضاً. لنرَ كيف يعمل ذلك. لذا سأخرج من “Herder”
00:03:20بالضغط على البادئة ثم “q”، ومن ثم يمكنك رؤية كل الخيارات التي توفرها واجهة هيردر البرمجية هنا.
00:03:24إذن ما سأفعله هو العودة إلى هيردر، وهذه إحدى نقاط البيع حيث أنه يعود إلى
00:03:29نفس مساحة العمل ونفس الوكلاء الذين تركتهم مفتوحين مع نفس الجلسات. لكنني سأنشئ
00:03:34مساحة عمل جديدة، سأدخل إلى مجلد، ثم سأفتح “Claude Code”، والآن
00:03:38سأعطي أمراً لاستخدام واجهة هيردر البرمجية لإنشاء نافذتين بداخلها “Claude Code”. سأقوم بـ
00:03:44تشغيل واحدة بهذا الأمر لتلخيص أكبر ملف في المشروع، وأخرى بهذا الأمر
00:03:49للبحث في قاعدة الكود عن أي مفتاح API أو أسرار مشفرة بداخل الكود. وهنا قام بتحميل نافذة جديدة بداخلها
00:03:54“Claude Code”. في الواقع سأقوم بالتصغير حتى نتمكن من رؤية هذا بشكل أفضل. والآن هو يقوم بتشغيل
00:03:58الأمر الآخر في قاعدة الكود، لذا يمكننا التمرير للأعلى لنرى أن هذه قد انتهت. يمكننا أيضاً رؤية
00:04:03أنه يعطيها عناوين مناسبة مثل “كلود - أسرار” و”ديسكورد”، وهنا لم يجد أي مفاتيح API
00:04:09مشفرة بداخل الكود. نعم، من هنا يمكننا تلخيص مخرجات كلتا النافذتين ثم جعل “كلود” يغلقهما. لذا الآن
00:04:14لقد حصل على المعلومات من النافذة الأولى وأغلقها، وهو يفعل الشيء نفسه مع النافذة الثانية
00:04:18التي أغلقها أيضاً. وفي الأسفل يقدم لي ملخصاً لطيفاً. الآن لأن هيردر
00:04:23مجرد ملف ثنائي يمكنك تثبيته في طرفيتك، يمكنني الدخول عبر SSH إلى خادم لينكس وتثبيت هيردر
00:04:28بنفس الطريقة التي ثبت بها على جهاز الماك. يمكنك رؤية أنني قمت بذلك في وقت سابق وقد استعاد جلستي السابقة،
00:04:32لذا لدي “Claude Code” مفتوح في نافذة واحدة، وأستخدم Vim لاستعراض بعض الكود في نافذة أخرى.
00:04:36لكن المشكلة هنا هي أنها لا تنقل إعدادات تكوين هيردر التي لدي على
00:04:41جهاز الماك الخاص بي. لأكون صادقاً، ليس لدي الكثير من الإعدادات، كل ما فعلته هو تغيير المفاتيح من
00:04:45Ctrl + b إلى Ctrl + space، وقمت بتغيير النسق إلى “terminal”. ولكن لو كان لدي ملف تكوين
00:04:50معدل للغاية مع اختصارات لوحة مفاتيح محددة، فقد يكون هذا مزعجاً جداً. لذا إحدى طرق
00:04:55التغلب على هذا هي استخدام هيردر مع العلم “remote” وSSH مباشرة إلى خادمك، وسأشرح
00:05:01بالضبط ما يفعله قبل أن أضغط على Enter. يعمل هيردر عن طريق تشغيل خادم وعميل خفيف
00:05:06يتواصلان باستخدام مقبس Unix (Unix socket). لذا يرسل العميل ضغطات المفاتيح إلى الخادم، ويدير الخادم
00:05:11علامات التبويب والنوافذ والاستمرارية وأشياء أخرى. الآن في حالة الـ SSH، عند استخدام “remote”، يعمل الخادم على
00:05:18الجهاز البعيد ويعمل العميل في الواقع على جهازك المحلي. لذا فهو يرسل ضغطات المفاتيح عبر مقبس Unix
00:05:24إلى الخادم، ويمكن للخادم أن يعرض للعملاء الملفات الموجودة على الجهاز نفسه
00:05:30ولكن العميل نفسه يمكنه استخدام جميع إعدادات التكوين الموجودة على الجهاز المحلي الذي
00:05:35هو متصل به. لذا لنلقِ نظرة على ذلك أثناء العمل. بالعودة إلى حيث توقفنا، الآن إذا ضغطت على Enter
00:05:40سيتصل مباشرة بجهاز SSH الخاص بي، والذي يمكننا أن نرى أنه يحتوي على “Claude Code” وملف الكود
00:05:45الذي نستعرضه باستخدام Vim. لكن إذا ضغطت Ctrl + b، فلا يبدو أنه يفعل أي شيء لأنه يستخدم
00:05:49التكوين الموجود على جهاز الماك الخاص بي، والذي يعمل مع Ctrl + space لرؤية البادئة. الآن بينما نحن هنا، لنلقِ
00:05:54نظرة على ما يمكننا القيام به أيضاً في القائمة. يمكننا عرض اختصارات المفاتيح التي عرضتها عليك سابقاً، ولكن
00:05:59يمكننا أيضاً تغيير النسق، ويقدم هيردر العديد من النسق للاختيار من بينها، من “nord” إلى “govbox” وحتى
00:06:04“catppuccin”، وهناك أيضاً خيار لتفعيل تنبيهات الصوت وقائمة التنبيهات (toast menu) التي يمكنك تغييرها
00:06:10عبر الطرفية أو عبر النظام. الآن كالمعتاد، هناك العديد من الميزات الأخرى لهيردر التي
00:06:15لم أحصل على فرصة لاستعراضها، مثل تكاملات work tree، وتكاملات الـ harness الرسمية، بعض
00:06:19التي رأيتها في العرض التوضيحي والتي تمنح الـ harness الخاص بك الوصول إلى مهارات هيردر الرسمية وتسمح لك باستئناف
00:06:24نفس الجلسات التي كنت تستخدمها قبل إغلاق هيردر. بصراحة، حقيقة أن هذا يعمل في طرفيتك الحالية
00:06:29بالنسبة لي هي نقطة البيع الرئيسية، لأنني بقدر ما أحب استخدام cmux، فأنا أحب استخدام “Westerm” أكثر بكثير،
00:06:35لقد قمت بتهيئته بالطريقة التي أحب استخدامها بالضبط، وحقيقة أنه إذا أردت إدارة
00:06:39وكلائي، كل ما علي فعله هو فتح علامة تبويب طرفية جديدة بداخل “Westerm” وتشغيل هيردر. نعم، أنت
00:06:45تفتقد متصفح الويب الموجود في cmux، لكن لأكون صادقاً، لم أستخدمه كثيراً على أي حال. وبالنسبة لأولئك
00:06:50منكم الذين يشاهدون الآن ويستخدمون ويندوز، لدي بعض الأخبار السيئة حقاً لكم، بسبب كل موضوع
00:06:54مقبس Unix وحقيقة أن هيردر يستخدم PTY الخاص بالطرفية، لا يوجد حالياً دعم جيد للويندوز
00:06:59في وقت التسجيل. ولكن إذا كنت تستخدم ويندوز، أعتقد أن الوقت قد حان لاتخاذ القرار الصعب و
00:07:04استخدام نظام لينكس بنظام التشغيل المزدوج. نعم، WSL موجود، لكنه ليس تماماً نفس الشيء، أليس كذلك؟
Community Posts
No posts yet. Be the first to write about this video!
Write about this video