● コミュニティ
instavm
⚡ 即起動
CodeRunner
作者 instavm · instavm/coderunner
エージェント向けの VM 隔離コード実行環境。Python・Playwright・永続 Jupyter カーネル、全てホストから切り離されたサンドボックスで動作。
CodeRunner は Claude(および他のエージェント)に安全で永続的なサンドボックスを提供する。長期間保持の Jupyter カーネルで Python を実行し、Playwright でスクレイピングし、PDF や画像を操作できる。コンテナベースの VM レベル隔離により、エージェントが未検証のコードを実行してもホストマシンを破壊しない。MCP サーバーとして自身を公開するので任意のクライアントで動作する。
なぜ使うのか
主な機能
- VM レベルの隔離。ホストのファイルシステムとネットワークを保護
- 永続 Jupyter カーネル。変数とインポートが呼び出しをまたいで保持される
- Web スクレイピング・ブラウザ自動化のための Playwright が同梱
- 事前パッケージ済みスキル:PDF 操作・画像処理
- coderunner.local:8222 の MCP サーバーとして提供。任意のクライアントに接続可能
ユースケース
実用的な使い方: 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.✓ コピーしました
→ /out/ に CSV が保存される
結果: 実際にコードが動作するチャットを通じた、ノートブック品質の分析が完成する。
注意点
- 長いセッションでカーネルの状態が乖離し、古い変数に基づいた結果になる — 無関係なタスクの間にカーネルをリセットする。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.✓ コピーしました
→ セレクタが更新され、データが完全になる
結果: データが抽出される。ホストのブラウザの痕跡なし。
注意点
- サイトがヘッドレスを検出してブロックする — スキルが公開している chromium の stealth オプションに切り替える
組み合わせ
他のMCPと組み合わせて10倍の力を
マウントされたパスのみを通じてサンドボックスとの間でデータを移動する
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クォータ
- なし — ローカル
- 呼び出しあたりのトークン
- コード・出力のトークンのみ
- 金額
- 無料
- ヒント
- 永続カーネルは再インポートを省いてトークンを節約する。状態がおかしい場合のみリセットする
セキュリティ
権限、シークレット、影響範囲
最小スコープ: Mounted filesystem paths only Network on/off via config
認証情報の保管: エージェントに見られて問題ないものでなければ機密情報をサンドボックスに入れないこと
データ送信先: ネットワークがオンの場合、サンドボックスは任意の URL にアクセス可能。機密性の高い実行では無効化する
絶対に付与しない: $HOME や / のマウント。サンドボックスの意味がなくなる
- サンドボックスは影響範囲を減らすが万能ではない。実行前にエージェントの計画を確認すること
トラブルシューティング
よくあるエラーと対処法
Linux で install.sh が失敗する
プロジェクトは macOS Apple Silicon がファーストクラス。Linux サポートはまちまち。ディストリビューション固有の情報はイシューを確認する
Playwright の状態が古い
kernel_reset を実行する。古いブラウザコンテキストが呼び出しをまたいで残る場合がある
サンドボックスがインターネットに接続できない
設定でネットワークが無効になっている。必要な場合は有効にする。逆に不要な場合は隔離すること
PDF・画像スキルの依存関係が不足している
コンテナイメージには一般的なものが含まれている。カスタム依存関係を追加するにはイメージを再ビルドする
代替案
CodeRunner 他との比較
| 代替案 | 代わりに使う場面 | トレードオフ |
| Anthropic code execution beta | ローカルサンドボックスなしのサーバーサイド実行が欲しいとき | クラウドサイド。データがマシン外に出る |
| Docker by hand | コンテナイメージを完全に制御したいとき | 手動セットアップ。MCP サーバーが最初から用意されていない |