# Command kinds (/docs/reference/command-kinds)

> The 21 command kinds daemons run, with lane, safety flags, timeout and payload.



Commands reach a node over its gateway session, one lane per kind. *Retry-safe* kinds are re-run after a crash between accept and completion; *self-terminating* ones end the agent (a reboot, a kexec, an upgrade) and complete when it rejoins; *attested* results are node-signed and verified before any transition; *destructive* ones must be signed.

| Kind                  | Lane      | Roles               | Retry-safe | Self-terminating | Attested | Destructive | Timeout | Payload                                          |
| --------------------- | --------- | ------------------- | ---------- | ---------------- | -------- | ----------- | ------- | ------------------------------------------------ |
| `bmc.boot`            | control   | site                | yes        |                  |          | yes         | `2m`    | `bettercompute.site.v1.BmcOperationRequest`      |
| `bmc.firmware`        | control   | site                |            |                  |          | yes         | `1h`    | `bettercompute.site.v1.BmcOperationRequest`      |
| `bmc.power`           | control   | site                |            |                  |          | yes         | `5m`    | `bettercompute.site.v1.BmcOperationRequest`      |
| `bmc.query`           | control   | site                | yes        |                  |          |             | `2m`    | `bettercompute.site.v1.BmcOperationRequest`      |
| `bmc.rotate`          | control   | site                |            |                  | yes      | yes         | `5m`    | `bettercompute.site.v1.BmcOperationRequest`      |
| `bmc.storage`         | control   | site                |            |                  |          | yes         | `1h`    | `bettercompute.site.v1.BmcOperationRequest`      |
| `boot.cleanUp`        | control   | site                | yes        |                  |          |             | `2m`    | `bettercompute.site.v1.BootCleanUpRequest`       |
| `boot.kexec`          | control   | ramdisk             |            | yes              |          |             | `15m`   | `bettercompute.agent.v1.KexecRequest`            |
| `boot.prepareRamdisk` | control   | site                | yes        |                  |          |             | `2m`    | `bettercompute.site.v1.ProxyDhcpEntry`           |
| `daemon.upgrade`      | control   | node, site          | yes        | yes              |          |             | `15m`   | `bettercompute.agent.v1.DaemonSection`           |
| `deploy.image`        | provision | ramdisk             |            |                  |          | yes         | `1h`    | `bettercompute.agent.v1.DeployImageRequest`      |
| `diag.dcgm`           | provision | ramdisk, node       | yes        |                  | yes      |             | `1h`    | `bettercompute.agent.v1.DiagDcgmRequest`         |
| `diag.nvml`           | control   | node, ramdisk       | yes        |                  | yes      |             | `2m`    | `bettercompute.agent.v1.DiagNvmlRequest`         |
| `disk.wipe`           | provision | ramdisk             |            |                  | yes      | yes         | `6h`    | `bettercompute.agent.v1.WipeRequest`             |
| `driver.invoke`       | provision | node, site, ramdisk |            |                  |          | yes         | `10m`   | `bettercompute.agent.v1.DriverInvokeRequest`     |
| `gpu.reset`           | control   | node                |            |                  | yes      | yes         | `5m`    | `bettercompute.agent.v1.GpuResetRequest`         |
| `instance.snapshot`   | bulk      | node                |            |                  |          |             | `1h`    | `bettercompute.agent.v1.InstanceSnapshotRequest` |
| `inventory.refresh`   | control   | node, site, ramdisk | yes        |                  |          |             | `2m`    | `bettercompute.agent.v1.InventoryRefreshRequest` |
| `logs.collect`        | bulk      | node, site, ramdisk | yes        |                  |          |             | `15m`   | `bettercompute.agent.v1.LogsCollectRequest`      |
| `node.reboot`         | control   | node, site          | yes        | yes              |          | yes         | `15m`   | `bettercompute.agent.v1.NodeRebootRequest`       |
| `site.httpProxy`      | control   | site                |            |                  |          | yes         | `1m`    | `bettercompute.site.v1.HttpProxyRequest`         |
