● Communauté
instavm
⚡ Instantané
CodeRunner
par instavm · instavm/coderunner
Exécution de code isolée en VM pour les agents — Python, Playwright, kernel Jupyter persistant, le tout sandboxé hors de votre machine hôte.
CodeRunner donne à Claude (et aux autres agents) un sandbox sécurisé et persistant : exécuter Python avec un kernel Jupyter longue durée, scraper avec Playwright, manipuler PDFs et images. L'isolation au niveau VM signifie que vous pouvez laisser un agent exécuter du code non fiable sans endommager votre machine. S'expose lui-même comme serveur MCP pour fonctionner dans n'importe quel client.
Pourquoi l'utiliser
Fonctionnalités clés
- Isolation au niveau VM — système de fichiers hôte et réseau protégés
- Kernel Jupyter persistant — variables et imports survivent entre les appels
- Playwright intégré pour le scraping web / l'automatisation navigateur
- Skills pré-packagés : manipulation PDF, traitement d'images
- Disponible comme serveur MCP sur coderunner.local:8222 — à connecter dans n'importe quel client
Démo en direct
Aperçu en pratique
prêt
Cas d'usage
Usages concrets : CodeRunner
Quand l'utiliser : Vous voulez que Claude écrive + exécute un script que vous n'avez pas entièrement relu.
Déroulement
-
Lui confier la tâche
Use coderunner. Write a Python script that downloads my Strava activities CSV from <url>, parses, and computes weekly mileage. Run it in the sandbox.✓ Copié
→ Script exécuté ; sortie affichée ; rien n'a touché mon système de fichiers
-
Itérer
Add a chart of weekly mileage. Re-run.✓ Copié
→ Graphique rendu ; état du kernel préservé (pas de ré-import)
-
Exporter les résultats
Save CSV + chart to ./out/ on host (this only).✓ Copié
→ Seul ce chemin est écrit ; le sandbox reste hermétique
Résultat : Expériences rapides sans «oups, ça a supprimé /Users».
Pièges
- Accès réseau toujours autorisé dans le sandbox — Désactiver le réseau si vous exécutez du code vraiment non fiable ; sinon il peut exfiltrer des données
Quand l'utiliser : Vous voulez une session d'exploration de données de 30 minutes sans perdre l'état du kernel.
Déroulement
-
Charger les données une fois
Use coderunner. Load /data/sales.csv into df. Show schema + 5 sample rows.✓ Copié
→ df dans le kernel ; persiste pour la session
-
Requêtes ad hoc
Pivot by region × month, show top 5 anomalies.✓ Copié
→ Pivot + lignes signalées
-
Exporter
Save the anomalies subset to /out/anomalies.csv on host.✓ Copié
→ CSV dans /out/
Résultat : Analyse de qualité notebook via le chat, avec du code qui s'exécute vraiment.
Pièges
- L'état du kernel dérive sur de longues sessions ; résultats basés sur des variables périmées — Redémarrer le kernel entre les tâches sans rapport ; Claude peut émettre %reset
Quand l'utiliser : Le site nécessite un vrai navigateur ; vous ne voulez pas un processus Chrome sur votre hôte.
Déroulement
-
Ouvrir une session
Use coderunner Playwright. Open <url>, wait for the table, extract rows as JSON.✓ Copié
→ JSON retourné ; navigateur resté dans le sandbox
-
Itérer les sélecteurs
Selector missed the price column; adjust to find it.✓ Copié
→ Sélecteur mis à jour ; données complètes
Résultat : Données extraites ; aucune empreinte navigateur sur l'hôte.
Pièges
- Le site détecte le mode headless et bloque — Passer aux options chromium avec --headed=false-but-stealth que le skill expose
Combinaisons
Associez-le à d'autres MCPs pour un effet X10
Déplacer les données dans/hors du sandbox uniquement via des chemins montés
Mount only /Users/me/data and /Users/me/out; everything else is read-only.✓ Copié
Pipeline rechercher → récupérer → analyser
Search via duckduckgo, scrape via coderunner Playwright, analyze in Python.✓ Copié
Coût et limites
Coût d'exécution
- Quota d'API
- Aucun — local
- Tokens par appel
- Juste les tokens de code/sortie
- Monétaire
- Gratuit
- Astuce
- Le kernel persistant économise des tokens vs re-import ; réinitialiser uniquement quand l'état est erroné
Sécurité
Permissions, secrets, portée
Portées minimales : Uniquement les chemins filesystem montés Réseau activé/désactivé via config
Stockage des identifiants : Ne pas mettre de secrets dans le sandbox sauf si vous acceptez que l'agent les voie
Sortie de données : Si le réseau est activé, le sandbox peut atteindre n'importe quelle URL — désactiver pour les exécutions sensibles
Ne jamais accorder : Montage de $HOME ou / — le sandbox perd tout son intérêt
- Le sandbox réduit le rayon d'explosion mais n'est pas une panacée — revoir le plan de l'agent avant les exécutions
Dépannage
Erreurs courantes et correctifs
install.sh échoue sous Linux
Le projet est macOS Apple Silicon en premier lieu ; le support Linux varie. Vérifier les issues pour les notes spécifiques à la distro
État Playwright périmé
Exécuter kernel_reset ; l'ancien contexte navigateur peut persister entre les appels
Le sandbox ne peut pas accéder à internet
Réseau désactivé dans la config ; activer si nécessaire. Inversement, isoler quand inutile
Dépendances manquantes pour le skill PDF/image
L'image container intègre les communes ; reconstruire l'image pour ajouter des dépendances personnalisées
Alternatives
CodeRunner vs autres
| Alternative | Quand l'utiliser | Compromis |
| Anthropic code execution beta | Vous voulez l'exécution côté serveur sans sandbox local | Côté cloud ; les données quittent votre machine |
| Docker à la main | Vous voulez le contrôle total de l'image container | Configuration manuelle ; pas de serveur MCP clé en main |