SwiftVM:Macのメニューバーから、いつでもやり直せるテストマシンを用意する
SwiftVMはmacOSとLinuxのテストマシンをMacのメニューバーから管理し、スナップショット、複製、CLI、自動化に対応します。v1.3.0の用途と、Appleシリコン、macOS 27、ゲスト側の権限などの条件を紹介します。
Linuxのインストールスクリプトを試したいけれど、普段の開発環境を乱したくない。macOSのテストマシンを用意して、設定を壊しても元に戻せるようにしたい。仮想マシンはこうした用途に役立ちますが、アカウントの作成、ターミナル接続、ファイル転送、実験後の片付けにも時間がかかります。
SwiftVMは、それらの操作の入口をメニューバーにまとめています。アイコンをクリックすれば仮想マシンの確認、起動、停止ができ、デスクトップが必要なときは、そのマシン専用のウインドウを開きます。SwiftとAppleのVirtualizationフレームワークで開発され、Apache-2.0ライセンスで公開されており、現在はmacOSとLinuxの仮想マシンに対応しています。[1][2]

開発者が2026年10月11日に公開したSwiftVM Devのメニューバー画面。Ubuntuは実行中、macOSは停止中です。アプリのバージョンは表示されていません。 出典:開発者Saeed Vaziry.
インストール前に、まず動作条件を確認してください。本記事で紹介するv1.3.0には、macOS 27以降を搭載したAppleシリコンのMacが必要です。 Intel Macは非対応で、Windows仮想マシンへの対応はまだ計画段階です。[1][5]
まずは接続できるLinuxを1台用意する
公式の入門ガイドによると、Linuxディストリビューションを選んで仮想マシンを作成すると、SwiftVMがイメージをダウンロードし、アカウントとSSH鍵を設定してからシステムを起動します。標準で作られるのはサーバー環境です。グラフィカルデスクトップが必要なら、作成時に対応するインストールスクリプトを追加できます。[2]
デプロイ手順のテストには、この順序が実用的です。まずターミナルで接続できるマシンを用意してスクリプトを動かし、必要になったらデスクトップを追加する。最初からデスクトップ環境一式を入れる必要はありません。
ただし、SwiftVMのLinux仮想マシンはARM64アーキテクチャを使用します。プロジェクトが特定アーキテクチャ向けのバイナリコンポーネントに依存する場合は、事前に互換性を確認してください。一般的なx86サーバー環境とまったく同じだとは考えないほうがよいでしょう。[5]
macOS仮想マシンでも、自動インストールとアカウント設定に対応しています。ここには見落としやすい条件があります。無人セットアップとゲストツールを使うには、仮想マシン内のmacOSも27以降でなければなりません。 SwiftVMを動かすMacだけが条件を満たしていればよいわけではありません。[1][5]

開発者が2026年10月10日に公開したSwiftVMの初期画面。UbuntuとmacOSのデスクトップを同時に開いています。メニューバーアプリへの変更前の開発画面であり、v1.3.0の画面ではありません。 出典:開発者Saeed Vaziry.
テスト環境は、繰り返し使えてこそ役に立つ
依存関係の更新やシステム設定の変更前には、スナップショットを保存し、問題が起きたら以前の状態に戻せます。似た環境をもう1台用意したいときは、シャットダウン済みの仮想マシンを複製できます。しばらく使わない場合は、一時停止して状態をディスクに保存し、後で再開できます。[3]
それぞれがテスト中の異なる用途に対応しています。スナップショットは実験の出発点を残し、複製は別の環境を用意し、一時停止は中断した作業の再開を助けます。インストールスクリプト、依存関係の更新、システム設定を頻繁に検証するなら、その都度OSを入れ直さずに済む点は注目に値します。
SwiftVMには共有フォルダとポート転送もあります。仮想マシンからプロジェクトファイルにアクセスしたり、Macから仮想マシン内のサービスにアクセスしたりできます。[3]
共有するなら、その境界にも注意が必要です。作業ディレクトリを仮想マシンに公開すると、その中で動くスクリプトがファイルにアクセスする可能性があります。よく知らないソフトウェアを試すときは、必要なディレクトリだけを共有してください。「仮想マシンの中だから」という理由だけで、ホスト側のファイルには影響しないと思い込むべきではありません。
メニューバーの先にある、コマンドラインと自動化
SwiftVMにはswiftvmコマンドラインツールが付属しています。操作対象は起動中のアプリなので、CLIを使う間はSwiftVMを開いたままにする必要があり、アプリから独立して動くことはできません。[3]
ゲストツールを通じて、仮想マシン内でのコマンド実行、ファイルコピー、画面画像の取得、インターフェース操作もできます。公式ドキュメントは、これらのインターフェースの利用対象としてスクリプトとAIエージェントを挙げています。[4]
具体的には、自動化タスク用に独立したシステム環境を用意できます。ファイルを扱うなら直接コピーし、ターミナルが必要ならコマンドを実行し、デスクトップ操作が不可欠な場合だけマウスとキーボードのインターフェースを使う、という形です。
ただし、仮想マシンが起動していること、ゲストツールが利用可能であること、自動化が無効になっていないことが前提です。古いツールは更新が必要な場合もあります。[4]
macOS仮想マシンのデスクトップを操作するには、先にログインし、swiftvm-agentに画面収録とアクセシビリティの権限を手動で与える必要があります。コマンド実行とファイルコピーには、この2つの権限は不要です。[4]
したがって、AIエージェントによる操作に対応していても、インストール直後からすべてのタスクを無人実行できるわけではありません。初期設定、権限の付与、共有範囲は、利用者が決める必要があります。
メニューバーから使い始める
初回起動時にメインウインドウが表示されなくても正常です。管理の入口はメニューバーにあり、仮想マシンのデスクトップは別に開きます。まずLinuxのテストマシンを1台作り、ターミナル接続を確認してから、必要に応じてデスクトップ、共有フォルダ、自動化を設定するとよいでしょう。
要件を満たすAppleシリコンのMacを使い、ロールバックや複製ができ、スクリプトに操作を任せられるmacOSまたはLinux環境を頻繁に必要とするなら、SwiftVMを試す価値があります。Windowsを動かしたい場合や、Intel Mac、macOS 27より前のシステムを使っている場合には、現行版は適していません。
参考資料
[1] プロジェクト紹介 [2] 入門とインストール [3] コマンドラインと仮想マシン管理 [4] 自動化と権限 [5] プラットフォームとゲストOSの制約