Docs · संदर्भ

ऑटोमेशन और JSON

फ्रोज़ `--json` कॉन्ट्रैक्ट, exit codes, डिस्पोज़ेबल task मशीनें, और MCP server।

हर कमांड --json लेती है और stdout पर machine-readable आउटपुट देती है, stderr पर errors और meaningful exit code। shapes frozen हैं: हर object में apiVersion: 1 होता है, fields सिर्फ add होते हैं, और breaking change version बढ़ाता है। test suite इन्हें lock करती है।

आउटपुट sorted keys और ISO-8601 dates के साथ pretty-printed होता है।

Shapes

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 archived machines को state: "archived" के साथ शामिल करता है।

OperationJSON में ok, operation, vm, detail और durationMilliseconds होते हैं — इसी से measured snapshot timings मिलती हैं, किसी की बात पर भरोसा नहीं करना पड़ता।

Exit codes

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

Destructive commands prompt की जगह exit 4 से refuse करती हैं। interactive prompts नहीं हैं, इसलिए script कभी human का इंतज़ार नहीं करती। जब सच में मतलब हो तब --force या --yes पास करें।

एक reliable script

गलती "running" को "ready" समझना है। wait-ready तब तक block करता है जब तक guest actually reachable न हो:

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

एक कमांड में disposable machines

task run पूरा clone-wait-exec-dispose loop आपके लिए करता है:

1vm task run -- ./build.sh

यह pinned golden image clone करता है, readiness का wait करता है, command चलाता है और machine dispose कर देता है। Golden images template pin, template list और golden capture से manage होती हैं।

MCP

1VMTool Model Context Protocol बोलता है, इसलिए AI agent सीधे machines own और drive कर सकता है:

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 matter करता है: machines बनाने वाला agent उन्हें छोड़ नहीं देना चाहिए, और यही cleanup verb है।