Skip to content
MuddyblackPublic

About

Web GUI and visual topology editor for netlab (ipspace/netlab). Build, edit, and deploy network labs with containerlab and libvirt.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Netlab x clab-ui Logo

Latest release GitHub Release asset downloads GHCR container pulls Docs License


"I always start stuff although I tell myself I don't have time for it... and yet, here we are."

netlab-ui is a web interface for netlab (ipspace/netlab). Build and edit network lab topologies visually, work with netlab YAML, and deploy labs from your browser. It supports containerlab containers, libvirt virtual machines, and external devices, with features depending on the provider.

Use the visual topology editor to add nodes and links, configure netlab modules, and inspect your lab. Deploy and destroy labs, open device shells, run commands across nodes, and explore live traffic and network reports from the same UI.

The canvas is powered by clab-ui, with netlab-specific editors and lifecycle actions implemented in this project.

Try the UI preview · Quick start · Features and provider support

Watch the 7-minute netlab-ui tour on YouTube: draw labs, deploy them, validate and monitor them

In action

A new s1–s2 link drawn on the canvas

Draw labs on a canvas
Open a netlab topology as a diagram and edit it there — nodes, links and netlab's own interface names.

netlab up running, with its live output

Deploy with live progress
One click on Deploy, then watch nodes come up as containerlab starts them and Ansible configures them.

The running labs dialog with shut down, force cleanup and forget record

Every running lab, one place to clean up
See every lab netlab is tracking on the host, then shut one down, force a cleanup, or forget a stale record.

Canvas spotlight on the spine group

Everything one keystroke away
Ctrl+P finds labs, nodes, IP addresses, AS numbers and actions — and lights up what it found on the canvas.

The node editor next to the canvas

Edit nodes the netlab way
Device, modules, custom configs and a preview of the exact configuration netlab generates.

The monitoring plugin expanded: where it runs, what it requires and its arguments

netlab plugins, documented in place
Browse every netlab plugin, switch them on per lab, see what they hook into, and read the manual behind the info button.

A web shell on s1 showing OSPF neighbors and the BGP summary

A shell on every node
Terminals in the browser — the device CLI or Linux shell netlab connect would give you.

The current Run on nodes panel with s1's output expanded

One command, every node
Send a command to a group of nodes and read every answer, one collapsible section per node. show commands go to each device's CLI.

Routing lens: OSPF and iBGP drawn on the topology

Lenses: one lab, every view
Physical cabling, addressing, routing, services, paths and live traffic: switch the canvas between views of the same running lab.

Link s1–l2 down, flagged by the traffic lens

Break things on purpose
Take a link down or add delay and loss from its menu — then watch the routing protocols react.

A fault test that passed: validate checks while the link was down and after it recovered

Validate the lab, then break it
Run the lab's netlab validate tests, then a fault test: take a link down, check the fabric holds, and get a pass/fail verdict.

The Monitoring dialog: nodes, BGP sessions and OSPF adjacencies up against what the topology defines

Monitor any lab, with Grafana inside
Health against the topology, per-link and per-protocol metrics, and Grafana dashboards in a tab, for FRR or any other vendor.

Running-config drift: l1 changed since the snapshot, with its diff

See what changed on the devices
Snapshot every node's running config, change things by hand, and get a per-device diff of exactly what moved.

The report gallery over the lab

netlab reports, interactive
Addressing, BGP, OSPF and wiring reports as searchable tables, rendered HTML or text — download any format.

An agent's proposed topology change drawn on the canvas, with Apply and Reject in the panel

Bring your own AI agent
Claude Code, Codex, Copilot, Kiro or any MCP tool, connected to the lab. It proposes changes; you review the diff.

Quick start

The container is the UI; it uses the netlab and containerlab you have installed on the host:

NETLAB_BIN=$(command -v netlab) CLAB_DIR=$(dirname "$(command -v containerlab)") \
  docker compose up -d        # uses docker-compose.yml; labs live in ./labs

Open http://localhost:8000. The flags that matter, multi-user setups and building it yourself are in docs/container.md. To run from source instead, see CONTRIBUTING.md.

Documentation

Features Shortcuts, run on nodes, search, running configs, exercises, live traffic, faults, packet capture, providers, reports
Monitoring The netlab monitoring plugin: metrics, routing-protocol state and Grafana dashboards for any lab and vendor — also usable without the UI
AI agents Start Claude Code, Codex, Copilot, Kiro and more connected to your lab, or connect any MCP tool; review what it proposes
Running as a container Images, required flags, several users on one server
Desktop app The Electron shell around the same UI
Architecture How netlab-ui builds on clab-ui and netlab
netlab docs: netlab-ui netlab-ui as a netlab external tool (tools: [netlab-ui]); the page goes live once ipspace/netlab#3913 is merged
Contributing Dev setup, checks, API types, clab-ui patches, showcase

Thanks

None of this exists without ipspace/netlab and srl-labs/containerlab-app (clab-ui) / srl-labs/containerlab doing the actual hard work underneath. Big thanks to SRL Labs and Nokia for open-sourcing and maintaining tools this good ❤️

About

Web GUI and visual topology editor for netlab (ipspace/netlab). Build, edit, and deploy network labs with containerlab and libvirt.

Topics

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages