marimo
نشط ومستقريعمل محلياً ✓بدون اشتراك APIدفتر Python تفاعلي يحافظ على اتساق الخلايا، ويُحفظ كملف نصي قابل للمراجعة والتشغيل كتطبيق.
pip install marimoالاستخدام المثالي لهذه الأداة
مثالي لمحلل بيانات أو مطور Python أو فريق صغير يريد تجربة قابلة للإعادة، ومراجعة واضحة في Git، وتقريرًا أو أداة داخلية تفاعلية من المصدر نفسه. لا تستخدمه بدل منصة BI محكومة أو خدمة إنتاجية تحتاج توسعًا وصلاحيات مؤسسية.
التفاصيل والميزات المصورة
عندما تنفّذ خلايا التحليل بترتيب مختلف، قد تبدو النتائج صحيحة بينما تعتمد فعليًا على حالة قديمة مخفية. marimo يعالج هذه المشكلة بدفتر Python تفاعلي يبني علاقات الاعتماد بين الخلايا، ويعيد تشغيل ما تأثر بالتغيير أو يعلّمه كقديم، ويحفظ الدفتر كملف Python عادي يمكن مراجعته في Git. القيمة العملية ليست «دفترًا أجمل» فقط؛ بل مسار واحد يمكن تحريره كتجربة، وتشغيله كسكربت، وتقديمه كتطبيق ويب.
🧭 ما marimo، وكيف ستستخدمه؟
marimo محرر ووقت تشغيل مفتوح المصدر لدفاتر Python التفاعلية. تكتب خلايا Python أو SQL، وتضيف عناصر تحكم مثل القوائم والمنزلقات والجداول، ثم يحلل marimo أسماء المتغيرات ليكوّن رسم اعتماد موجّهًا. عند تغيير خلية، يشغّل الخلايا التابعة فقط في الوضع التفاعلي الافتراضي، أو يعلّمها بأنها قديمة عند اختيار الوضع الكسول.
يحفظ الدفتر في ملف .py قابل للقراءة، لا في مستند JSON يحتوي مخرجات وحالة تحرير كثيرة. لذلك تستطيع فتحه في محرر marimo، تشغيله مباشرةً عبر Python، أو تقديمه كتطبيق ويب يخفي الشيفرة عن زائر المتصفح افتراضيًا:
marimo edit sales_report.py
python sales_report.py
marimo run sales_report.py
marimo لا يكتشف منطق مشروعك تلقائيًا، ولا يحوّل أي تحليل إلى تطبيق إنتاجي بلا مراجعة. أنت تكتب الشيفرة وتختار البيانات والاعتمادات؛ وهو ينظّم التنفيذ والواجهة حولها.

🎯 الاستخدام المثالي والقيمة المضافة
يناسب marimo محلل البيانات أو مطور Python أو الباحث أو الفريق الصغير الذي يريد تجارب قابلة لإعادة التشغيل وتقارير داخلية تفاعلية دون فصل الدفتر عن الشيفرة. استخدمه لتحليل ملف CSV، واستكشاف قاعدة بيانات عبر SQL، وبناء لوحة خفيفة، أو مشاركة أداة داخلية تعتمد على Python.
لا تختَره لمجرد أن لديك ملف Jupyter قائمًا ومستقرًا ولا تحتاج تفاعلية أو Git؛ التحويل والتعلّم لهما تكلفة. كما أنه ليس بديلًا كاملًا لمنصة ذكاء أعمال ذات حوكمة وصلاحيات متعددة المستويات، ولا لخدمة ويب تحتاج هندسة خلفية وتوسّعًا واختبارات تشغيلية مستقلة.
قيمته المضافة هي تقليل ثلاث فجوات شائعة: حالة الدفتر غير المتسقة، صعوبة مراجعة ملفات الدفاتر، وإعادة كتابة التحليل كتطبيق منفصل. يظل نجاح ذلك مرتبطًا بطريقة كتابة الخلايا ومصادر البيانات واختباراتك.
⚡ الميزة الأولى: تنفيذ تفاعلي مبني على الاعتماد
يفحص marimo الشيفرة تحليلاً ساكنًا ليعرف أي خلية تعرّف متغيرًا وأي خلايا تستخدمه. إذا تغيرت خلية التحميل مثلًا، يشغّل الخلايا التي تعتمد على ناتجها بترتيب حتمي. وإذا حذفت خلية، تُزال متغيراتها من حالة البرنامج بدل بقائها سرًا في الذاكرة.
للتحليلات المكلفة، يمكنك استخدام التشغيل الكسول كي تُعلَّم الخلايا التابعة كقديمة بدل تشغيلها فورًا. هذا يعطيك إشارة واضحة إلى أن المخرجات لم تعد متزامنة، لكنه لا يلغي تكلفة الحساب عندما تقرر تحديثها.
هناك حد مهم: الوثائق تقول إن marimo لا يتتبع كل تعديل داخلي على كائن موجود ولا إسناد الخصائص بالطريقة نفسها التي يتتبع بها تعريف المتغير. اكتب تدفقًا واضحًا يعيد إسناد النتائج، ولا تفترض أن كل طفرة داخل قائمة أو DataFrame ستبني اعتمادًا جديدًا تلقائيًا.

