/ الدليل / الملعب / CodeRunner
● مجتمع instavm ⚡ فوري

CodeRunner

بواسطة instavm · instavm/coderunner

تنفيذ كود معزول بـ VM للوكلاء — Python، Playwright، نواة Jupyter مستمرة، كل ذلك في بيئة معزولة عن مضيفك.

يمنح CodeRunner كلود (والوكلاء الآخرين) بيئة رمل آمنة ومستمرة: تشغيل Python بنواة Jupyter طويلة الأمد، تجريف الويب بـ Playwright، معالجة PDF والصور. العزل على مستوى VM يعني إمكانية السماح للوكيل بتنفيذ كود غير موثوق دون تدمير جهازك. يعرض نفسه كخادم MCP للعمل في أي عميل.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

جاهز

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "coderunner-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/instavm/coderunner",
        "~/.claude/skills/coderunner"
      ],
      "_inferred": true
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "coderunner-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/instavm/coderunner",
        "~/.claude/skills/coderunner"
      ],
      "_inferred": true
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "coderunner-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/instavm/coderunner",
        "~/.claude/skills/coderunner"
      ],
      "_inferred": true
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "coderunner-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/instavm/coderunner",
        "~/.claude/skills/coderunner"
      ],
      "_inferred": true
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "coderunner-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/instavm/coderunner",
        "~/.claude/skills/coderunner"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "coderunner-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/instavm/coderunner",
          "~/.claude/skills/coderunner"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add coderunner-skill -- git clone https://github.com/instavm/coderunner ~/.claude/skills/coderunner

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: CodeRunner

السماح لكلود بتشغيل كود غير موثوق دون المخاطرة بحاسوبك المحمول

👤 المطورون الذين يجربون الكود المولّد تلقائياً ⏱ ~15 min intermediate

متى تستخدمه: تريد أن يكتب كلود سكريبتاً لم تراجعه بالكامل وينفذه.

المتطلبات الأساسية
  • macOS Apple Silicon + Python 3.10+ — Current limitation; Linux support varies
  • المهارة مثبّتة — git clone + ./install.sh per project README
الخطوات
  1. تسليم المهمة
    Use coderunner. Write a Python script that downloads my Strava activities CSV from <url>, parses, and computes weekly mileage. Run it in the sandbox.✓ تم النسخ
    → تم تنفيذ السكريبت؛ عُرض الخرج؛ لم يُمسّ نظام الملفات
  2. التكرار
    Add a chart of weekly mileage. Re-run.✓ تم النسخ
    → تم رسم الرسم البياني؛ حالة النواة محفوظة (لا داعي لإعادة الاستيراد)
  3. تصدير النتائج
    Save CSV + chart to ./out/ on host (this only).✓ تم النسخ
    → فقط هذا المسار كُتب؛ البيئة المعزولة لا تزال مغلقة

النتيجة: تجارب سريعة دون خطر حذف /Users بالخطأ.

المزالق
  • الوصول للشبكة لا يزال مسموحاً في البيئة المعزولة — أوقف الشبكة عند تشغيل كود غير موثوق حقاً؛ وإلا يمكنه تسريب البيانات
اجمعها مع: filesystem

تحليل بيانات مستمر مع كلود

👤 المحللون الذين يستخدمون كلود كمساعد Jupyter ⏱ ~30 min beginner

متى تستخدمه: تريد جلسة استكشاف بيانات مدتها 30 دقيقة دون فقدان حالة النواة.

الخطوات
  1. تحميل البيانات مرة واحدة
    Use coderunner. Load /data/sales.csv into df. Show schema + 5 sample rows.✓ تم النسخ
    → df في النواة؛ يستمر طوال الجلسة
  2. استعلامات مخصصة
    Pivot by region × month, show top 5 anomalies.✓ تم النسخ
    → Pivot + صفوف مُشار إليها
  3. التصدير
    Save the anomalies subset to /out/anomalies.csv on host.✓ تم النسخ
    → CSV في /out/

النتيجة: تحليل بجودة Notebook عبر الدردشة مع تشغيل كود فعلي.

