/ Каталог / Песочница / CodeRunner
● Сообщество instavm ⚡ Сразу

CodeRunner

автор instavm · instavm/coderunner

VM-изолированное выполнение кода для агентов — Python, Playwright, персистентное ядро Jupyter, всё в песочнице вдали от хоста.

CodeRunner даёт Claude (и другим агентам) безопасную, персистентную песочницу: запускайте 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 использует массив объектов серверов, а не map.

~/.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

Когда использовать: Хотите, чтобы Claude написал и запустил скрипт, который вы не полностью проверили.

Предварительные требования
  • macOS Apple Silicon + Python 3.10+ — Текущее ограничение; поддержка Linux варьируется
  • Установленный скилл — git clone + ./install.sh по 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

Персистентный анализ данных с Claude

👤 Аналитики, использующие Claude как 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.✓ Скопировано
    → Сводная таблица + аномальные строки
  3. Экспортировать
    Save the anomalies subset to /out/anomalies.csv on host.✓ Скопировано
    → CSV в /out/

Итог: Notebook-качество анализа через чат с реально выполняемым кодом.

Подводные камни
  • Состояние ядра дрейфует при длинных сессиях; результаты основаны на устаревших переменных — Перезапускайте ядро между несвязанными задачами; Claude умеет выполнять %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.✓ Скопировано
    → Обновлённый селектор; данные полные

Итог: Данные извлечены; на хосте нет следов браузера.

Подводные камни
  • Сайт обнаруживает headless и блокирует — Переключитесь на параметры stealth для 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
Нет — локально
Токенов на вызов
Только токены кода/вывода
Деньги
Бесплатно
Совет
Персистентное ядро экономит токены на повторном импорте; сбрасывайте только при неверном состоянии

Безопасность

Права, секреты, радиус поражения

Минимальные скоупы: Только примонтированные пути файловой системы Сеть вкл/выкл через конфигурацию
Хранение учётных данных: Не помещайте секреты в песочницу, если не готовы к тому, что агент их увидит
Исходящий трафик: При включённой сети песочница может обращаться к любому URL — отключайте для чувствительных запусков
Никогда не давайте: Монтирование $HOME или / — песочница теряет смысл

Устранение неполадок

Частые ошибки и исправления

install.sh падает на Linux

Проект первичен для macOS Apple Silicon; поддержка Linux варьируется. Проверьте issues на дистрибутив-специфичные заметки

Устаревшее состояние Playwright

Запустите kernel_reset; старый контекст браузера может персистировать между вызовами

Песочница не имеет доступа к интернету

Сеть отключена в конфигурации; включите при необходимости. И наоборот — изолируйте когда не нужна

Скиллу PDF/image не хватает зависимостей

Образ контейнера включает распространённые; пересоберите образ для добавления кастомных зависимостей

Альтернативы

CodeRunner в сравнении

АльтернативаКогда использоватьКомпромисс
Anthropic code execution betaНужно серверное выполнение без локальной песочницыНа стороне облака; данные покидают вашу машину
Docker вручнуюНужен полный контроль над образом контейнераРучная настройка; нет MCP-сервера из коробки

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills