devvmとは?
devvmは、プロジェクトフォルダーごとに分離された仮想マシンを作成します。VMにはプロジェクトに必要なツールチェーンが含まれており、ホストマシンにコーディングエージェントを直接インストールせずに、あなたやコーディングエージェントが作業できるサンドボックスを提供します。
各VMはLimaを通じて実行されます。デフォルトでは、devvmは選択したプロジェクトフォルダーのみをマウントし、ホスト上と同じパスでVM内に公開します。そのフォルダーで再度devvmを実行すると、同じVMが再び開きます。
主な機能
- プロジェクトごとに1台のVM:各プロジェクトフォルダーに専用の分離環境が割り当てられます。
- ツールチェーンの自動検出:devvmはプロジェクトファイルを調べ、必要なツールチェーンを判定します。たとえば、
package.jsonを含むプロジェクトにはNode.jsツールが用意されます。 - コーディングエージェント対応:Claude Code、Codex、opencode、piを、設定、スキル、MCPサーバーとともにVM内で実行できます。
- ネットワーク制御:新しいVMではデフォルトで許可リスト方式のネットワークティアが使用され、承認済みのホストにのみ接続できます。
- ホスト側のシークレット:GitHubやClaude Codeのトークンなどの認証情報は、どのネットワークティアでもホスト上に保持されます。
- 再利用可能なイメージ:VMはベースイメージからコピーされ、ツールチェーンはVM間で読み取り専用共有されます。初回セットアップ後は、新しいVMを数秒で起動できます。
- オプションレイヤー:組み込みレイヤーには
docker、nix、desktopがあります。独自のレイヤーを作成することもできます。 - クローンモード:VMはホストの作業ツリーをマウントする代わりに、独自のGitクローンで作業できます。
システム要件
devvmはmacOS 13以降、およびarm64またはx86_64のLinuxに対応しています。Lima 2.2以降と、該当するLimaの要件が必要です。Appleシリコン搭載Macと、arm64およびx86_64を使用するLinuxシステムでテストされていますが、Intel Macではまだテストされていません。
devvmをインストールする
HomebrewでmacOSにインストールする
HomebrewのformulaはdevvmとLimaをインストールします:
brew trust --formula devvmhq/tap/devvm
brew install devvmhq/tap/devvmLinuxにインストールする
公式インストールスクリプトを実行します:
curl -fsSL https://github.com/devvmhq/devvm/releases/latest/download/install.sh | bashこのスクリプトはmacOSでも動作します。Lima、QEMU、または/dev/kvmへのアクセスをインストールする前に、確認を求めます。
各リリースはdevvmのminisignキー
RWSjzFsn7ETaijKJ2y7F4DtZobXmyv+LmdclJwZP/KmAkLUwOCzWF/2bで署名されています。実行前にダウンロードを検証する場合は、インストールスクリプトの検証ガイドに従ってください。
インストールを確認する
インストール後、診断コマンドを実行します:
devvm doctorこのコマンドは、コンピューター上でdevvmに必要なものを確認し、不足しているものの入手方法を説明します。すべての要件とインストーラーオプションについては、完全なインストールガイドを参照してください。
最初のプロジェクトVMを作成する
- プロジェクトフォルダーを開きます。ターミナルで、プロジェクトを含むディレクトリに移動します。
- devvmを実行します。提案されたVM設定を確認し、確定します。
- VM内で作業します。devvmは、プロンプトが
(devvm)で始まるシェルを開きます。
cd ~/some-project
devvmdevvmは、プロジェクトのファイルが要求するツールチェーンを検出します。VMを作成する前に、ツールチェーン、コーディングエージェント、レイヤー、ネットワークティア、サイズをカスタマイズすることもできます。
初回実行時には、新しいVMとベースイメージのデフォルトを設定するための質問がいくつか表示されます。これには、デフォルトのVMサイズ、コーディングエージェント、ベースイメージに追加するオプション項目が含まれます。ベースイメージのビルドは一度だけ数分かかりますが、その後のプロジェクトVMは通常数秒で起動します。
同じVMを再び開く
プロジェクトフォルダーに戻り、同じコマンドを実行します:
cd ~/some-project
devvmプロジェクトフォルダーごとに専用のVMが保持されるため、devvmは別のVMを新しく作成するのではなく、既存の環境を再び開きます。
コーディングエージェントを実行する
VMのシェルが開いたら、その中から対応するエージェントを起動します。たとえば、次のコマンドでClaude Codeを実行します:
claudeこれにより、コーディングエージェントをホストにインストールせず、サンドボックス内で実行できます。devvmは、対応エージェントの設定とログイン情報を独自のストアに保存します。
Claude Codeにログインする
初めてClaude Codeを起動する前に、VMからログインを開始します:
devvm agent login claudeログイン情報はマシン上に保持されます。詳しくはClaude Codeログインガイドを参照してください。
既存のエージェント設定をインポートする
ホストですでに対応するコーディングエージェントを使用している場合、devvmは既存の設定を独自のストアにコピーできます:
devvm agent importこれは、既存のローカルエージェントで使用している設定を取り込むための機能です。対応する統合にはClaude Code、Codex、opencode、piが含まれます。
クローンモードで作業ツリーを保護する
デフォルトモードでは、ホストのエディターとVMがマウントされたプロジェクトファイルを共有します。そのため、VM内で行った変更は同じ作業ツリーに反映されます。
より強力に分離するには、--clone を付けて devvm を起動します。VM には専用のリポジトリクローンが作成され、VM 内のプロセスがホストの作業ツリーや .git ディレクトリに触れるのを防げます。
devvm --cloneVM 内で作業をコミットしたら、devvm リモート経由でホストに取得します。
git fetch devvm取得したブランチは、devvm/main のような名前で利用できます。マージする前に差分を確認します。
git log -p main..devvm/mainこのワークフローでは、明示的に取得した場合にのみ VM の作業がリポジトリに反映されます。完全な手順については、クローンでの作業を参照してください。
高度な設定のヒント
ツールチェーンを意図的に選択する
自動検出は便利な出発点ですが、VM を作成する前に提案された設定を確認してください。検出された選択が目的の環境と合わない場合、作成フローでツールチェーンをカスタマイズできます。サポートされている選択肢については、ツールチェーンのドキュメントを参照してください。
環境レイヤーを追加する
プロジェクトでそれらの機能が必要な場合は、組み込みの docker、nix、または desktop レイヤーを使用します。カスタムレイヤーの定義を始めるには、次を実行します。
devvm layer newイメージをカスタマイズする前に、レイヤーのドキュメントを確認してください。
ネットワークアクセスを確認する
新しい VM には、デフォルトで許可リストのネットワークティアが設定されます。特に自律型コーディングエージェントを実行する場合は、アクセス可能なホストのリストを実用上可能な限り絞り込んでください。その他のネットワークティアについては、ネットワーク安全ガイドに記載されています。
サンドボックスの境界を理解する
VM はリスクを軽減しますが、すべてのセキュリティ上の隙間をなくすわけではありません。VM がアクセスできる範囲を把握し、不要なリソースの公開を避け、生成された変更を受け入れる前に確認してください。重要なプロジェクトを VM に任せる前に、安全に利用するをお読みください。
CLI リファレンスを参照する
このチュートリアルで扱っていないコマンド、フラグ、引数については、公式のCLI リファレンスを使用してください。より広範な利用ドキュメントでは、ポート、VM のサイズ、VM 間のリンク、SSH、エディター、イメージ、トラブルシューティングについても説明しています。
まとめ
devvm は、すべてのプロジェクトに専用の分離された開発環境を用意する実用的な方法です。インストール後、devvm doctor でホストを検証し、プロジェクトディレクトリから devvm を実行して、作成されたシェル内でコーディングエージェントを起動します。機密性の高い作業では、制限付きネットワークと devvm --clone を組み合わせ、取得した変更をマージする前に確認してください。
