Python · FastAPI
CDP · LLDP
ECMP · FIB
PathfinderSSH — the terminal that already knows the topology
Every SSH client treats a network as a flat list of hostnames someone typed in by hand. Discovery lives in a second tool, capture in a third, and the map in a diagram nobody has opened since the last cutover — so the thing you connect with is the one thing that knows nothing about the network.
Make the client itself the discovery tool. Seed one address, crawl outward on CDP and LLDP, and let the resulting topology be the session tree — click a node and you're on it. The same crawl feeds inventory and config capture with deduplicated history, and exports to draw.io so the diagram is a build artifact instead of a chore. Credentials sit in an OS-backed vault; jump hosts, serial, and legacy KEX are first-class because real networks still have all three.
fibtrace — the forwarding table, read from the device itself
A traceroute probes from outside with ICMP and sees hop IPs. It's blind to RIB-versus-FIB divergence, an unresolved next-hop, and any ECMP path it didn't happen to hash into.
The device itself is the most accurate source of truth — so work it inside-out. SSH into each device, read its own forwarding tables, and ask four questions at every hop — is there a route, is it in the FIB, is the next-hop resolved, is the link healthy — then build a directed graph of every path a packet can actually take. Load a before and after and it tells you exactly what changed.