Local-first network config dependency mapper — parse, visualize, and lint vendor configs
Project description
confgraph
Parse network device configs and visualize how everything connects — BGP neighbors, OSPF areas, route-maps, prefix-lists, VRFs — as an interactive dependency graph.
uvx confgraph map router.txt
uvx confgraph map router.txt --lint
![confgraph map output showing protocol dependency graph]
What it does
Point it at a config file. It parses every protocol, builds a dependency graph, and exports an interactive HTML diagram you can open in any browser. --lint flags dangling references and orphaned objects.
Supported platforms
| OS | Parser |
|---|---|
| Cisco IOS / IOS-XE | IOSParser |
| Cisco IOS-XR | IOSXRParser |
| Cisco NX-OS | NXOSParser |
| Arista EOS | EOSParser |
Try it instantly
Pre-generated maps for all supported platforms — open any in your browser, no install needed:
| Platform | Sample config | Interactive map |
|---|---|---|
| Cisco IOS | samples/ios.txt | examples/ios.html |
| Cisco IOS-XE | samples/ios_xe.txt | examples/ios_xe.html |
| Cisco IOS-XR | samples/ios_xr.txt | examples/ios_xr.html |
| Cisco NX-OS | samples/nxos.txt | examples/nxos.html |
| Arista EOS | samples/eos.txt | examples/eos.html |
Or run against your own config:
uvx confgraph map your-router.txt --output-dir .
open your-router.html
Install
pip install confgraph
Or run without installing:
uvx confgraph map router.txt
Use as a library
from confgraph.parsers.ios_parser import IOSParser
parsed = IOSParser(open("router.txt").read()).parse()
print(parsed.bgp_instances)
print(parsed.ospf_instances)
Protocols parsed
VRF · BGP · OSPF · IS-IS · EIGRP · RIP · Route-maps · Prefix-lists · ACLs · Community lists · AS-path lists · Static routes · NTP · SNMP · Syslog · Banners · QoS · NAT · Crypto/IPsec · BFD · IP SLA · EEM · Object tracking · Multicast
Security & Privacy
Local-first by design. confgraph never sends your config files anywhere. All parsing, graph generation, and analysis run entirely on your machine. The HTML output is a self-contained file with no external requests — no CDN, no analytics, no telemetry of any kind.
Contributing
Contributions welcome — new parsers, bug fixes, additional protocol coverage. See docs/ARCHITECTURE.md to get started.
License
Apache 2.0
64a62af (docs: add README with install, usage, and protocol coverage)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file confgraph-0.1.0.tar.gz.
File metadata
- Download URL: confgraph-0.1.0.tar.gz
- Upload date:
- Size: 284.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7abaebd9ebf9e6fccfa944f94086819bb9f6ded083490c508f7cece9044fe2fe
|
|
| MD5 |
48ab31801a89b795241b2aee79809023
|
|
| BLAKE2b-256 |
1af39b2faaf7964114a5665eb04bc0857d194c70c40d3675e7aa75319ac78c43
|
File details
Details for the file confgraph-0.1.0-py3-none-any.whl.
File metadata
- Download URL: confgraph-0.1.0-py3-none-any.whl
- Upload date:
- Size: 300.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd9b940a4cd4094164a3351bafa0232884049fb5d66d097879cc98b53311c199
|
|
| MD5 |
c91c15360b8975eb3e71d37c2b1a1096
|
|
| BLAKE2b-256 |
09cacf731455f5bd3f93ba5470e74add66fd1194995e3d976de34599c103cf8a
|