عن المشروع
Swarm هي منصة تحكم محلية (local-first) مصممة للمطورين الذين يشغلون عدة وكلاء ترميز بالذكاء الاصطناعي في وقت واحد. تعمل كخدمة خلفية واحدة على جهازك، وتقرأ الخطافات والنصوص وسجلات الجلسات التي ينتجها وكلاء مثل Claude Code وCodex CLI وGemini CLI وGrok وAider وopencode — دون الحاجة إلى أي تعديلات على مستودعاتك. جميع البيانات محفوظة في ~/.swarm/ ولوحة التحكم مرتبطة بـ 127.0.0.1، لذا لا يغادر أي شيء جهازك، ولا حاجة لحساب، وتعمل دون اتصال.
القيمة الأساسية هي المراقبة والتنسيق. تعرض عرض الأسطول (Fleet) كل جلسة عبر كل مشروع في الوقت الفعلي: أي وكيل يعمل، وعلى أي فرع، وماذا يفعل الآن، والنموذج، وعدد الرموز المخرجة، وحجم السياق، والتكلفة، والعمر. الجلسة التي تبدأ بتكرار أمر فاشل تحصل على شارة "عالق" (Stuck) وإشعار سطح مكتب. تعرض عرض الجلسة (Session) تفكير الوكيل واستدعاءات الأدوات مباشرة، مع تكلفة كل دورة، ومعدل إصابة الذاكرة المؤقتة، وحصة التفكير، ورسم بياني للأدوات. إعادة التشغيل (Replay) تتنقل عبر استدعاءات الأدوات خطوة بخطوة مع المدخلات والمخرجات الكاملة، ويمكن استئناف جلسة منتهية من حيث توقفت.
اللوحة (Board) تعمل كسجل تنسيق للمشروع. تتعقب المهام من قائمة متراكبة بصيغة ماركداون أو GitHub Issues أو Linear، مع بوابات نجاح/فشل وإجراءات تشغيل/إرسال. تُحفظ مطالبات المهام في أشجار عمل معزولة (git worktrees)، كل منها بفرع وانحراف وحالة متسخة/غير مدفوعة والجلسة داخلها. الموارد التشغيلية — المنافذ، خوادم التطوير، قواعد البيانات — تُحفظ كعناصر مفردة مسماة. تسجل الحوادث كل أمر طلبت القواعد بشأنه أو رفضته، مع إجراء "ترميز" (Codify) يحولها إلى قاعدة .swarm.toml ودرس في CLAUDE.md.
القواعد هي حواجز حماية لأوامر Bash التي تشغلها جلسة Claude Code: shared_tree وdestructive_git وpattern_kill وprotected_ports وno_foreign_worktree وclaim_required_to_write. كل قاعدة مضبوطة على "اسأل" أو "ارفض" أو "إيقاف" لكل مستودع في .swarm.toml. الرفض يُعاد إلى Claude Code كرفض حقيقي للإذن. المنافذ المحفوظة كموارد محمية تلقائيًا. هذه حواجز ضد الحوادث، وليست صندوق رمل.
يمكن لـ Swarm أيضًا تشغيل وكلاء: swarm run --task X يطالب بمهمة ويشغل claude -p في شجرة العمل الخاصة بها، ويمكن توجيهه عبر stdin وإيقافه عبر pid. swarm dispatch --ready يسلم كل مهمة قابلة للمطالبة إلى تشغيلها الخاص، N في كل مرة. ملفات التشغيل (كاملة، بدون تعديلات، للقراءة فقط) تضيق ما يمكن للوكيل المولد فعله. البوابات المعلنة في .swarm.toml تُنفذ في شجرة عمل المهمة — الخروج برمز 0 ينجح، وذيل المخرجات هو الدليل. كل جلسة تتوقف تترك تسليمًا تلقائيًا مع الملفات المعدلة وآخر أمر تحقق وآخر طلب؛ الجلسة التالية في تلك الشجرة تحصل عليه محقونًا في البداية.
الوكيل الذي يواجه قرارًا لا يمكن إلا للإنسان اتخاذه يستدعي swarm_ask؛ يظهر السؤال في صفحة الجلسة مع خيارات كأزرار، ويعرض الأسطول شارة "يسأل" (Asking)، ويُطلق إشعار سطح مكتب، ويصل الرد إلى الوكيل بنفسه. سير العمل التصريحي في .swarm.toml يتقدم تلقائيًا: خطوات التشغيل تشغل وكيلًا، وخطوات البوابة يجب أن تنجح للمتابعة، وpr يدفع الفرع ويفتح طلب السحب. الرسائل بين الوكلاء عبر swarm_send تصل إلى جلسة أخرى بالمعرف، أو لمن يحمل مهمة، أو للجلسة الرئيسية.
عرض طلبات السحب (PRs) يوفر قائمة دمج واحدة عبر GitHub وGitLab، تُقرأ من خلال واجهة gh أو glab الموثقة لديك. لا تُخزن أي رموز. الخط الزمني (Timeline) يعرض مسارات الجلسات لكل مشروع، ملونة حسب الوكيل، على مدى 3–72 ساعة. الإنفاق والإحصائيات (Spend and Stats) تحلل التكلفة حسب المشروع والنموذج والوكيل والمهمة، مع جدول ميزانية سياق يرتب الجلسات حسب مقدار ما أعادت قراءته من السياق. ميزانيات كل مستودع تفرض سقوفًا يومية أو أسبوعية تحذر أو تسأل أو توقف. النتائج (Outcomes) تتبع ما إذا كان العمل نجا: الجلسات تنضم إلى فرع، والفرع إلى طلب السحب، وطلب السحب إلى دمج أو تراجع، مع تسجيل لكل نموذج ووكيل بمعدل الدمج والوقت الوسيط للدمج والدولارات لكل دمج. رسم بياني ثنائي الأطراف مباشر يعرض الجلسات النشطة مقابل الملفات التي تلمسها؛ الملف الذي تحمله جلستان مع كاتب واحد على الأقل يتحول إلى الأحمر — تعارض دمج لا يزال بإمكانك منعه.
يتوفر Swarm كواجهة سطر أوامر (bunx @ra3orblade/swarm setup)، وتطبيق سطح مكتب (macOS موقّع وموثق، Windows، Linux .deb/.rpm)، وخادم MCP يتيح للوكلاء التنسيق بأنفسهم. خدمة الفريق (swarm-teamd) هي خدمة ثانية مستضافة ذاتيًا للإعدادات متعددة الأجهزة، ترسل أحداث التدقيق وتجميعات الإنفاق والمطالبات — ولا ترسل نص المحادثة أبدًا إلا إذا اختارت جهازك ذلك. حزمة الفريق متاحة المصدر تحت FSL-1.1-ALv2، وتتحول إلى Apache-2.0 بعد عامين من كل إصدار؛ كل شيء آخر تحت Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.