/ Directorio / Playground / CodeRunner
● Comunidad instavm ⚡ Instantáneo

CodeRunner

por instavm · instavm/coderunner

Ejecución de código aislada en VM para agentes — Python, Playwright, kernel de Jupyter persistente, todo en sandbox lejos de tu host.

CodeRunner da a Claude (y otros agentes) un sandbox seguro y persistente: ejecuta Python con un kernel de Jupyter de larga vida, hace scraping con Playwright, manipula PDFs e imágenes. El aislamiento a nivel de VM en contenedor significa que puedes dejar que un agente ejecute código no confiable sin arruinar tu máquina. Se expone como servidor MCP para funcionar en cualquier cliente.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

listo

Instalar

Elige tu cliente

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

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

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

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

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

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

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

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

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

Continue usa un array de objetos de servidor en lugar de un mapa.

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

Añádelo a context_servers. Zed recarga en caliente al guardar.

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

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: CodeRunner

Dejar que Claude ejecute código no confiable sin poner en riesgo tu portátil

👤 Devs experimentando con código generado automáticamente ⏱ ~15 min intermediate

Cuándo usarlo: Quieres que Claude escriba y ejecute un script que no revisaste completamente.

Requisitos previos
  • macOS Apple Silicon + Python 3.10+ — Limitación actual; el soporte de Linux varía
  • Skill instalada — git clone + ./install.sh según el README del proyecto
Flujo
  1. Darle la tarea
    Use coderunner. Write a Python script that downloads my Strava activities CSV from <url>, parses, and computes weekly mileage. Run it in the sandbox.✓ Copiado
    → Script ejecutado; salida mostrada; nada tocó mi sistema de archivos
  2. Iterar
    Add a chart of weekly mileage. Re-run.✓ Copiado
    → Gráfico renderizado; estado del kernel conservado (sin volver a importar)
  3. Exportar resultados
    Save CSV + chart to ./out/ on host (this only).✓ Copiado
    → Solo esa ruta escrita; el sandbox permanece sellado

Resultado: Experimentos rápidos sin el «oops, borró /Users».

Errores comunes
  • El acceso a la red todavía está permitido en el sandbox — Deshabilita la red si ejecutas código verdaderamente no confiable; de lo contrario puede exfiltrar datos
Combinar con: filesystem

Análisis de datos persistente con Claude

👤 Analistas usando Claude como copiloto de Jupyter ⏱ ~30 min beginner

Cuándo usarlo: Quieres una sesión de exploración de datos de 30 minutos sin perder el estado del kernel.

Flujo
  1. Cargar datos una vez
    Use coderunner. Load /data/sales.csv into df. Show schema + 5 sample rows.✓ Copiado
    → df en el kernel; persiste durante la sesión
  2. Consultas ad-hoc
    Pivot by region × month, show top 5 anomalies.✓ Copiado
    → Tabla dinámica + filas marcadas
  3. Exportar
    Save the anomalies subset to /out/anomalies.csv on host.✓ Copiado
    → CSV en /out/

Resultado: Análisis de calidad de notebook a través del chat, con código real ejecutándose.

Errores comunes
  • El estado del kernel se desvía en sesiones largas; resultados basados en variables obsoletas — Reinicia el kernel entre tareas no relacionadas; Claude puede emitir %reset
Combinar con: filesystem

Hacer scraping de un sitio con mucho JavaScript de forma segura

👤 Devs que necesitan datos puntuales de SPAs ⏱ ~20 min intermediate

Cuándo usarlo: El sitio necesita un navegador completo; no quieres un proceso de Chrome ejecutándose en tu host.

Flujo
  1. Iniciar una sesión
    Use coderunner Playwright. Open <url>, wait for the table, extract rows as JSON.✓ Copiado
    → JSON devuelto; el navegador se quedó en el sandbox
  2. Iterar selectores
    Selector missed the price column; adjust to find it.✓ Copiado
    → Selector actualizado; datos completos

Resultado: Datos extraídos; sin huella de navegador en el host.

Errores comunes
  • El sitio detecta headless y bloquea — Cambia a chromium con las opciones --headed=false-but-stealth que expone la skill

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

coderunner-skill + filesystem

Mover datos dentro/fuera del sandbox solo mediante rutas montadas

Mount only /Users/me/data and /Users/me/out; everything else is read-only.✓ Copiado
coderunner-skill + duckduckgo-mcp

Pipeline buscar → obtener → analizar

Search via duckduckgo, scrape via coderunner Playwright, analyze in Python.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
run_python code: str Cualquier ejecución de código 0
browser_navigate url, wait_for? Sesión de Playwright para scraping de SPA 0
browser_extract selector, format Extraer datos después de navegar 0
pdf_ops input_path, op, args Fusionar / dividir / extraer PDF 0
image_ops input_path, op, args Redimensionar, conversión de formato, OCR 0
kernel_reset Entre sesiones no relacionadas 0

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Ninguna — local
Tokens por llamada
Solo los tokens de código/salida
Monetario
Gratuito
Consejo
El kernel persistente ahorra tokens vs volver a importar; reinicia solo cuando el estado está mal

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: Mounted filesystem paths only Network on/off via config
Almacenamiento de credenciales: No pongas secretos en el sandbox a menos que estés bien con que el agente los vea
Salida de datos: Si la red está activada, el sandbox puede acceder a cualquier URL — desactívala para ejecuciones sensibles
No conceder nunca: Montaje de $HOME o / — el sandbox pierde su propósito

Resolución de problemas

Errores comunes y soluciones

install.sh falla en Linux

El proyecto es macOS Apple Silicon en primera clase; el soporte de Linux varía. Revisa las issues para notas específicas de distribución

Estado obsoleto de Playwright

Ejecuta kernel_reset; el contexto del navegador antiguo puede persistir entre llamadas

El sandbox no puede llegar a internet

La red está deshabilitada en la configuración; actívala si la necesitas. Por el contrario, aíslala cuando no sea necesaria

Faltan dependencias en la skill de PDF/imagen

La imagen del contenedor incluye las comunes; reconstruye la imagen para añadir dependencias personalizadas

Alternativas

CodeRunner vs otros

AlternativaCuándo usarlaContrapartida
Anthropic code execution betaQuieres ejecución del lado del servidor sin sandbox localEn la nube; los datos salen de tu máquina
Docker by handQuieres control total de la imagen del contenedorConfiguración manual; sin servidor MCP listo para usar

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills