BATADV-VIS(8)
π BATADV-VIS π
okay bestie, so you know batadv-vis? it's the batman-adv visualization server and honestly? it's giving main character energy for your mesh network. it lives in the batadv-vis section 8 of the manual, iykyk π¦
β¨ NAME β¨
batadv-vis β batman-adv visualization server
πΈ SYNOPSIS πΈ
batadv-vis [options]
π DESCRIPTION π
so like. batadv-vis is how you visualize your batman-adv mesh network β¨ it reads the neighbor information and the local client table, then distributes all of that via alfred around the network. and because it's gathering up all this local info, any vis node can get the whole picture of the network. the entire vibe. the full lore. π«Ά
π OPTIONS π
-v,--versionβ prints the version. that's it, that's the whole job π-h,--helpβ shows you a brief help message. when in doubt, ask for help, periodt.-u,--unix-pathpath β the path to the unix socket used for alfred server communication π-i,--interfaceiface β tell it which batman-adv interface is configured on your system. the default isbat0β¨-s,--serverβ starts up in server mode π this server reads the neighbor and client information from batman-adv every 10 seconds and sets it in alfred via unix socket. and heads up: thealfredserver has to be running too, otherwise this information doesn't get set. no alfred, no data, that's the rule π-f,--formatformat β picks the output format for client mode. your choices are literally"json","jsondoc"or"dot"π
π EXAMPLES π
start a batadv-vis server that's fetching the information for bat0:
batadv-vis -i bat0 -s
to get a graphviz-compatible vis output:
batadv-vis
digraph {
subgraph "cluster_fe:f0:00:00:04:01" {
"fe:f0:00:00:04:01"
}
"fe:f0:00:00:04:01" -> "fe:f0:00:00:05:01" [label="1.000"]
"fe:f0:00:00:04:01" -> "fe:f0:00:00:03:01" [label="1.004"]
"fe:f0:00:00:04:01" -> "00:00:43:05:00:04" [label="TT"]
"fe:f0:00:00:04:01" -> "fe:f1:00:00:04:01" [label="TT"]
subgraph "cluster_fe:f0:00:00:02:01" {
"fe:f0:00:00:02:01"
}
"fe:f0:00:00:02:01" -> "fe:f0:00:00:03:01" [label="1.000"]
"fe:f0:00:00:02:01" -> "fe:f0:00:00:01:01" [label="1.008"]
"fe:f0:00:00:02:01" -> "fe:f0:00:00:08:01" [label="1.000"]
"fe:f0:00:00:02:01" -> "fe:f1:00:00:02:01" [label="TT"]
"fe:f0:00:00:02:01" -> "00:00:43:05:00:02" [label="TT"]
subgraph "cluster_fe:f0:00:00:08:01" {
"fe:f0:00:00:08:01"
}
[...]
}
to get a json vis output:
batadv-vis -f json
{ "primary" : "fe:f0:00:00:04:01" }
{ "router" : "fe:f0:00:00:04:01", "neighbor" : "fe:f0:00:00:05:01", "label" : "1.000" }
{ "router" : "fe:f0:00:00:04:01", "neighbor" : "fe:f0:00:00:03:01", "label" : "1.008" }
{ "router" : "fe:f0:00:00:04:01", "gateway" : "00:00:43:05:00:04", "label" : "TT" }
{ "router" : "fe:f0:00:00:04:01", "gateway" : "fe:f1:00:00:04:01", "label" : "TT" }
{ "primary" : "fe:f0:00:00:02:01" }
{ "router" : "fe:f0:00:00:02:01", "neighbor" : "fe:f0:00:00:03:01", "label" : "1.000" }
{ "router" : "fe:f0:00:00:02:01", "neighbor" : "fe:f0:00:00:01:01", "label" : "1.016" }
{ "router" : "fe:f0:00:00:02:01", "neighbor" : "fe:f0:00:00:08:01", "label" : "1.000" }
{ "router" : "fe:f0:00:00:02:01", "gateway" : "fe:f1:00:00:02:01", "label" : "TT" }
{ "router" : "fe:f0:00:00:02:01", "gateway" : "00:00:43:05:00:02", "label" : "TT" }
{ "primary" : "fe:f0:00:00:08:01" }
[...]
to get output where the complete document is json:
batadv-vis -f jsondoc
{
"source_version" : "2013.3.0-14-gcd34783",
"algorithm" : 4,
"vis" : [
{ "primary" : "fe:f0:00:00:04:01",
"neighbors" : [
{ "router" : "fe:f0:00:00:04:01",
"neighbor" : "fe:f0:00:00:05:01",
"metric" : "1.000" },
{ "router" : "fe:f0:00:00:04:01",
"neighbor" : "fe:f0:00:00:03:01",
"metric" : "1.008" }
],
"clients" : [
"00:00:43:05:00:04",
"fe:f1:00:00:04:01"
]
},
{ "primary" : "fe:f0:00:00:02:01",
"neighbors" : [
{ "router" : "fe:f0:00:00:02:01",
"neighbor" : "fe:f0:00:00:03:01",
"metric" : "1.000" },
{ "router" : "fe:f0:00:00:02:01",
"neighbor" : "fe:f0:00:00:01:01",
"metric" : "1.016" },
{ "router" : "fe:f0:00:00:02:01",
"neighbor" : "fe:f0:00:00:08:01",
"metric" : "1.000" }
],
"clients" : [
"fe:f1:00:00:02:01",
"00:00:43:05:00:02"
]
},
{ "primary" : "fe:f0:00:00:08:01",
[...]
π¦ SEE ALSO π¦
alfred(8), batctl(8) β go read those too bestie, they're part of the whole ensemble π
π AUTHOR π
batadv-vis was written by Simon Wunderlich <sw@simonwunderlich.de>.
this manual page was written by Simon Wunderlich <sw@simonwunderlich.de> and Sven Eckelmann <sven@open-mesh.com>.
and that's the whole page, bestie π this was the Linux version from Sep 21, 2013 β iconic behavior from back in the day, fr fr. go visualize that mesh, slay β¨ππ«Ά
π¦ where this page comes from
- debian bookworm: alfred 2023.0-1 Β· GPL-2.0-only
- debian trixie: alfred 2025.0-2 Β· GPL-2.0-only
- nixos 26.05: alfred 2026.3
- nixpkgs unstable: alfred 2026.3
- ubuntu jammy: alfred 2022.0-1 Β· GPL-2.0-only
- ubuntu noble: alfred 2024.0-1build2 Β· GPL-2.0-only
- ubuntu questing: alfred 2025.0-2
- ubuntu resolute: alfred 2025.5-1 Β· GPL-2.0-only
- ubuntu stonking: alfred 2026.2-1 Β· GPL-2.0-only
- π the page's license: GPL-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms