---
title: Response types
description: "Every value the envelope's type field takes, the commands that emit each one, and the keys its data object carries."
---

## 1. How to read the table

A success envelope names its payload shape in `type`, and a caller reads that field before it parses `data`. Each row below is one value of `type`, the commands whose success envelope carries it, and the union of the `data` keys those commands declare.

The manifest lists 28 commands and 26 distinct types, so several commands share a shape. A command that emits a second shape under a flag is listed twice, with the flag named.

## 2. The types

| Type | Emitted by | Keys in `data` |
| --- | --- | --- |
| `microvm.run` | [`microvm run`](/microvms-agentd/reference/commands/run/), [`microvm quickstart`](/microvms-agentd/reference/commands/quickstart/) | `imageIdentifier`, `imageName`, `microvmId`, `endpoint`, `agentToken`, `execExitCode`, `stdout`, `stderr`, `truncated`, `buildSeconds`, `runningSeconds`, `kept`, `vmName`, `leaked`, `cost`, `egressPosture`, `resolvedConfig`, `configPath`, `sync`, `agentd` |
| `microvm.image` | [`microvm build`](/microvms-agentd/reference/commands/build/) | `imageIdentifier`, `imageName`, `buildLogGroup`, `logStream`, `size`, `reused`, `agentd` |
| `microvm.agent` | [`microvm agent-up`](/microvms-agentd/reference/commands/agent-up/) | `vmName`, `microvmId`, `endpoint`, `agentToken`, `imageIdentifier`, `imageName`, `imageReused`, `vmReused`, `agents`, `credentialExpiresAt`, `workdir`, `project`, `egressPosture`, `agentd` |
| `microvm.agent.prompt` | [`microvm agent-prompt`](/microvms-agentd/reference/commands/agent-prompt/) | `execId`, `agent`, `model`, `phase`, `exitCode`, `stdout`, `stderr`, `truncated` |
| `microvm.exec` | [`microvm exec`](/microvms-agentd/reference/commands/exec/), [`microvm ack`](/microvms-agentd/reference/commands/ack/) | `execId`, `exitCode`, `stdout`, `stderr`, `truncated`, `phase` |
| `microvm.exec.stream` | [`microvm exec`](/microvms-agentd/reference/commands/exec/) with `--stream` | `execId`, `events`, `bytes`, `nextOffset`, `exitCode`, `truncated`, `gaps` |
| `microvm.health` | [`microvm health`](/microvms-agentd/reference/commands/health/) | `version`, `bootstrapped`, `identityDegraded`, `identityRepaired`, `diskAvailableBytes`, `diskUnderPressure`, `busy`, `execs`, `hooks`, `hooksDropped` |
| `microvm.kill` | [`microvm kill`](/microvms-agentd/reference/commands/kill/) | `microvmId`, `execId`, `killed` |
| `microvm.procs` | [`microvm ps`](/microvms-agentd/reference/commands/ps/) | `microvmId`, `procs` |
| `microvm.stdin` | [`microvm stdin`](/microvms-agentd/reference/commands/stdin/) | `execId`, `written`, `eof` |
| `microvm.copy` | [`microvm cp`](/microvms-agentd/reference/commands/cp/) | `direction`, `bytes`, `local`, `remote`, `tar` |
| `microvm.sync` | [`microvm sync`](/microvms-agentd/reference/commands/sync/) | `microvmId`, `workdir`, `uploadedBytes`, `uploadedMembers`, `deleted`, `full`, `unchanged`, `passes`, `watched` |
| `microvm.attach` | [`microvm attach`](/microvms-agentd/reference/commands/attach/) | `name`, `microvmId`, `endpoint`, `region`, `verifiedIdentity`, `replaced`, `statePath` |
| `microvm.tunnel` | [`microvm tunnel`](/microvms-agentd/reference/commands/tunnel/) | `microvmId`, `localPort`, `localAddress`, `guestPort`, `connectionsServed`, `connectionsRefused`, `proxyTokenMints`, `interrupted` |
| `microvm.port-forward` | [`microvm port-forward`](/microvms-agentd/reference/commands/port-forward/) | `microvmId`, `localPort`, `localAddress`, `guestPort`, `connectionsServed`, `connectionsRefused`, `upgrades`, `proxyTokenMints`, `interrupted` |
| `microvm.shell` | [`microvm shell`](/microvms-agentd/reference/commands/shell/) | `microvmId`, `sessionId`, `end`, `closeReason` |
| `microvm.state` | [`microvm suspend`](/microvms-agentd/reference/commands/suspend/), [`microvm resume`](/microvms-agentd/reference/commands/resume/) | `microvmId`, `state`, `endpoint` |
| `microvm.teardown` | [`microvm terminate`](/microvms-agentd/reference/commands/terminate/) | `microvmId`, `imageIdentifier`, `leaked`, `undeletedLogGroups`, `state` |
| `microvm.runs` | [`microvm ls`](/microvms-agentd/reference/commands/ls/) | `runs`, `watch`, `source`, `remote`, `pruned` |
| `microvm.history` | [`microvm history`](/microvms-agentd/reference/commands/history/) | `microvmId`, `events` |
| `microvm.logs` | [`microvm logs`](/microvms-agentd/reference/commands/logs/) | `logGroup`, `lines`, `streams`, `tailCommand`, `tailRequires` |
| `microvm.cost` | [`microvm cost`](/microvms-agentd/reference/commands/cost/) | `report`, `comparison`, `budget` |
| `microvm.doctor` | [`microvm doctor`](/microvms-agentd/reference/commands/doctor/) | `checks`, `ok` |
| `microvm.manifest` | [`microvm manifest`](/microvms-agentd/reference/commands/manifest/) | `apiVersion`, `cli`, `version`, `commands`, `exitCodes`, `envelope`, `conventions` |
| `microvm.constants` | [`microvm constants`](/microvms-agentd/reference/commands/constants/) | `constants` |
| `microvm.dockerfile` | [`microvm dockerfile`](/microvms-agentd/reference/commands/dockerfile/) | `stanza`, `baseImageName`, `baseImageDockerRef`, `port`, `workdir` |

Where commands share a type and declare different keys, the row above is the union. The differences:

* `microvm.state`: [`microvm resume`](/microvms-agentd/reference/commands/resume/) also carries `endpoint`.

## 3. Provenance

This page is generated from `docs/manifest.json`, the output of `microvm manifest`. The table is a join over every command's `responseType`, `responseKeys` and `alternateResponse`. `site/scripts/gen-reference.mjs` writes it into the site's content directory on every `pnpm run sync`, so an edit made here is overwritten by the next run.

To change the page, change the source. Regenerate the source with `mise run manifest` from the repository root; `mise run manifest:check` fails when the committed file no longer matches what the binary emits.