Docs · リファレンス

自動化と JSON

固定の `--json` 契約、終了コード、使い捨てタスクマシン、MCP サーバー。

すべてのコマンドは --json を受け付け、stdout に機械可読な出力を、stderr にエラーを、意味のある終了コードとともに出力します。形状は 固定 です。すべてのオブジェクトは apiVersion: 1 を持ち、フィールドは追加のみで、破壊的変更はバージョンを上げます。テストスイートで固定されています。

出力はキーをソートし、日付は ISO-8601 で整形されます。

形状

ShapeCommands
VMSummaryJSONlist, info, create
SnapshotJSONsnapshot list
OperationJSONmutating commands — snapshot, reset, clone, archive, rm, …
LogLineJSONlogs
AddressJSONip
DiskUsageReportJSONdu
GuideJSONguide <guest>

VMSummaryJSON には name、id、guest、state、cpuCount、memoryBytes、 diskBytes、network、path、address、snapshotCount、isTemplate、waitingForDHCP および networkStatistics が含まれます。list --json には state: "archived" のアーカイブ済みマシンも含まれます。

OperationJSON には ok、operation、vm、detail および durationMilliseconds が含まれます。これにより、誰かの言葉を信じるのではなく、計測されたスナップショットのタイミングを取得できます。

終了コード

CodeMeaning
0ok
1failed
2usage
3not found
4wrong state
5unsupported

破壊的なコマンドは、プロンプトを出さず 終了コード 4 で拒否 します。対話型プロンプトはないため、スクリプトが人間の入力待ちでハングすることはありません。本当に実行する場合は --force または --yes を渡してください。

信頼できるスクリプト

よくある間違いは、「running」を「ready」とみなすことです。wait-ready はゲストが実際に到達可能になるまでブロックします:

set -e
1vm create ci --from ubuntu-golden
1vm start ci --detach
1vm wait-ready ci
1vm exec ci -- ./run-tests.sh
1vm discard-session ci --force

1 コマンドで使い捨てマシン

task run は clone-wait-exec-dispose のループ全体を実行します:

1vm task run -- ./build.sh

固定された golden イメージをクローンし、準備完了を待ち、コマンドを実行してマシンを破棄します。golden イメージは template pin、 template list、golden capture で管理します。

MCP

1VMTool は Model Context Protocol を話すため、AI エージェントがマシンを直接所有・操作できます:

1vm mcp serve                      # JSON-RPC on stdio
1vm mcp install-snippet claude     # config JSON for a host
1vm agent gc                       # delete stopped agent-created machines

agent gc は重要です。マシンを作成するエージェントは、作成したマシンを放置すべきではなく、これがクリーンアップ用の動詞です。