Emdash: بيئة تطوير ذكية مفتوحة المصدر تتيح تشغيل عدة وكلاء برمجية بالتوازي
Emdash هو بيئة تطوير مفتوحة المصدر مصممة لتسهيل العمل بالعوامل الذكية (Agents) في تطوير البرمجيات، وتم اختيارها ضمن دفعة Y Combinator W26. يتيح للمطورين تشغيل عدة عوامل ترميز متوازية، مما يُسرّع تطوير الميزات وتجريبها بسرعة. يتم دعم أكثر من 20 مزودًا لواجهة سطر الأوامر (CLI)، مثل Claude Code، Qwen Code، GitHub Copilot، Gemini، Codex، وAmp، مع إمكانية إضافة مزودات جديدة بسهولة. يُنفذ كل عامل في بيئة Git منفصلة (Git worktree)، مما يضمن الحفاظ على التغييرات منظمة وسهلة المراجعة. يمكن تكليف العامل بمهام مباشرة من أدوات إدارة المشاريع مثل Linear أو Jira أو GitHub Issues، ثم مراجعة التغييرات (Diffs) جنبًا إلى جنب بسهولة. كما يدعم Emdash العمل على مشاريع بعيدة عبر اتصال SSH/SFTP، مع دعم المصادقة باستخدام المفاتيح أو وكيل SSH، وتخزين بيانات الدخول بأمان في مخزن المفاتيح الخاص بنظام التشغيل. يُمكن تثبيت Emdash على أنظمة macOS وWindows وLinux عبر أدوات التثبيت المناسبة (مثل Homebrew على macOS). يتطلب استخدام ميزات GitHub فقط تثبيت أداة gh (GitHub CLI)، لكنه ليس إلزاميًا إذا لم تُستخدم هذه الميزات. تُخزن بيانات التطبيق محليًا باستخدام قاعدة بيانات SQLite، مع إرسال بيانات تحليلية غير شخصية (مثل بدء ونهاية التشغيل، واستخدام الميزات، وإصدارات النظام) إلى خدمة PostHog، دون إرسال أي كود، مسارات ملفات، أو معلومات حساسة. يمكن تعطيل هذه البيانات من خلال إعدادات التطبيق. يُعد Emdash بيئة مبنية على مبدأ "البيانات المحلية أولاً"، لكنه يعتمد على مزودي العوامل الخارجية (مثل OpenAI أو Anthropic) لمعالجة الكود والأسئلة، حيث تُرسل هذه البيانات إلى خوادم السحابة الخاصة بكل مزود، وفقًا لسياسات خصوصية كل منها. يُمكن للمطورين المساهمة في المشروع عبر مساهمات مفتوحة (PR)، مع دعم فريق المطورين عبر منصة Discord. كما يوفر دليل تفصيلي للإعداد والحل المشكلات الشائعة، مثل الأعطال الناتجة عن تغيير إصدارات Node أو Electron، والتي تُحل عادةً بإعادة بناء المكونات المضمنة أو إعادة تثبيت التطبيق بالكامل. بفضل مرونته ودعمه المتعدد للمزودين، وواجهته البسيطة، يُعد Emdash أداة قوية لتطوير البرمجيات المتعددة العوامل، خاصة للمشاريع التي تتطلب تجريبًا سريعًا ومتزامنًا لمجموعة من الحلول البرمجية.