المزالق
  • حالة النواة تتباعد في الجلسات الطويلة؛ النتائج مبنية على متغيرات قديمة — أعد تشغيل النواة بين المهام غير المترابطة؛ يمكن لكلود إصدار %reset
اجمعها مع: filesystem

استخراج بيانات من موقع JS-ثقيل بأمان

👤 المطورون الذين يحتاجون بيانات لمرة واحدة من تطبيقات SPA ⏱ ~20 min intermediate

متى تستخدمه: الموقع يحتاج متصفحاً كاملاً؛ لا تريد تشغيل عملية Chrome على مضيفك.

الخطوات
  1. بدء جلسة
    Use coderunner Playwright. Open <url>, wait for the table, extract rows as JSON.✓ تم النسخ
    → JSON مُعاد؛ المتصفح بقي في البيئة المعزولة
  2. تكرار المحددات
    Selector missed the price column; adjust to find it.✓ تم النسخ
    → محدد محدّث؛ البيانات مكتملة

النتيجة: بيانات مستخرجة؛ لا أثر للمتصفح على المضيف.

المزالق
  • الموقع يكشف الوضع بدون رأس ويحجب — التحويل إلى chromium مع خيارات التخفي التي تعرضها المهارة

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

coderunner-skill + filesystem

نقل البيانات من/إلى البيئة المعزولة عبر المسارات المُركّبة فقط

Mount only /Users/me/data and /Users/me/out; everything else is read-only.✓ تم النسخ
coderunner-skill + duckduckgo-mcp

خط أنابيب بحث → جلب → تحليل

Search via duckduckgo, scrape via coderunner Playwright, analyze in Python.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
run_python code: str أي تنفيذ كود 0
browser_navigate url, wait_for? جلسة Playwright لاستخراج SPA 0
browser_extract selector, format سحب البيانات بعد التصفح 0
pdf_ops input_path, op, args دمج / تقسيم / استخراج PDF 0
image_ops input_path, op, args تغيير الحجم، تحويل الصيغة، OCR 0
kernel_reset بين الجلسات غير المترابطة 0

التكلفة والحدود

تكلفة التشغيل

حصة API
لا يوجد — محلي
الرموز لكل استدعاء
فقط رموز الكود/الخرج
التكلفة المالية
مجاني
نصيحة
النواة المستمرة توفر الرموز مقارنة بإعادة الاستيراد؛ أعد التشغيل فقط عند خطأ الحالة

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: Mounted filesystem paths only Network on/off via config
تخزين بيانات الاعتماد: لا تضع الأسرار في البيئة المعزولة إلا إذا كنت موافقاً على رؤية الوكيل لها
نقل البيانات الخارجي: إذا كانت الشبكة مفعّلة، يمكن للبيئة المعزولة الوصول لأي URL — أوقفها للتشغيلات الحساسة
لا تمنح أبدًا: Mount of $HOME or / — sandbox loses its point

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

install.sh يفشل على Linux

المشروع مُحسَّن أولاً لـ macOS Apple Silicon؛ دعم Linux متفاوت. راجع المشكلات للملاحظات الخاصة بالتوزيعة

حالة Playwright قديمة

شغّل kernel_reset؛ سياق المتصفح القديم قد يستمر عبر الاستدعاءات

البيئة المعزولة لا تصل للإنترنت

الشبكة معطّلة في الإعدادات؛ فعّلها إذا احتجت. وبالعكس، عزّلها عند عدم الحاجة

تبعيات مهارة PDF/صورة مفقودة

صورة الحاوية تتضمن الشائعة؛ أعد بناء الصورة لإضافة تبعيات مخصصة

البدائل

CodeRunner مقابل البدائل

البديلمتى تستخدمهاالمقايضة
Anthropic code execution betaتريد تنفيذاً من جهة الخادم بدون بيئة معزولة محليةسحابي؛ البيانات تغادر جهازك
Docker by handتريد تحكماً كاملاً في صورة الحاويةإعداد يدوي؛ لا خادم MCP جاهز

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills