● 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
- VM-Level-Isolierung — Host-Dateisystem und Netzwerk geschützt
- Persistenter Jupyter-Kernel — Variablen und Imports überleben mehrere Aufrufe
- Playwright für Web-Scraping / Browser-Automatisierung eingebunden
- Vorgepackte Skills: PDF-Bearbeitung, Bildverarbeitung
- Als MCP-Server unter coderunner.local:8222 verfügbar — in jeden Client einbindbar
Live-Demo
In der Praxis
bereit
Anwendungsfälle
Praxisnahe Nutzung: CodeRunner
Wann einsetzen: Du willst, dass Claude ein Skript schreibt + ausführt, das du nicht vollständig geprüft hast.
Ablauf
-
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
-
Iterieren
Add a chart of weekly mileage. Re-run.✓ Kopiert
→ Chart gerendert; Kernel-Zustand erhalten (kein Re-Import)
-
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
Wann einsetzen: Du willst eine 30-minütige explorative Datensitzung ohne Kernel-Zustand zu verlieren.
Ablauf
-
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
-
Ad-hoc-Abfragen
Pivot by region × month, show top 5 anomalies.✓ Kopiert
→ Pivot + markierte Zeilen
-
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
Wann einsetzen: Site braucht echten Browser; du willst keinen Chrome-Prozess auf dem Host.
Ablauf
-
Sitzung starten
Use coderunner Playwright. Open <url>, wait for the table, extract rows as JSON.✓ Kopiert
→ JSON zurückgegeben; Browser blieb in der Sandbox
-
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
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
Suchen → Abrufen → Analysieren-Pipeline
Search via duckduckgo, scrape via coderunner Playwright, analyze in Python.✓ Kopiert
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
- Sandbox reduziert Schadenspotenzial ist aber kein Allheilmittel — Agenten-Plan vor Läufen prüfen
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
| Alternative | Wann stattdessen | Kompromiss |
| Anthropic code execution beta | Server-seitige Ausführung ohne lokale Sandbox gewünscht | Cloud-seitig; Daten verlassen deinen Rechner |
| Docker by hand | Vollständige Kontrolle über das Container-Image gewünscht | Manuelles Setup; kein MCP-Server out of the box |