🐍 الميزة الثانية: ملف Python قابل لـ Git والتنفيذ
دفتر marimo شيفرة Python نصية. هذا يجعل فرق Git أوضح من ملفات الدفاتر الغنية بالبيانات الوصفية والمخرجات، ويسمح بمراجعة دالة أو استعلام كسطور عادية. تستطيع كذلك استيراد دوال من دفتر آخر، وتشغيل اختبارات على الشيفرة، واستخدام محررك المعتاد إلى جانب واجهة marimo.
تشغيل python sales_report.py ينفذ الدفتر كسكربت، بينما marimo run يقدمه كتطبيق تفاعلي. هذا لا يعني أن فرق Git ستكون دائمًا صغيرة؛ إعادة ترتيب الخلايا أو تغييرات التنسيق قد تظل واسعة. راجع الملف والصورة أو التطبيق الناتج معًا عندما يكون الشكل جزءًا من القرار.

🗃️ الميزة الثالثة: بيانات وSQL وعناصر تفاعلية في المسار نفسه
يوفر marimo خلايا SQL، وعارض DataFrame تفاعليًا، وعناصر واجهة ترتبط بقيم Python. تستطيع مثلًا تحميل المبيعات، اختيار منطقة من قائمة، ثم تحديث الجدول والرسم والخلاصة التابعة للاختيار. لا تحتاج كتابة callbacks منفصلة لكل عنصر عندما تكون علاقة القيم واضحة في الرسم الاعتمادي.
التثبيت الأساسي لا يجلب كل الإضافات. توصي الوثائق بالحزمة marimo[recommended] لفتح مزايا إضافية مثل SQL والإكمال بالذكاء الاصطناعي والرسم والتصدير. وهذا يزيد عدد الاعتمادات؛ ثبّت ما يحتاجه مشروعك واستخدم ملف قفل في بيئة الفريق.

📦 الميزة الرابعة: اعتماديات مضمنة وبيئات sandbox للحزم
يمكن لوضع sandbox إنشاء بيئة افتراضية معزولة للحزم وتخزين اعتماديات PEP 723 داخل ملف الدفتر. مثال موثق للبدء السريع هو:
uvx marimo edit --sandbox notebook.py
هذا مفيد لإرسال ملف يصف مكتباته بدل قائمة تعليمات منفصلة. لكنه ليس صندوق أمان للشيفرة: العزل يخص الحزم، ولا يمنع الدفتر من قراءة ملفات المستخدم أو الاتصال بالشبكة بصلاحيات العملية. وتوضح الوثائق أن ملف القفل يُدار منفصلًا؛ إذا كانت إعادة البناء الدقيقة مهمة، خزّن القفل وراجعه مع المصدر.

🪜 مثال عملي: تقرير مبيعات تفاعلي صغير
لنفترض أن لديك sales.csv وتريد تقريرًا يستطيع زميلك تصفية نتائجه:
- ثبّت marimo وشغّل البرنامج التعليمي للتأكد من أن الأمر متاح.
- أنشئ الملف عبر
marimo edit sales_report.py. - أضف خلية تستورد pandas أو Polars وتقرأ الملف من مسار معروف.
- أضف قائمة لاختيار المنطقة، واجعل خلية الترشيح تعتمد على قيمتها.
- احسب إجمالي الإيراد وجدول أفضل المنتجات، ثم اعرض رسمًا مناسبًا.
- غيّر المنطقة وتأكد بصريًا من أن النتائج التابعة تتحدث، واختبر حالة البيانات الفارغة.
- احفظ الملف، راجع فرق Git، ثم شغله كسكربت للتحقق من التنفيذ غير التفاعلي.
- شاركه داخليًا عبر
marimo run sales_report.pyخلف مصادقة وHTTPS إذا كان الوصول شبكيًا.
هذا مثال تعليمي لم ننفذه في بيئة الموقع، وليس قياس أداء أو ضمانًا لملف CSV بعينه. انتبه إلى أنواع الأعمدة، الترميز، القيم المفقودة، وحجم البيانات الفعلي.

⚖️ مقارنة بالعمل اليدوي أو بدفتر تقليدي
| المهمة | دفتر تقليدي أو عمل يدوي | مع marimo |
|---|---|---|
| تحديث نتيجة بعد تغيير مدخل | تتذكر الخلايا المطلوب تشغيلها وترتيبها | الاعتمادات تحدد الخلايا التابعة، أو تضع علامة قديم |
| مراجعة التغيير | قد يحتوي الملف مخرجات وبيانات وصفية كثيرة | المصدر ملف Python نصي أسهل للمراجعة |
| تحويل التحليل لأداة داخلية | تعيد بناء الواجهة ومسار التنفيذ | يمكن تقديم الدفتر نفسه كتطبيق ويب |
| إدارة الحزم | تعليمات منفصلة أو بيئة يدوية | PEP 723 وsandbox للحزم خيار متاح |
| التحكم الحر بترتيب التنفيذ | ممكن لكنه قد يخلق حالة خفية | الترتيب تحدده علاقات المتغيرات |
| منصة مؤسسية متعددة الصلاحيات | قد توفرها منتجات متخصصة | تحتاج طبقة نشر ومصادقة وحوكمة حول marimo |
marimo لا يجعل Jupyter «خاطئًا». اختره عندما تكون قابلية الإعادة وGit والتطبيق التفاعلي أهدافًا حقيقية، واحتفظ بالأداة الحالية عندما يكون التحويل بلا عائد واضح.
🚀 التثبيت والتوافق
أبسط أمر موثق هو:
pip install marimo
marimo tutorial intro
ويمكن تثبيت الإضافات الموصى بها عبر pip install "marimo[recommended]". يعلن ملف المشروع دعم Python 3.10 فأحدث في الإصدار المفحوص، وتصف الحزمة نفسها بأنها مستقلة عن نظام التشغيل. توجد مسارات موثقة لـ uv وpixi وconda، إضافة إلى إضافات VS Code/Cursor وPyCharm، لكن هذه البطاقة تسجّل منصة universal فقط لأن جوهر الأداة يعمل عبر Python ولا يتطلب وكيل برمجة بعينه.
أحدث إصدار مستقر تحققنا منه هو 0.25.2 بتاريخ 19 أكتوبر 2026. أظهر GitHub وقت الفحص نحو 23.4 ألف نجمة و1.4 ألف تفرع، وآخر التزام ظاهر على الفرع الرئيسي بتاريخ 30 أكتوبر 2026. الأرقام لحظة زمنية وليست تقييم جودة.
💰 التكلفة والتشغيل المحلي والذكاء الاصطناعي الاختياري
المستودع مرخص بـ Apache-2.0، ويمكن تشغيل المحرر والسكربت والتطبيق محليًا بلا اشتراك أو API مدفوع. توجد خدمة molab سحابية مستقلة، لكن استخدامها ليس شرطًا للوظائف الأساسية.
ميزات الذكاء الاصطناعي اختيارية. تسمح الوثائق بمفاتيحك الخاصة أو نماذج محلية عبر Ollama وواجهات متوافقة مع OpenAI. عند تفعيل مساعد سحابي، قد تُرسل الشيفرة أو السياق إلى مزودك وفق إعداداته، ويستطيع المساعد داخل المحرر استخدام قيم المتغيرات ومخططات DataFrame وقواعد البيانات لتكوين السياق. افصل البيانات الحساسة، واختر نموذجًا محليًا أو عطّل الميزة إن لم تكن هذه المشاركة مقبولة.
🔐 الخصوصية والصلاحيات والأمان
دفتر marimo هو برنامج Python يعمل بصلاحيات المستخدم. افتح وشغّل الملفات الموثوقة فقط، وخصوصًا لأن marimo run يشغّل التطبيق تلقائيًا دائمًا وفق الوثائق. وضع sandbox يعزل الحزم ولا يعزل الملفات أو الشبكة.
عند النشر البعيد:
- اربط الخدمة على
127.0.0.1خلف reverse proxy عندما يناسب البنية. - فعّل مصادقة مناسبة واستخدم HTTPS؛ إعداد cookie الآمن لا يصبح صحيحًا تلقائيًا في كل نشر.
- لا تعتمد على إخفاء مصدر Python في المتصفح كحد أمني للخادم.
- راجع المجلدات التي تسمح بفتح دفاتر منها؛ الملفات الجديدة في مجلد مراقَب قد تصبح قابلة للفتح والتنفيذ.
- تعامل بحذر مع الذاكرة المخبأة المشتركة: التخزين الافتراضي قد يستخدم pickle، وفتح cache غير موثوق قد يؤدي إلى تنفيذ شيفرة. التوقيع والتحقق ميزات اختيارية وليستا حماية تلقائية لكل محمّل.

