WendyOS Docs
Detailed referenceClientsWendy cliCommandsDevice

wendy device info

Shows organization, agent version, OS, architecture, GPU, NPU, and hardware info for the target device.

wendy device info

Shows organization, agent version, OS, architecture, GPU, NPU, and hardware info for the target device.

Usage

wendy device info [flags]

Description

wendy device info queries the connected device's agent and prints its version, operating system, CPU architecture, CPU core count, total RAM, GPU and NPU presence, and other hardware details. Use this command anywhere device metadata is needed — in scripts, CI pipelines, or interactively.

The output format follows the standard --json / human-readable convention shared across all device commands.

Organization output

Organization: shows the device's enrolled organization name and ID, or just the ID when the name cannot be resolved. The name lookup uses credentials for the device's cloud and organization, with a cached name as an offline fallback. The ID comes from the device's enrollment, regardless of your default organization.

With --json, organization contains a string id and an optional name:

{"organization": {"id": "42", "name": "Robotics"}}

The ID can be a tenant UUID or a legacy numeric ID encoded as a string. An unenrolled device shows Organization: Not enrolled and "organization": null. If enrollment information is unavailable, including on unsupported agents or Bluetooth connections, the field is omitted.

CPU and memory output

Two headline hardware specs are included when the agent reports them. Both are omitted from the human-readable output and the JSON map when the agent cannot read them (older agents or non-Linux hosts), so treat them as optional.

Field (JSON)Human-readable labelDescription
cpuCountCPU Cores:Number of online logical CPU cores.
memTotalBytesMemory:Total physical RAM in bytes; human-readable output shows a formatted size (e.g. 131.9 GB).

For live CPU and memory utilization, use wendy device top.

Power mode output

On NVIDIA Jetson devices the agent reports the current power mode (nvpmodel), shown as Power Mode: MODE_30W (2). With --json, powerMode holds the numeric id and the name:

{"powerMode": {"id": 2, "name": "MODE_30W"}}

The field is omitted on devices that are not a Jetson, when the mode cannot be read, and on agents that predate it. To see every available mode or switch, use wendy device power-mode.

Storage output fields

When the agent can identify the filesystem that holds /var/lib/containerd, it is reported alongside the mounted partitions. The field is omitted from the JSON map when inspection fails or the agent predates it.

Field (JSON)Human-readable labelDescription
containerStorage(container storage) suffix on the matching partition rowThe mounted filesystem backing /var/lib/containerd: mountpoint, filesystem, device, usedBytes, and totalBytes. Image pulls and container layers consume this filesystem, so its usage feeds the disk-usage warning.

GPU output fields

On GPU-capable devices, the following GPU fields are included. Each is omitted from both the human-readable output and the JSON map when the agent does not report it (e.g. non-GPU devices or older agents), so consumers should treat every field as optional.

Field (JSON)Human-readable labelDescription
gpuVendorGPU:GPU vendor (e.g. nvidia, qualcomm); shown as unknown in human-readable output when a GPU is present but the vendor is unreported.
jetpackVersionJetPack:JetPack/L4T version string (Jetson only).
cudaVersionCUDA:CUDA toolkit version (e.g. 12.6).
gpuArchGPU Arch:GPU architecture identifier. Format is vendor-specific (e.g. sm_87 for NVIDIA, a623 for a Qualcomm Adreno). On a Jetson, which ships no nvidia-smi, it comes from the SoC in the device tree: sm_110 on Thor, sm_87 on Orin, sm_72 on Xavier.
gpuCapabilities[]GPU Compute:One entry per detected GPU: vendor, path (the device node that identified it, e.g. /dev/dri/card0), and computeBackends (cuda, rocm, or metal). A single GPU prints its backends; several print each one with its vendor and path. The line is omitted when no GPU reports a backend, and no entries at all means an older agent. An on-SoC neural accelerator is not a GPU backend — see npuBackends.

NPU output fields

On devices with an on-SoC neural accelerator the agent can reach, the following fields are included.

Field (JSON)Human-readable labelDescription
hasNpu—Whether the device has a reachable NPU. Always present; false elsewhere.
npuVendorNPU:NPU vendor (e.g. qualcomm); shown as unknown in human-readable output when an NPU is present but the vendor is unreported.
npuBackends[]NPU:Runtimes an app can use on the NPU (e.g. qnn on a Qualcomm Hexagon). Rendered in parentheses after the vendor, as qualcomm (qnn). Empty when the vendor's runtime is unrecognized, and on agents predating this field.

Detection requires a non-secure FastRPC node: the signed-PD nodes are root-only, so a board exposing only those reports no NPU. The vendor comes from the DSP's device-tree compatible, the only vendor signal an on-SoC accelerator has.

FastRPC is the DSP's transport, so it is evidence for the NPU alone. A Dragonwing reports NPU: qualcomm (qnn) and no GPU compute backend for the Adreno beside it.

wendy device info reports static GPU metadata (vendor, architecture, toolkit versions). For live GPU utilization, memory, temperature, and power draw, use wendy device top.

Network output

The output includes the device's network interfaces and their routable IP addresses under a Network: block (human-readable) or a networkInterfaces array (JSON). This is the address to use to reach an app running on the device — the .local hostname does not always resolve on every network.

Loopback, down, and container/virtual bridge interfaces are omitted, as are link-local addresses. The section is absent entirely when the agent cannot enumerate interfaces (e.g. older agents).

Field (JSON)Human-readable labelDescription
networkInterfaces[].name(row label)Interface name (e.g. eth0, wlan0).
networkInterfaces[].ipAddresses(row value)Routable IPv4/IPv6 addresses assigned to the interface.

OS Update output

When an update outcome has been recorded, wendy device info prints a compact OS Update: block:

OS Update:
  Last update: committed (0.16.0 → 0.17.0)

This reads the saved outcome. For live A/B slot state, pending updates, and engine diagnostics, run wendy os update-status.

The block is omitted when no update record exists, the agent does not support update status, or the optional status request fails or times out.

When the last update outcome is not committed, a hint is printed:

  Details: wendy os update-status

The outcome is colour-coded: committed is green, rolled back is amber, and failure outcomes are red.

JSON: osUpdate field

When a recorded update outcome is available, --json includes an osUpdate object. It is omitted when no outcome is available.

{
  "osUpdate": {
    "lastUpdate": {
      "outcome": "committed",
      "createdAtUnix": 1750000000,
      "oldOsVersion": "0.16.0",
      "newOsVersion": "0.17.0"
    }
  }
}
FieldDescription
osUpdate.lastUpdate.outcomeOne of committed, rolled back, rollback failed, commit failed, unknown.
osUpdate.lastUpdate.createdAtUnixUnix timestamp of the recorded update outcome.
osUpdate.lastUpdate.oldOsVersion / newOsVersionOS versions before and after the update (omitted when not recorded).
osUpdate.lastUpdate.noteFailure reason from the updater, if any (omitted when empty).

For the live engine snapshot, use wendy os update-status --json and read its engineStatus field. Basic device info does not request this snapshot.

Flags

FlagDefaultDescription
--check-updatesfalseCheck whether a newer agent release is available and include the result in the output.
--prereleasefalseInclude pre-release (nightly) versions when checking for updates.

Examples

Print device info in human-readable form:

wendy device info --device my-device.local

Print device info as JSON (useful in scripts):

wendy device info --device my-device.local --json

Extract specific fields with jq:

wendy device info --device my-device.local --json | jq '{osVersion, agentVersion: .version, deviceType, cpuCount, memTotalBytes}'

Deprecated alias

wendy device version is a deprecated alias for this command. It remains functional for backward compatibility but is hidden from help output. When invoked in non-JSON mode it prints a deprecation warning to stderr:

Warning: 'wendy device version' is deprecated; use 'wendy device info' instead.

No warning is emitted when --json is passed, so existing machine-readable scripts that use wendy device version --json continue to work without noise on stderr.

Migrate any usage of wendy device version to wendy device info.

On this page