
مجموعة منسقة من موارد تعلم الأمن السيبراني، وتقارير حل تحديات CTF، وأوراق بحثية، ومختبرات عملية لتطوير المهارات العملية عبر مجالات أمن الويب، والاستغلال، والاستخبارات مفتوحة المصدر، والطب الشرعي الرقمي.
IDE ذكي مفتوح المصدر يخطط قبل أن يكتب الشيفرة.
MIT License · بداية سريعة · ما يضيفه Modo · المساهمة
أردت ميزة صغيرة في أداة برمجة ذكية. لم أجد طريقة لاقتراحها. فسألت نفسي: ما مدى صعوبة بناء شيء مثل Kiro أو Cursor أو Windsurf؟
اتضح — ليس بالصعوبة التي تظنها. بدءًا من محرر Void (وهو بدوره فرع من VS Code)، وصلت إلى حوالي 60–70% مما تقدمه تلك الأدوات في فترة قصيرة من البناء. كان الأمر ممتعًا حقًا.
هذا هو Modo. IDE سطح مكتب مستقل حيث تتحول الأوامر إلى خطط منظمة قبل أن تتحول إلى شيفرة. مفتوح المصدر، مرخص بموجب MIT، يمكنك التعديل عليه.
كل ما يلي بُني فوق الدردشة الذكية الموجودة في Void، والتحرير المضمن (Cmd+K)، والإكمال التلقائي، ودعم مزودي LLM المتعددين، واستخدام الأدوات، وتكامل MCP. إليك ما هو جديد:
معظم أدوات الذكاء الاصطناعي تذهب: أمر → شيفرة. Modo يذهب: أمر → متطلبات → تصميم → مهام → شيفرة.
المواصفات موجودة في .modo/specs/<name>/ كثلاثة ملفات Markdown:
.modo/specs/auth-flow/
├── requirements.md # قصص المستخدمين، معايير القبول
├── design.md # الهندسة، المكونات، نماذج البيانات
└── tasks.md # قائمة مرجعية لخطوات التنفيذ
أنشئ واحدة باستخدام Cmd+Shift+S أو باختيار وضع Spec في منتقي الجلسات. اختر ميزة أو إصلاح عطل، ثم سير عمل يعتمد على المتطلبات أولاً أو التصميم أولاً. يقوم الوكيل بملء كل مستند، تراجعه أنت، ثم ينفذ المهام واحدة تلو الأخرى — ويحددها كمكتملة وهو يعمل.
المهام تُحفظ على القرص. أغلق IDE، عد، واستأنف من حيث توقفت.
افتح أي tasks.md وسيظهر لكل مهمة معلقة زر قابل للنقر "▶ Run Task" ضمنيًا. زر "Run All Pending Tasks" يظهر في الأعلى. المهام الجارية تظهر دائرة تحميل، والمكتملة تظهر علامة صح. الوكيل يحدد - [ ] → - [~] → - [x] أثناء العمل.
مستندات Markdown في .modo/steering/ تحقن قواعد المشروع في كل تفاعل مع الذكاء الاصطناعي — دون حاجة لتكرار نفسك.
---
inclusion: always
---
# قواعد المشروع
- استخدم TypeScript strict mode
- جميع النقاط النهائية تحتاج التحقق من الإدخال
ثلاثة أنماط للإدراج:
always — كل تفاعلfileMatch — عندما يتطابق الملف النشط مع نمط globmanual — يُشار إليه عبر أوامر / في الدردشةيدعم مراجع #[[file:path]] لربط مواصفات OpenAPI أو مخططات GraphQL أو أي مستند مشروع.
إعدادات JSON في .modo/hooks/ تؤتمت الإجراءات حول دورة حياة الوكيل.
{
"name": "Lint on Save",
"version": "1.0.0",
"when": { "type": "fileEdited", "patterns": ["**/*.ts"] },
"then": { "type": "runCommand", "command": "npx eslint --fix ${filePath}" }
}
10 أنواع أحداث: fileEdited, fileCreated, fileDeleted, promptSubmit, agentStop, preToolUse, postToolUse, preTaskExecution, postTaskExecution, userTriggered. نوعان من الإجراءات: askAgent أو runCommand. هوك ما قبل الأداة يمكنه منع التنفيذ. كشف التبعيات الدائرية مدمج.
قرص في شريط الحالة يبدل بين Autopilot (الوكيل يعمل بشكل مستقل) و Supervised (الوكيل يتوقف للموافقة). موصول مباشرة بإعدادات الموافقة التلقائية للتعديلات والأوامر الطرفية وأدوات MCP.
جلسات دردشة متعددة كعلامات تبويب. لكل منها مسارها الخاص، وسياقها، وتاريخها. افتح جديدة، وأغلق القديمة، أو شغلها جميعًا مرة واحدة. لوحة تاريخ قابلة للبحث تسمح بالعثور على المحادثات السابقة.
ابدأ جلسة في وضع Vibe للاستكشاف الحر، أو وضع Spec للتطوير المنظم. في وضع Spec، يؤدي أمرك إلى تشغيل سير عمل كامل: المتطلبات → التصميم → المهام. يتم حقن محتوى المواصفات النشط تلقائيًا في موجه النظام للـ LLM.
أطلق وكلاء متوازيين لمهام فرعية مستقلة. لكل منها مساره الخاص ووصول للأدوات. تتبع الحالة، ألغ المهام الجارية، أو امسح المكتملة.
حزم معرفة قابلة للتثبيت تجمع توثيقًا وملفات توجيه وإعدادات MCP. قوى مدمجة لـ TypeScript و React و Testing و API Design و Docker. تُفعَّل بناءً على كلمات مفتاحية في أوامرك. ثبّت قوى مخصصة من روابط URL.
شريط جانبي بأقسام قابلة للطي لـ Specs (مع أشرطة تقدم وأعداد المهام)، و Agent Hooks (تظهر تدفق الحدث → الإجراء)، و Steering (تظهر وضع الإدراج)، و Powers.
اكتب / في الدردشة للوصول إلى الهوك اليدوي، وملفات التوجيه، والأوامر المدمجة: إنشاء مواصفات، تشغيل المهام، تصدير المحادثة، تهيئة مساحة العمل.
يتم إدراج ملفات التوجيه والمواصفات النشطة تلقائيًا في بداية كل تفاعل مع LLM. يتبع الوكيل قواعد مشروعك ويعرف ما يبنيه دون الحاجة لإخباره في كل مرة.
سمة "Modo Dark" مصممة خصيصًا مع لمسات زرقاء مخضرة، وإبراز نحوي مضبوط، وألوان طرفية.
يظهر رمز Modo قبل كل رد مع تعابير عشوائية أثناء التدفق وتعبير هادئ بعد الإكمال.
أيقونة تطبيق مخصصة، عنوان نافذة، شعار علامة مائية، هوية المنتج، بروتوكول URL (modo://)، وأدلة البيانات (.modo-editor/). تم استبدال جميع إشارات Void في الواجهة بمكافئات Modo.
Modo: Initialize Workspace ينشئ هيكل الدليل .modo/ بالكامل مع ملفات توجيه افتراضية وقوالب إعدادات.
تصدير أي محادثة كـ Markdown إلى الحافظة من لوحة الأوامر.
لن يكون Modo موجودًا بدون هذه المشاريع:
Void نفسه يوفر: دعم مزودين متعددين (Anthropic, OpenAI, Gemini, Ollama, Mistral, Groq, OpenRouter)، شريط دردشة جانبي، تحرير مضمن عبر Cmd+K، إكمال تلقائي، تطبيق سريع/بطيء، استدعاء أدوات، تكامل MCP، تكامل SCM، ونظام الإعدادات.
Modo يضيف كل ما في قسم ما يضيفه Modo فوق هذه الأساسيات.
git clone https://github.com/mohshomis/modo.git
cd modo
npm install # يتطلب Node 20
npm run buildreact # تجميع واجهة React
npm run watch # تجميع TypeScript (استمر في التشغيل في طرفية)
./scripts/code.sh # تشغيل Modo
في أول تشغيل، إرشادات البدء ترشدك لتوصيل مزود نموذج. الطبقة المجانية من Gemini هي أسرع طريقة للبدء.
.modo/ # إعدادات لكل مشروع (يتم إنشاؤها بواسطة "Initialize Workspace")
├── steering/ # قواعد markdown تُحقن في سياق الذكاء الاصطناعي
├── specs/ # سير عمل منظم للميزات/إصلاح الأخطاء
├── hooks/ # أتمتة أحداث JSON → إجراء
└── settings/ # إعدادات MCP وغيرها
src/vs/workbench/contrib/void/
├── common/
│ ├── modoSpecService.ts # CRUD للمواصفات، تحليل المهام، بناء السياق
│ ├── modoSteeringService.ts # تحميل ملفات التوجيه، تحليل front-matter، تجميع السياق
│ ├── modoHookService.ts # تحميل الهوك، التحقق، مطابقة الأحداث، الإطلاق
│ ├── modoPowersService.ts # سجل القوى، التفعيل، مطابقة الكلمات المفتاحية
│ └── modoSubagentService.ts # إطلاق وكلاء متوازيين وإدارة دورة الحياة
├── browser/
│ ├── modoExplorerPane.ts # عروض الشريط الجانبي للمواصفات، الهوك، التوجيه، القوى
│ ├── modoSpecActions.ts # أوامر إنشاء مواصفات، تشغيل مهام، فتح ملفات
│ ├── modoTaskCodeLens.ts # أزرار "Run Task / Done" المضمنة في tasks.md
│ ├── modoSlashCommands.ts # منتقي أوامر /، تصدير، إدارة الجلسات
│ ├── modoStatusBar.ts # تبديل الطيار الآلي، مؤشر المواصفات النشطة
│ ├── modoHookWiring.ts # أحداث تغيير الملف → نظام الهوك
│ └── react/src/
│ ├── sidebar-tsx/ # علامات تبويب الجلسات، التاريخ، وضعي vibe/spec، مفتاح الطيار الآلي
│ ├── modo-spec-panel/ # واجهة React لإدارة المواصفات
│ └── modo-hooks-panel/ # واجهة React لإدارة الهوك
└── extensions/
└── modo-theme/ # سمة داكنة مخصصة مع لمسات زرقاء مخضرة
هذا المشروع يُصان بواسطة المجتمع. بنيته كتجربة تعليمية — لا أُصونه بفاعلية وفق جدول. إذا كنت تريد إصلاح شيء أو إضافة شيء، أفضل طريق هو تفريع المشروع (fork) وتقديم طلب سحب (PR).
npm run watch # تجميع TypeScript (استمر في التشغيل)
npm run buildreact # واجهة React (شغّل بعد تغيير ملفات .tsx)
./scripts/code.sh # تشغيل IDE
الخدمات الأساسية: src/vs/workbench/contrib/void/common/. المنطق في جانب المتصفح: browser/. مكونات React: browser/react/src/.
المساهمون الجادون الذين يريدون صلاحية الالتزام (commit access) — افتح مشكلة (issue). انظر CONTRIBUTING.md للتفاصيل.
PRs مرحب بها. مرخصة بموجب MIT.
MIT
| المشروع | ما يوفره | الترخيص |
|---|
| Void | دردشة ذكية، تحرير مضمن، إكمال تلقائي، LLM متعدد المزودين، استخدام أدوات، MCP، محرك تطبيق | MIT |
| VS Code | نواة المحرر، نظام الإضافات، الطرفية، نظام الملفات، كل ما تحتها | MIT |
| Roo Code | بعض الأنماط المشار إليها أثناء التطوير | Apache 2.0 |
| الأمر | الاختصار | الوصف |
|---|
| إنشاء مواصفات | Cmd+Shift+S | مواصفات جديدة (ميزة/إصلاح عطل، متطلبات أولاً/تصميم أولاً) |
| تشغيل المهمة التالية | — | تنفيذ مهمة المواصفات المعلقة التالية |
| تشغيل جميع المهام | — | تنفيذ جميع المهام المتبقية |
| فتح ملفات المواصفات | — | فتح المتطلبات والتصميم والمهام في المحرر |
| حقن سياق المواصفات | — | تحميل سياق المواصفات في الدردشة |
| إعادة تحميل المواصفات | — | إعادة قراءة ملفات المواصفات من القرص |
| تهيئة مساحة العمل | — | إنشاء هيكل الدليل .modo/ |
| أوامر الشرطة المائلة | — | فتح منتقي الأوامر / |
| تصدير المحادثة | — | نسخ الدردشة كـ Markdown |
| تبديل الطيار الآلي | — | تبديل Autopilot / Supervised |
| فتح الدردشة | Cmd+L | التركيز على لوحة الدردشة |
| تحرير مضمن | Cmd+K | تحرير الشيفرة بشكل مضمن مع الذكاء الاصطناعي |