terrarium
terrarium
数秒で手に入る、本物の使い捨てコンピュータ。あなたとあなたのAIエージェントのために。
新しい Windows または Linux マシンをフォークして、使い、壊し、この文を読むのにかかる時間で新品同様にリセットできます。

なぜ
コンテナはLinuxサービスを配布するには正しい方法ですが、システム全体をテストするには間違った方法です。すべてのコンテナはホストのカーネルを借用するため、あるコンテナで成功したビルドでも、実ハードウェアでは失敗し得ます。VMは常にその問題を解決してきました。VMに欠けていたのはコンテナのワークフロー、つまりイメージを作り、実行し、捨てる、という流れです。
terrariumは、あなたがすでに持っているVirtualBoxの上にそのワークフローを実現するものです。ゴールデンイメージを0.1秒でフォークできます。フォークを壊しても、数秒で元に戻せます。コマンドラインから操作することも、MCP経由で同じ能力をAIエージェントに渡すこともできます。仮想化コードは一切含まず、VBoxManage をラップし、自分が作成したVM以外には一切触れません。
用途の例:
目標を設定して、あとは任せる。 MCP経由でエージェントに本物の使い捨てマシンと目標を与えます。エージェントは、ビルド、失敗、リバート、再試行を自律的に、監視なしで繰り返し、何かをエンドツーエンドでインストールするところまで到達します。しかも、タスクにはコマンドラインだけでなく画面も関わります。
エージェントにインストールをエンドツーエンドでテストさせる 実際のマシン上で、最初の起動からアプリが動作するまで。
エージェントにガイドの作成やバグの再現を任せて、このREADMEの録画のように、ステップごとのスクリーンショットの記録やGIFを受け取る。
隔離され、使い捨てでき、本物。 捨てられるマシン上で機密性の高い作業やリスクのある作業を行えば、自分のマシンに影響が及ぶことはありません。
クリーンマシンでのテスト。 開発環境を見たことがないマシン上でインストーラやビルドを実行すれば、「私のマシンでは動く」という言い訳は通用しなくなります。
Related MCP server: wisp
目次
特徴
以下の録画はすべて本物です。実際のコマンド、ゲストのビデオメモリから読み取った実際のスクリーンショット、そして実際の経過秒数を示すタイマーです。作成方法は docs/demo で説明しています。
Windowsをフォーク: コールド状態からデスクトップまで約40秒

Linuxをフォーク: SSHが応答するまで約20秒

壊してからリバート: 13秒で再びクリーンに

ClaudeがXPでMinesweeperをクリア: SSHもインストールも不要

比較
terrarium | Docker | VirtualBox | Vagrant | Hyper-V | Multipass | WSL2 | |
本物の完全なマシン(独自カーネル) | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
Windowsゲスト | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
レガシーゲスト(XP時代) | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
1コマンドで数秒の新マシン | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
数秒でクリーンな状態にリセット | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
環境を小さなテキストファイルとして共有 | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
GUIのみのゲストを操作(画面、マウス) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
AIエージェントツール内蔵(MCP) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
本番ワークロード | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
任意のホストOSで動作 | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
作業がコンテナに収まるなら、Dockerを使いましょう。本物の完全なマシンが必要で、壊したり元に戻したりできる必要がある場合(そして最後の2行が支払える代償である場合)、最初の列がこのプロジェクトの存在意義です。VirtualBoxが独立した列を持っているのには理由があります。terrariumはVirtualBox上で動作するので、その列の緑の半分はエンジンであり、赤の半分はこのプロジェクトが追加する部分です。
プロジェクトごとの開発環境
# terrarium.yaml, committed in your repo
image: ubuntu-24.04
cpus: 4
memory: 4096terrarium up は、プロジェクトにちなんだ名前のenvをフォークし、ゲスト内の /work にプロジェクトフォルダを共有し、それを ~/.ssh/config に追加します。これにより ssh <project> が機能し、VS Code Remote-SSH がワンクリックで認識します。down はそれを待機させ、up は復帰させ、revert はリセットします。
あなたのAIエージェントに本物のコンピュータを
$ claude mcp add terrarium -- terrarium mcp同じバイナリがMCPサーバーとして動作します。上記のすべてのコマンドがツールとして使え、さらに screenshot、click、scroll、type、keys があります。画面、マウス、キーボードはハイパーバイザー経由で注入されるため、ゲストに何もインストールする必要がなく、ネットワークやGuest Additionsも不要です。これが、エージェントがインストーラやログイン画面、SSHには古すぎるOSを操作する方法です。まさに上記のMinesweeperの録画が示していることです。接続時にサーバーはエージェントに、手探りで動き回るのではなく、まず doctor を実行して不足しているものを報告するよう指示します。
"クリーンなenvをフォークして、その中でプロジェクトをビルドし、READMEに何が足りなかったか教えてください。"
"Windows envに私たちのアプリをインストールして、各ステップをスクリーンショットしてください。"
SSH対応のWindowsゲストの場合、terrarium rdp はログイン済みの完全なデスクトップを開きます。
インストール
$ scoop bucket add terrarium https://github.com/chryaner/terrarium
$ scoop install terrariumまたは、Go >= 1.25 を使用している場合、go install github.com/chryaner/terrarium/cmd/terrarium@latest を実行するか、クローンから go build -o terrarium ./cmd/terrarium を実行します。
Windowsホストに VirtualBox 7.x が必要です(VBoxManage が PATH に含まれていること)。次に、マシンが準備できているか確認します:
$ terrarium doctorLinuxイメージは自動的にダウンロードされます。Windowsイメージは、あなたが提供するインストールISOからビルドされます。置き場所と理由については イメージ を参照してください。
クイックスタート
$ terrarium get debian-12 # build a golden: download, boot, snapshot (~40s)
$ terrarium fork debian-12 t1 # a throwaway machine, SSH-ready in ~20s
$ terrarium exec t1 -- uname -a
$ terrarium ssh t1
$ terrarium revert t1 # back to clean in seconds
$ terrarium rm t1down と start は、envを失うことなく待機させたり復帰させたりします。fork --ttl 2h はenvに有効期限を設定し、terrarium gc は期限切れのenv(手動でVMを削除したものも含む)を削除します。
速度
操作 | 測定値 |
ゴールデンのフォーク(リンククローン) | 0.1秒 |
LinuxフォークからSSH応答まで(コールド) | 約20秒 |
Windowsフォークから利用可能なデスクトップまで(コールド) | 約40秒 |
クリーンな状態へのリバート(RAMレジューム) | 8〜11秒 |
実行中マシンのスナップショット(RAM) | 4秒 |
フォークあたりのディスク使用量 | 28〜48MB |
Linuxゴールデンのスクラッチからのビルド | 約40秒 |
デスクトップ(i9-14900K、NVMe、VirtualBox 7.2)で測定しました。数値は環境によって異なりますが、傾向は変わりません。フォークはリンククローンであり、ゴールデンのディスクを共有するため、クローンにかかるコストは数分と数GBではなく、0.1秒と数MBで済みます。
イメージ
ゴールデンとは、ベンダーが公開している公式イメージに数行のYAMLを加えたものです。そのため、バイト列は常にそれをメンテナンスしているディストリビューションから得られます。イメージの追加は、1ファイルのプルリクエストで完了します。
Linux: 自動ダウンロード
terrarium get <name> は、公式クラウドイメージをダウンロードし、生成されたSSHキーをシードし、一度起動してスナップショットを作成します。それぞれ約1分です。
レシピ | ダウンロード元 |
| cloud-images.ubuntu.com |
| cloud-images.ubuntu.com |
| cloud.debian.org |
| cloud.debian.org |
| repo.almalinux.org |
| dl.rockylinux.org |
| fedoraproject.org |
| download.opensuse.org |
Windows: 自分でISOを用意
Windowsにはクラウドイメージがなく、Microsoftのメディアは再配布できないため、ISOを一度ダウンロードすれば、terrariumが実際のインストーラを無人で実行します:
MicrosoftからインストールISOをダウンロードします。
レシピに応じた名前で
%LOCALAPPDATA%\terrarium\isos\に保存します:win10.iso、winxp.iso。terrarium get win10を実行します。完全に無人で、win10は約10分、XPは約7分です。
win10 と winxp は現在提供されています。XPはOpenSSHより前のOSなので、そのフォークは exec ではなく、screenshot、click、type、keys によって操作されます。また、そのレシピには、ローカルのオーバーライドで指定するプロダクトキーが必要です。レシピの詳細、プライベートミラー、無人インストールの内部構造については、docs/DESIGN.md を参照してください。
自分でレイヤーを重ねる
レシピはメディアではなく、別のイメージの上に構築することもできます。from はベースを指定し、setup はそのフォーク内でコマンドを実行し、結果は新しいゴールデンにフラット化されます。YAMLファイルが共有可能な成果物です。同じファイルを持つチームメイトは、自分のベースから同等のマシンを構築できるため、ディスクイメージ(そしてWindowsライセンス)がやり取りされることはありません。
# %LOCALAPPDATA%\terrarium\recipes\team-dev.yaml
name: team-dev
from: debian-12
setup:
- sudo apt-get update
- sudo apt-get install -y git build-essentialterrarium get team-dev は、既存のベースの上に数秒でビルドします。スクリプトではなく手作業で作成した状態については、terrarium promote <env> <name> が設定済みのenvを直接ゴールデンにフラット化します。terrarium rm --golden <name> は、もう使わないイメージを削除します。
できないこと
まだクロスプラットフォームではありません。 ホストはWindowsでVirtualBoxが必要です。すべてのハイパーバイザー呼び出しは設計上1つのパッケージの背後に置かれているため、QEMUやHyper-Vドライバは計画された入り口であり、約束ではありません。
本番向けではありません。 フォークは開発とテストのための家畜です。
シークレットマネージャーではありません。 Windowsゴールデンのパスワードはローカルに平文で保存され、インストール中に
VBoxManageのコマンドライン上に一瞬表示されます。使い捨てのパスワードを使用してください。
ライセンス
Apache-2.0。レシピ、issue、フィールドレポートを歓迎します。最も役立つ貢献は、人々が実際に使うイメージのレシピです。
This server cannot be installed
Maintenance
Related MCP Servers
- FlicenseAqualityAmaintenanceA virtual Linux desktop as an MCP server, shipped in Docker. Agents drive screen, mouse, keyboard across any GUI — browsers, IDEs, office suites, Wine/Windows apps, legacy software — many in parallel.12147
- AlicenseNot gradedqualityBmaintenanceProvides bounded, observable access to graphical apps, browsers, terminals, Android devices, virtual machines, and SSH hosts through MCP tools, enabling safe automation and app QA.109Apache 2.0
- AlicenseBqualityAmaintenanceControls a real Windows 98 VM through 47 MCP tools, enabling screenshots, mouse/keyboard input, command execution, and file transfers.85511MIT
- AlicenseNot gradedqualityAmaintenanceProvider-neutral MCP server for managing VirtualBox, VMware Fusion, and VMware Workstation, offering tools for VM lifecycle, configuration, snapshots, guest operations, networking, and artifact resolution.MIT
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chryaner/terrarium'
If you have feedback or need assistance with the MCP directory API, please join our Discord server