● 社群
instavm
⚡ 即開即用
CodeRunner
作者 instavm · instavm/coderunner
為 agent 提供 VM 隔離的程式碼執行環境——Python、Playwright、持久 Jupyter 核心,全部沙箱化,不影響你的主機。
CodeRunner 為 Claude(和其他 agent)提供安全、持久的沙箱:以長效存活的 Jupyter 核心執行 Python、以 Playwright 進行網路擷取、操作 PDF 和圖像。基於容器的 VM 級隔離,讓 agent 可以執行不受信任的程式碼,而不會破壞你的機器。以 MCP 形式暴露,可在任何用戶端中使用。
為什麼要用
核心特性
- VM 級隔離——主機檔案系統和網路受到保護
- 持久 Jupyter 核心——變數和匯入在多次呼叫間保持有效
- 內建 Playwright,用於網路擷取和瀏覽器自動化
- 預打包 skill:PDF 操作、圖像處理
- 以 MCP 伺服器形式在 coderunner.local:8222 提供——可接入任何用戶端
使用場景
實戰用法: CodeRunner
何時使用: 你想讓 Claude 撰寫並執行一個你沒有完全審查的腳本。
步驟
-
交付任務
Use coderunner. Write a Python script that downloads my Strava activities CSV from <url>, parses, and computes weekly mileage. Run it in the sandbox.✓ 已複製
→ 腳本已執行;結果已顯示;沒有碰觸我的檔案系統
-
迭代
Add a chart of weekly mileage. Re-run.✓ 已複製
→ 圖表已渲染;核心狀態保持(無需重新匯入)
-
匯出結果
Save CSV + chart to ./out/ on host (this only).✓ 已複製
→ 只有那一個路徑被寫入;沙箱保持密封
結果: 快速試驗,不必擔心「糟糕,它刪了 /Users」。
注意事項
- 沙箱內仍允許網路存取 — 若執行真正不受信任的程式碼,請停用網路;否則它可能洩露資料
何時使用: 你想進行 30 分鐘的探索性資料分析,且不希望失去核心狀態。
步驟
-
載入一次資料
Use coderunner. Load /data/sales.csv into df. Show schema + 5 sample rows.✓ 已複製
→ df 在核心中;在對話期間持續存在
-
臨時查詢
Pivot by region × month, show top 5 anomalies.✓ 已複製
→ 樞紐表 + 標記的異常列
-
匯出
Save the anomalies subset to /out/anomalies.csv on host.✓ 已複製
→ CSV 已存至 /out/
結果: 透過對話進行筆記本品質的分析,且程式碼確實有在執行。
注意事項
- 長時間對話後核心狀態漂移;結果基於過時的變數 — 在不相關的任務之間重啟核心;Claude 可以發出 %reset
何時使用: 網站需要完整瀏覽器;你不想在主機上執行 Chrome 程序。
步驟
-
啟動工作階段
Use coderunner Playwright. Open <url>, wait for the table, extract rows as JSON.✓ 已複製
→ JSON 已返回;瀏覽器在沙箱內執行
-
迭代選擇器
Selector missed the price column; adjust to find it.✓ 已複製
→ 更新後的選擇器;資料完整
結果: 資料已擷取;主機上沒有瀏覽器的蹤跡。
注意事項
- 網站偵測到無頭瀏覽器並封鎖 — 切換至 skill 提供的 chromium 搭配隱身選項
組合
與其他 MCP 搭配,撬動十倍槓桿
只透過掛載路徑在沙箱中傳入或取出資料
Mount only /Users/me/data and /Users/me/out; everything else is read-only.✓ 已複製
搜尋 → 擷取 → 分析管線
Search via duckduckgo, scrape via coderunner Playwright, analyze in Python.✓ 已複製
成本與限制
運行它的成本
- API 配額
- 無——本機
- 每次呼叫 Token 數
- 僅有程式碼和輸出的 token
- 費用
- 免費
- 提示
- 持久核心省去重新匯入的 token;只在狀態錯誤時重置
安全
權限、密鑰、影響範圍
最小權限: 僅限掛載的檔案系統路徑 網路可透過設定開啟或關閉
憑證儲存: 不要將機密放入沙箱,除非你接受 agent 能看到它們
資料出站: 若網路開啟,沙箱可存取任何 URL——敏感執行時請停用
切勿授予: 掛載 $HOME 或 /——沙箱因此失去意義
- 沙箱減少了爆炸半徑,但並非萬靈丹——執行前審查 agent 的計畫
故障排查
常見錯誤與修復
install.sh 在 Linux 上失敗
此專案以 macOS Apple Silicon 為主要支援平台;Linux 支援視情況而定。查看 issues 中特定發行版的說明
Playwright 狀態過時
執行 kernel_reset;舊的瀏覽器脈絡可能在多次呼叫間持續存在
沙箱無法連接網際網路
設定中已停用網路;若需要請切換開啟。反之,不需要時請隔離
PDF/圖像 skill 缺少依賴項
容器映像內建了常見依賴項;重建映像以新增自訂依賴項
替代方案
CodeRunner 對比其他方案
| 替代方案 | 何時用它替代 | 權衡 |
| Anthropic 程式碼執行測試版 | 你想要不需要本機沙箱的伺服器端執行 | 雲端端;資料會離開你的機器 |
| 手動使用 Docker | 你想完全控制容器映像 | 需手動設定;沒有開箱即用的 MCP 伺服器 |