Command Line Interface
This section describes the trossen-arm CLI tool, which provides a simple way to interact with Trossen Arm controllers from the terminal without writing any code.
What You Need
To get started, please make sure you have gone through the Software Setup and installed the Python driver.
Installation
The CLI is an optional feature of the trossen_arm Python package.
Install it with the cli extra:
pip install "trossen-arm[cli]"
Note
If you install trossen_arm without the [cli] extra, the trossen-arm command will still be available in your PATH but will print an error message if run:
Error: CLI dependencies are not installed.
Install them with: pip install "trossen-arm[cli]"
Usage
Run trossen-arm --help to see all available commands:
trossen-arm --help
Run trossen-arm usage for quick usage examples:
trossen-arm usage
For help with a specific command, append --help:
trossen-arm discover --help
trossen-arm identify --help
Note
The CLI supports shell auto-completion.
Run trossen-arm --install-completion to enable it for your current shell, then restart your shell for it to take effect.
Commands
discover
Scans a subnet for connected Trossen Arm controllers and prints a table of results.
trossen-arm discover [OPTIONS]
Options:
Option |
Default |
Description |
|---|---|---|
|
|
Subnet prefix to scan |
|
|
First host octet to probe (1–254) |
|
|
Last host octet to probe (1–254) |
|
|
Per-host connection timeout in seconds |
Example:
trossen-arm discover
Scanning 192.168.1.1 - 192.168.1.254 (timeout=0.01s)...
Found 2 arm(s)
┏━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ IP ┃ Model ┃ Firmware ┃ Error State ┃
┡━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ 192.168.1.2 │ wxai_v0 │ 1.9.0 │ No error │
│ 192.168.1.4 │ wxai_v0 │ 1.9.0 │ No error │
└─────────────┴─────────┴──────────┴─────────────┘
identify
Connects to an arm at a given IP address and identifies it by opening and closing its gripper. The controller box LED will also change color during identification. This is useful for confirming which physical arm corresponds to a given IP address.
trossen-arm identify --ip <IP_ADDRESS> [OPTIONS]
Options:
Option |
Default |
Description |
|---|---|---|
|
(required) |
IP address of the arm controller |
|
|
Arm model |
|
|
End effector type |
Example:
trossen-arm identify --ip 192.168.1.2
Connecting to arm at 192.168.1.2...
[2026-04-27 12:12:21] [[email protected]] [INFO] Connecting to the arm controller's TCP server at 192.168.1.2:50001
[2026-04-27 12:12:21] [[email protected]] [INFO] Connecting to the arm controller's UDP server at 192.168.1.2:50000
[2026-04-27 12:12:21] [[email protected]] [INFO] Successfully connected using client IP 192.168.1.1 with TCP port 42032 and UDP port 48683
[2026-04-27 12:12:21] [[email protected]] [INFO] Driver version: 'v1.9.2'
[2026-04-27 12:12:21] [[email protected]] [INFO] Controller firmware version: 'v1.9.0'
Done.