/ Diretório / Playground / CodeRunner
● Comunidade instavm ⚡ Instantâneo

CodeRunner

por instavm · instavm/coderunner

Execução de código isolada em VM para agentes — Python, Playwright, kernel Jupyter persistente, tudo em sandbox fora do seu host.

CodeRunner dá ao Claude (e a outros agentes) um sandbox seguro e persistente: execute Python com um kernel Jupyter de longa duração, faça scraping com Playwright, manipule PDFs e imagens. Isolamento em nível de VM baseado em container significa que você pode deixar um agente executar código não confiável sem danificar sua máquina. Expõe-se como MCP para funcionar em qualquer cliente.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

pronto

Instalar

Escolha seu 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
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.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 o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

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

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

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

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

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

O Continue usa um array de objetos de servidor em vez de um map.

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

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

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

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: CodeRunner

Deixar o Claude executar código não confiável sem colocar seu laptop em risco

👤 Devs experimentando com código gerado automaticamente ⏱ ~15 min intermediate

Quando usar: Você quer que o Claude escreva + execute um script que você não revisou completamente.

Pré-requisitos
  • macOS Apple Silicon + Python 3.10+ — Limitação atual; suporte a Linux varia
  • Skill instalada — git clone + ./install.sh conforme o README do projeto
Fluxo
  1. Passar a tarefa
    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 executado; saída mostrada; nada tocou meu filesystem
  2. Iterar
    Add a chart of weekly mileage. Re-run.✓ Copiado
    → Gráfico renderizado; estado do kernel preservado (sem re-import)
  3. Exportar resultados
    Save CSV + chart to ./out/ on host (this only).✓ Copiado
    → Apenas esse caminho escrito; sandbox continua selado

Resultado: Experimentos rápidos sem «ops, deletou /Users».

Armadilhas
  • Acesso à rede ainda permitido no sandbox — Desabilite a rede se executar código verdadeiramente não confiável; caso contrário pode exfiltrar dados
Combine com: filesystem

Análise de dados persistente com Claude

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

Quando usar: Você quer uma sessão exploratória de dados de 30 minutos sem perder o estado do kernel.

Fluxo
  1. Carregar dados uma vez
    Use coderunner. Load /data/sales.csv into df. Show schema + 5 sample rows.✓ Copiado
    → df no kernel; persiste pela sessão
  2. Queries ad-hoc
    Pivot by region × month, show top 5 anomalies.✓ Copiado
    → Pivot + linhas sinalizadas
  3. Exportar
    Save the anomalies subset to /out/anomalies.csv on host.✓ Copiado
    → CSV em /out/

Resultado: Análise com qualidade de notebook via chat, com código rodando de verdade.

Armadilhas
  • Estado do kernel deriva em sessões longas; resultados baseados em variáveis obsoletas — Reinicie o kernel entre tarefas não relacionadas; o Claude pode emitir %reset
Combine com: filesystem

Fazer scraping de um site com JS pesado com segurança

👤 Devs precisando de dados pontuais de SPAs ⏱ ~20 min intermediate

Quando usar: O site precisa de navegador completo; você não quer um processo Chrome rodando no seu host.

Fluxo
  1. Iniciar uma sessão
    Use coderunner Playwright. Open <url>, wait for the table, extract rows as JSON.✓ Copiado
    → JSON retornado; navegador ficou no sandbox
  2. Iterar seletores
    Selector missed the price column; adjust to find it.✓ Copiado
    → Seletor atualizado; dados completos

Resultado: Dados extraídos; sem rastro de navegador no host.

Armadilhas
  • Site detecta headless e bloqueia — Mude para chromium com as opções --headed=false-but-stealth que a skill expõe

Combinações

Combine com outros MCPs para 10× de alavancagem

coderunner-skill + filesystem

Mover dados dentro/fora do sandbox apenas via caminhos montados

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

Pipeline de busca → fetch → análise

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

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
run_python code: str Qualquer execução de código 0
browser_navigate url, wait_for? Sessão Playwright para scraping de SPA 0
browser_extract selector, format Extrair dados após navegar 0
pdf_ops input_path, op, args Mesclar / dividir / extrair PDF 0
image_ops input_path, op, args Redimensionar, converter formato, OCR 0
kernel_reset Entre sessões não relacionadas 0

Custo e limites

O que custa rodar

Cota de API
Nenhuma — local
Tokens por chamada
Apenas os tokens de código/saída
Monetário
Gratuito
Dica
Kernel persistente economiza tokens vs re-importar; reinicie apenas quando o estado estiver errado

Segurança

Permissões, segredos, alcance

Escopos mínimos: Apenas caminhos de filesystem montados Rede on/off via configuração
Armazenamento de credenciais: Não coloque secrets no sandbox a menos que esteja OK com o agente vendo-os
Saída de dados: Se a rede estiver ativa, o sandbox pode acessar qualquer URL — desabilite para execuções sensíveis
Nunca conceda: Mount de $HOME ou / — o sandbox perde o sentido

Solução de problemas

Erros comuns e correções

install.sh falha no Linux

O projeto é de primeira classe em macOS Apple Silicon; suporte a Linux varia. Verifique os issues para notas específicas de distro

Estado obsoleto do Playwright

Execute kernel_reset; contexto de navegador antigo pode persistir entre chamadas

Sandbox não consegue acessar a internet

Rede desabilitada na configuração; ative se precisar. Por outro lado, isole quando não for necessário

Dependências faltando na skill de PDF/imagem

Imagem do container inclui as comuns; reconstrua a imagem para adicionar dependências customizadas

Alternativas

CodeRunner vs. outros

AlternativaQuando usarTroca
Beta de execução de código da AnthropicVocê quer execução server-side sem sandbox localNa nuvem; dados saem da sua máquina
Docker manualVocê quer controle total da imagem do containerConfiguração manual; sem servidor MCP pronto

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills