Skip to content
Israel Fernandez edited this page Aug 19, 2026 · 2 revisions

nettopo is a Python CLI that reads saved Cisco show command outputs (or collects them itself over SSH) and generates network diagrams in draw.io format with Cisco icons, plus the intermediate data as CSV tables.

This wiki is the command reference. For what the project is, installation and the quickstart, see the README. For scope, architecture and the delivery plan, see PROJECT_SPEC.md.

Pages

Page Covers
nettopo parse CSV export only — the primary debugging aid
nettopo l2 Physical/link-layer topology from CDP/LLDP
nettopo stp Per-VLAN spanning-tree diagrams, --group-mode
nettopo hsrp Per-VLAN first-hop-redundancy diagrams
nettopo bgp The BGP session graph
nettopo all Every view and every CSV in one run
nettopo collect Live collection over SSH
Preparing Captures The capture file format, which commands each view needs
Example Gallery Every view end to end, from the committed example capture sets

Usage

nettopo [--version] [--log-level LEVEL] <command> [options]

Every command reads a directory of saved capture files (see Preparing Captures) and writes into an output directory, creating it if needed. parse, l2, stp, hsrp and bgp each produce one part of that output; all produces all of it in one run.

That input directory defaults to ~/configs, so once your captures live there you can drop -i entirely and just run nettopo all. collect is the command that puts them there, gathering them from the devices over SSH:

nettopo collect --inventory devices.txt   # devices -> ~/configs
nettopo all                               # ~/configs -> ./output

Global options

Option Values Default Meaning
--version flag — Print the installed version and exit, without a subcommand: nettopo --version. Read from the installed distribution's metadata, so after bumping pyproject.toml re-run pip install -e . for it to catch up.
--log-level DEBUG, INFO, WARNING, ERROR, CRITICAL INFO Logging verbosity. Goes before the subcommand: nettopo --log-level DEBUG l2 -i ./captures.

Options common to every command

Option Values Default Meaning
-i, --input directory path ~/configs Directory of saved device captures to read. See Preparing Captures. The tilde is expanded by nettopo, so the default works even when the shell never sees it.
-o, --output directory path ./output Directory to write generated output into (created if it doesn't exist).
--platform an ntc-templates platform name cisco_ios Fallback platform used to pick the right parsing template when a device's own platform can't be detected from its show version output. IOS and IOS-XE both use cisco_ios.

See PROJECT_SPEC.md §9 for the CLI design rationale.

Clone this wiki locally