auberge headscale list-nodes
List nodes connected to a Headscale instance. Alias: auberge hs ln.
auberge headscale list-nodes [OPTIONS]Options
Section titled “Options”| Option | Description | Default |
|---|---|---|
--host HOST |
Host running headscale | The host whose config sets headscale_subdomain; else interactive |
-o, --output FORMAT |
human or json |
human |
Examples
Section titled “Examples”auberge headscale list-nodes --host myserverauberge headscale list-nodes --host myserver --output jsonJSON output schema
[{ "id": 1, "given_name": "laptop", "ip_addresses": ["100.64.0.1", "fd7a:115c:a1e0::1"], "user": { "name": "default" }, "last_seen": { "seconds": 1705762800, "nanos": 0 }, "online": true, "tags": ["tag:server"]}]| Field | Type | Description |
|---|---|---|
id |
number | Headscale node ID |
given_name |
string | Node hostname |
user |
object | Owning user, { "name": … } |
ip_addresses |
string[] | Assigned Tailscale IPs |
online |
boolean | Currently connected |
last_seen |
object | google.protobuf.Timestamp, or null if never seen |
tags |
string[] | ACL tags; [] when the node carries none |
A subset of headscale’s own node record, re-emitted under its field names. Fields headscale sends but auberge does not read — machine_key, node_key, expiry, created_at, register_method, the route lists — are dropped, and user is reduced to its name. The human table renames and flattens what remains.
A tagged node is owned by its tags rather than by a user, so user reads tagged-devices for one. auberge headscale tag-node sets tags.
JSON goes to stdout; human-format chrome goes to stderr.