Nodes
Contacts
Repeaters
Messages 24h
Heard paths
Topology edges

Mesh map

Messages · Public channel · last 24 h

whenwhomessagesnrpath

Roster

name type last heard positionpubkey

Topology graph

Busiest relays · traffic through

Heard paths · click a row to trace it on the dashboard map

nodepathheard

Topology edges · relay a → b

a → b seen last

Recent paths · !path traces reported by the mesh — click one for the map + LOS profile

whenwhohops resolvedlength

Registered users

userroleregisteredlast loginsessions

Send to mesh · via the observer send bridge · sent as the gateway, rate-limited 6/min on-device

Recent transmissions · UI sends + bot replies

whenviachtextsource

Bots · trigger bots answer on #bot / #alerts only · scheduled announcements may target Public · templates: {sender} {args} {time} · via: all, gateway (the one that heard it), or a node name

namekindchanneltriggerreplyvia every/cooldownfireslast fired
📖 reply template reference
context
{sender}who triggered the bot
{args}text after the trigger prefix
{channel}channel it arrived on
{gateway}gateway that heard it
{snr} {hops}reception SNR dB / hop count
{time} {date}HH:MM UTC / YYYY-MM-DD
archive lookups
{seen NAME}last heard age of best name match ({seen} = use {args})
{whois HEX}node names for a path-hash prefix
{stats}nodes / repeaters / msgs 24h
{top_relays N}busiest N relays (max 5)
utilities · examples
{roll NdM}dice — nest for user dice: {roll {args}}
{pick a|b|c}random choice
{8ball}magic 8-ball
{help}list all functions
!ping → pong {sender}! rx {snr} dB via {gateway}
!seen → {seen} · !mesh → {stats}
rendered at fire time, 160-char cap · unknown {names} stay literal · failing lookups show ∅ · full docs: kubernetes/internal/apps/meshscope/README.md