Say Hello to Ninja – New Open Source Netbox Plugin is Live!
I have a passion for seeing things clearly. It helps me understand better. I get inspired by tools that give you visibility—tools that help you truly see.
For a long time, I’ve wanted to automate the drawing of network diagrams. When I began my career as a Network Engineer, I learned to draw diagrams manually. I started with netViz, then moved on to MS Visio, and for the past few years, I’ve been using draw.io. I loved drawing diagrams. I wasn’t afraid of the manual work it required—until I was.
Eventually, I became the only one regularly updating the diagrams. Others started asking me to update them too. That was fine, but it made me wonder: isn’t there a smarter way to handle this?
When I started my company, I envisioned building a discovery tool with strong visualization capabilities. I tried many existing solutions, only to be disappointed by the quality of the diagrams. Fast forward three years—we’ve now automated many networks. That led to an interesting thought: we already have the data. Complete data describing how the network is built. And we have abstracted standard services. Visualizing this kind of structured data should be even easier than mapping manually operated networks.
I’m aware of a couple of NetBox plugins that generate L2 diagrams. They rely entirely on automatic layout algorithms. We wanted to take a different approach.
The benefit of a fully automatic layout is that you can input any topology and get some kind of diagram out. But that approach has its downsides. As a Network Engineer, I want to preserve the ability to quickly read and understand a diagram. To make that possible, the diagram needs to be deterministic. Simply put: I want more control over how the diagram looks.
With that in mind, we're excited to introduce:
Ninja = Netbox + Jinja
With Ninja you can write a Jinja template that has full access to Netbox data and you can generate any text based output.
These capabilities make it easy to build lightweight integrations with other tools—like gNMIc. For example, you can generate a list of gNMIc targets, allowing HTTP target discovery to fetch new devices from NetBox. Just add a new device in NetBox, and it’s automatically included in monitoring.
If your template outputs Draw.io XML format, it will be automatically converted into SVG and embedded in the NetBox UI. This gives you always up-to-date network diagrams—automatically.
You can even link a Ninja template to other NetBox models—like Sites—to add a custom "Ninja" tab in their view.
The best part? You have complete control over the template.
Design it however you want.