/ Verzeichnis / Playground / CodeRunner
● Community instavm ⚡ Sofort

CodeRunner

von instavm · instavm/coderunner

VM-isolierte Code-Ausführung für Agenten — Python, Playwright, persistenter Jupyter-Kernel, alles in einer Sandbox vom Host ferngehalten.

CodeRunner gibt Claude (und anderen Agenten) eine sichere, persistente Sandbox: Python mit einem langlebigen Jupyter-Kernel ausführen, mit Playwright scrapen, PDFs und Bilder bearbeiten. VM-Level-Isolierung auf Container-Basis bedeutet, dass ein Agent nicht vertrauenswürdigen Code ausführen kann ohne deinen Rechner zu ruinieren. Exponiert sich selbst als MCP, funktioniert also in jedem Client.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

bereit

Installieren

Wählen Sie Ihren Client

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

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

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

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

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

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

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

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

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

Continue nutzt ein Array von Serverobjekten statt einer Map.

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

In context_servers hinzufügen. Zed lädt beim Speichern neu.

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

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: CodeRunner

Claude nicht vertrauenswürdigen Code ausführen lassen ohne den Laptop zu gefährden

👤 Entwickler, die mit auto-generiertem Code experimentieren ⏱ ~15 min intermediate

Wann einsetzen: Du willst, dass Claude ein Skript schreibt + ausführt, das du nicht vollständig geprüft hast.

Voraussetzungen
  • macOS Apple Silicon + Python 3.10+ — Aktuelle Einschränkung; Linux-Support variiert
  • Skill installiert — git clone + ./install.sh gemäß Projekt-README
Ablauf
  1. Aufgabe übergeben
    Use coderunner. Write a Python script that downloads my Strava activities CSV from <url>, parses, and computes weekly mileage. Run it in the sandbox.✓ Kopiert
    → Skript ausgeführt; Ausgabe angezeigt; nichts hat mein Dateisystem berührt
  2. Iterieren
    Add a chart of weekly mileage. Re-run.✓ Kopiert
    → Chart gerendert; Kernel-Zustand erhalten (kein Re-Import)
  3. Ergebnisse exportieren
    Save CSV + chart to ./out/ on host (this only).✓ Kopiert
    → Nur dieser eine Pfad geschrieben; Sandbox bleibt versiegelt

Ergebnis: Schnelle Experimente ohne 'Ups, /Users gelöscht'.

Fallstricke
  • Netzwerkzugang in Sandbox noch erlaubt — Netzwerk deaktivieren bei wirklich nicht vertrauenswürdigem Code; sonst kann es exfiltrieren
Kombinieren mit: filesystem

Persistente Datenanalyse mit Claude

👤 Analysten, die Claude als Jupyter-Copilot nutzen ⏱ ~30 min beginner

Wann einsetzen: Du willst eine 30-minütige explorative Datensitzung ohne Kernel-Zustand zu verlieren.

Ablauf
  1. Daten einmal laden
    Use coderunner. Load /data/sales.csv into df. Show schema + 5 sample rows.✓ Kopiert
    → df im Kernel; persistiert für die Sitzung
  2. Ad-hoc-Abfragen
    Pivot by region × month, show top 5 anomalies.✓ Kopiert
    → Pivot + markierte Zeilen
  3. Exportieren
    Save the anomalies subset to /out/anomalies.csv on host.✓ Kopiert
    → CSV in /out/

Ergebnis: Notebook-wertige Analyse über Chat, mit tatsächlich laufendem Code.

Fallstricke
  • Kernel-Zustand driftet über lange Sitzungen; Ergebnisse basieren auf veralteten Variablen — Kernel zwischen unzusammenhängenden Aufgaben neu starten; Claude kann %reset ausgeben
Kombinieren mit: filesystem

JavaScript-lastige Site sicher scrapen

👤 Entwickler, die einmalig Daten von SPAs brauchen ⏱ ~20 min intermediate

Wann einsetzen: Site braucht echten Browser; du willst keinen Chrome-Prozess auf dem Host.

Ablauf
  1. Sitzung starten
    Use coderunner Playwright. Open <url>, wait for the table, extract rows as JSON.✓ Kopiert
    → JSON zurückgegeben; Browser blieb in der Sandbox
  2. Selektoren iterieren
    Selector missed the price column; adjust to find it.✓ Kopiert
    → Aktualisierter Selektor; Daten vollständig

Ergebnis: Daten extrahiert; kein Browser-Fußabdruck auf dem Host.

Fallstricke
  • Site erkennt Headless-Browser und blockiert — Auf Chromium mit --headed=false-aber-Stealth-Optionen wechseln, die der Skill exponiert

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

coderunner-skill + filesystem

Daten nur über gemountete Pfade in/aus der Sandbox bewegen

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

Suchen → Abrufen → Analysieren-Pipeline

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

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
run_python code: str Jede Code-Ausführung 0
browser_navigate url, wait_for? Playwright-Sitzung für SPA-Scraping 0
browser_extract selector, format Daten nach navigate abrufen 0
pdf_ops input_path, op, args PDF zusammenführen / aufteilen / extrahieren 0
image_ops input_path, op, args Skalieren, Formatkonvertierung, OCR 0
kernel_reset Zwischen unzusammenhängenden Sitzungen 0

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Keine — lokal
Tokens pro Aufruf
Nur die Code/Ausgabe-Tokens
Kosten in €
Kostenlos
Tipp
Persistenter Kernel spart Tokens vs. Re-Importieren; nur zurücksetzen wenn Zustand falsch ist

Sicherheit

Rechte, Secrets, Reichweite

Minimale Scopes: Nur gemountete Dateisystem-Pfade Netzwerk ein/aus via Konfiguration
Credential-Speicherung: Keine Secrets in die Sandbox packen sofern nicht gewollt, dass der Agent sie sieht
Datenabfluss: Wenn Netzwerk an ist, kann Sandbox jede URL erreichen — für sensible Läufe deaktivieren
Niemals gewähren: Mount von $HOME oder / — Sandbox verliert ihren Sinn

Fehlerbehebung

Häufige Fehler und Lösungen

install.sh schlägt auf Linux fehl

Projekt ist macOS Apple Silicon first-class; Linux-Support variiert. Issues für distributionsspezifische Hinweise prüfen

Playwright veralteter Zustand

kernel_reset ausführen; alter Browser-Kontext kann über Aufrufe persistieren

Sandbox kann nicht ins Internet

Netzwerk in Konfiguration deaktiviert; umschalten wenn nötig. Umgekehrt: isolieren wenn nicht benötigt

PDF/Image-Skill fehlt Dependencies

Container-Image bündelt gängige; Image neu bauen um benutzerdefinierte Abhängigkeiten hinzuzufügen

Alternativen

CodeRunner vs. andere

AlternativeWann stattdessenKompromiss
Anthropic code execution betaServer-seitige Ausführung ohne lokale Sandbox gewünschtCloud-seitig; Daten verlassen deinen Rechner
Docker by handVollständige Kontrolle über das Container-Image gewünschtManuelles Setup; kein MCP-Server out of the box

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen