---
title: "wendy device ros2"
description: "Inspect and debug live ROS 2 systems on the device"
---

## Syntax

```sh
wendy device ros2 [flags]
```

## Examples

```sh
wendy device ros2 --help
```

## Arguments

Choose a subcommand from See also.

## Flags

Flags below include inherited options. Types and defaults come from the CLI source. An empty default means no value is configured.

| Flag | Type | Default | Description |
| --- | --- | --- | --- |
| `--device` | string | (empty) | Target device hostname; `wendy run` accepts a comma-separated list to deploy one build to several devices (needs a remote build host and --detach). Defaults to $WENDY_DEVICE, then the saved default device |
| `--json` | bool | `false` | Output in JSON format |

## Output

Output depends on the operation and selected target. Use the command help for additional guidance..

## JSON output

The global `--json` option requests machine-readable output. The CLI also selects JSON mode when no interactive terminal is attached. Support and payloads are command-specific; this flag does not guarantee a single JSON document for commands that stream logs or invoke build tools. Consult Details before parsing command output.

## Exit codes

The CLI entry point returns `0` on success and for its user-cancelled or default-cleared results. Other returned errors exit with `1` and print a diagnostic to stderr. Some operations may terminate through subprocess or signal handling; do not infer application health from the CLI exit code alone.

## Common errors

Check argument values and flag combinations against the synopsis above. For discovery, build, port, and readiness failures, see [deployment troubleshooting](../../../../errors/). Command-specific constraints are in Details.

## See also

- [wendy device](../../../../reference/cli/device/)
- [wendy device ros2 action](../../../../reference/cli/device/ros2/action/)
- [wendy device ros2 bag](../../../../reference/cli/device/ros2/bag/)
- [wendy device ros2 call](../../../../reference/cli/device/ros2/call/)
- [wendy device ros2 component](../../../../reference/cli/device/ros2/component/)
- [wendy device ros2 doctor](../../../../reference/cli/device/ros2/doctor/)
- [wendy device ros2 echo](../../../../reference/cli/device/ros2/echo/)
- [wendy device ros2 exec](../../../../reference/cli/device/ros2/exec/)
- [wendy device ros2 graph](../../../../reference/cli/device/ros2/graph/)
- [wendy device ros2 hz](../../../../reference/cli/device/ros2/hz/)
- [wendy device ros2 lidar](../../../../reference/cli/device/ros2/lidar/)
- [wendy device ros2 lifecycle](../../../../reference/cli/device/ros2/lifecycle/)
- [wendy device ros2 nodes](../../../../reference/cli/device/ros2/nodes/)
- [wendy device ros2 param](../../../../reference/cli/device/ros2/param/)
- [wendy device ros2 params](../../../../reference/cli/device/ros2/params/)
- [wendy device ros2 services](../../../../reference/cli/device/ros2/services/)
- [wendy device ros2 topic](../../../../reference/cli/device/ros2/topic/)
- [wendy device ros2 topics](../../../../reference/cli/device/ros2/topics/)
- [CLI conventions and configuration](../../../../reference/)

## Details

Inspect and debug live ROS 2 systems on a device running Wendy Agent.

The agent runs ros2 commands in CLI sidecars for running apps configured with
"frameworks.ros2". When no ROS 2 app is running, it automatically uses the
device's system DDS graph, including Unitree robots, on domain 0. Use --domain
to select another domain. No ROS 2 app deployment or SSH is required.

System inspection uses a cached Humble/Fast DDS CLI image with pinned unitree_go
and unitree_api types, downloaded on first use. Other custom message types still
require their ROS 2 packages. Use lidar sample for bounded geometry observations.

To add ROS 2 to a project: wendy project frameworks add ros2
For the full "frameworks.ros2" config shape (domainId, rmw, distro,
discoveryScope) and how it's used: wendy docs ros2

Use the command help for additional guidance.
