
Claude Coworkのコードは隔離されたVMの中で動くから、ホスト環境を汚さない
Claude Coworkに何かタスクを頼むと、裏側ではClaudeがプログラムを書いて動かし、場合によってはライブラリをインストールします。
この実行は、ホスト(PC本体の環境)から隔離されたサンドボックス(仮想マシン/VM)の中だけで完結し、ホスト環境には影響を与えません。
本記事では、CoworkをmacOS上で実際にVM動作を確認してみます。
Coworkはコードを書いて実行する
Coworkは、チャットで指示するだけでファイル整理や資料作成をこなしてくれるツールですが、その裏側では実際にプログラムが動いています。
たとえば「このCSVをグラフにして」とお願いすると、Claudeは裏側でPythonのコードを書き、必要に応じて pip install matplotlib のようなコマンドでグラフ描画用のパッケージをインストールし、コードを実行してグラフ画像を生成します。
便利な反面、「知らないプログラムが自分のPCにインストールされるのでは」と不安になるかもしれません。
そこで重要になるのが、どこで実行されるかという話です。
Coworkはハイパーバイザ上のVMで動く
公式ドキュメント(Claude Cowork architecture overview)によると、Coworkでは、シェルコマンドやClaudeが書いたコードはすべてLinuxのVMの中で実行されます。このVMは、OSのハイパーバイザによってホストOSから隔離されています。
macOSではApple Virtualization.framework、WindowsではHyper-Vが、それぞれこの役割を担います。

動かしてみる
実際にCoworkのコード実行がVM上で行われていることを確認してみましょう。
以下の検証環境を利用しました。
- macOS : 26.4.1
- Claude Desktop : 1.20186.1 (df1d8a) 2026-07-10T21:55:12.000Z
検証1:実行環境は本当にLinux VMなのか
Coworkに次のように依頼します。
プロンプト例
uname -aとhead -2 /etc/os-releaseを実行して、結果をそのまま共有してください
実行結果は次のとおりでした。
Linux claude 6.8.0-124-generic #122~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 14:43:33 UTC aarch64 aarch64 aarch64 GNU/Linux
---
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
ホストはmacOSなのに、CoworkのコードはUbuntu 22.04のLinuxで動いていることが分かります。
Linuxには、自分がどんなハードウェア(仮想化基盤)の上で動いているかを示す情報(DMI/Desktop Management Interface)があります。次のプロンプトで確認します。
プロンプト例
cat /sys/class/dmi/id/sys_vendor /sys/class/dmi/id/product_nameを実行して、結果をそのまま共有してください
$ cat /sys/class/dmi/id/sys_vendor /sys/class/dmi/id/product_name
Apple Inc.
Apple Virtualization Generic Platform
DMIの product_name は Apple Virtualization Generic Platform でした。公式ドキュメントの記載どおり、このVMがApple標準の仮想化基盤の上でゲストとして動いていることが確認できました。
検証2:VMのネットワーク制限
VM内でのパッケージインストール(pip install 等)は、パッケージ配布サイトへのインターネット通信を伴います。これを例に、VMからの外部通信制御を検証します。
鍵になるのが、Claudeの組織設定→機能→コード実行にある 「ネットワーク外部通信を許可」 です。設定画面には次のように説明されています(セキュリティリスクの詳細は公式ヘルプを参照)。
ネットワーク外部通信を許可
高度なデータ分析、カスタム可視化、専門的なファイル処理を実行するために、Claudeにネットワークアクセスを許可してパッケージとライブラリをインストールできるようにします。セキュリティリスクを伴うため、チャットを注意深く監視してください。

この設定により、npm, PyPI, GitHub等のパッケージ系の通信を許可したり(デフォルト)、許可リスト形式で特定のサイトへの通信を許可したり、任意のサイトへの通信を許可したりできます。
プロンプト例
以下はパッケージをインストールするコマンドです。リトライしないよう
--retries 0を付けています
出力結果をそのまま表示してください。
pip install cowsay --retries 0
外部への通信がオンの場合、インストールは成功します。
$ pip install cowsay --retries 0
Defaulting to user installation because normal site-packages is not writeable
Collecting cowsay
Downloading cowsay-6.1-py3-none-any.whl.metadata (5.6 kB)
Downloading cowsay-6.1-py3-none-any.whl (25 kB)
Installing collected packages: cowsay
WARNING: The script cowsay is installed in '/sessions/charming-nice-lamport/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed cowsay-6.1
設定をオフにした場合、同じコマンドがエラーで失敗します。
$ pip install cowsay --retries 0
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement cowsay (from versions: none)
ERROR: No matching distribution found for cowsay
なお、この制御の対象は「VM内で実行されるコードの通信」です。Claude本体のWeb検索・Web取得は別機能として組織設定で個別に制御します。
まとめ
Coworkはアプリケーションを隔離されたLinux VMのサンドボックス環境で実行します。
ホストで直接実行されうるClaude Codeがコマンドを settings.json で細かく許可/拒否するのに対し、Coworkはコマンド実行がVMに隔離されているため、管理方針が変わります。管理者が押さえるべきは、VM処理そのものよりその周辺です。
- VMがホスト上のファイルを読み書きするフォルダの制御
- パッケージ管理など、VMから外部への通信の制御
- SaaSとのコネクタ連携の制御
Coworkの安全な使い方は、公式ドキュメントのClaude Coworkを安全に使用するに詳しくまとまっています。
参考
付録:本記事の対象範囲
本記事はデスクトップアプリ版(ローカル実行)を対象としています。Coworkは、Anthropicのサーバー上で動く「リモート実行」もベータ提供しています(Claude Cowork architecture overview)。