⚠️ القيود ومتى لا تستخدمه
- التحليل الساكن لا يتتبع كل تعديل داخلي للكائنات أو إسناد الخصائص؛ اكتب تدفق بيانات صريحًا.
- الخلايا الباهظة قد تعاد تلقائيًا في الوضع المتفاعل؛ استخدم lazy أو عطّل الخلية أثناء التحرير، مع العلم أن تطبيق
runيعمل تلقائيًا. - تحويل
.ipynbمتاح، لكنه لا يضمن أن كل widget أو اعتماد جانبي أو ترتيب ضمني سيتحول بلا مراجعة. - الحزمة الموصى بها تضيف اعتماديات؛ لا تثبتها آليًا في إنتاج بلا قفل وفحص.
- التطبيق المقدم من دفتر ليس بديلًا تلقائيًا لهندسة خدمة إنتاجية قابلة للتوسع والمراقبة.
- التعاون اللحظي وإدارة المستخدمين والسياسات المؤسسية ليست نتيجة تلقائية من تشغيل النسخة المفتوحة المصدر محليًا.
- لم نثبت marimo أو ننفذ المثال أو نختبر الأداء، ولم نجرِ تدقيقًا أمنيًا مستقلًا.
📚 المصادر وتاريخ التحقق
تم التحقق في 31 أكتوبر 2026 من المصادر الأصلية:
- مستودع marimo الرسمي — الوصف، النشاط، الترخيص، النجوم والتفرعات.
- الإصدار 0.25.2 — النسخة والتاريخ والتغييرات.
- التثبيت الرسمي — pip وuv وpixi وconda والحزمة الموصى بها.
- شرح التفاعلية — رسم الاعتماد، lazy، وحدود تتبع الطفرات.
- تشغيل التطبيقات والسكربتات — أوضاع التحرير والتشغيل.
- إدارة الحزم وsandbox — PEP 723 وحدود العزل.
- إعدادات الأمان والنشر خلف Nginx — المصادقة وHTTPS والربط.
- توثيق cache — pickle والتوقيع ومخاطر المصادر غير الموثوقة.
للمقارنة راجعنا SOPS 3.13.3 من مستودعه ووثائقه الرسمية: أداة أمنية لنصوص الأسرار المشفرة، مرخصة MPL-2.0 وتدعم مزودي مفاتيح متعددين. اخترنا marimo لأنه يضيف مجال البيانات والتشغيل الخفيف بعد بطاقة توثيق، بينما يتقاطع SOPS مع فئة الأمن الممثلة حديثًا بـ Gitleaks. استُخدمت GitHub Topics/Trending وواجهات الناشرين وclaudeskills.info وdshmarket.com للاكتشاف فقط؛ اعتمدت تفاصيل المنتج المنشورة على المصادر الأصلية أعلاه.