"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
netlab-ui is the one tool to install. It finds your netlab, or installs one for you in a private environment, and drives it from there (netlab-ui upgrade updates the UI itself):
curl -fsSL https://raw.githubusercontent.com/Muddyblack/netlab-ui/main/packaging/install.sh | bash
netlab-ui # then open http://127.0.0.1:8000
netlab-ui netlab install # only if you have no netlab yet (or press "Install netlab for me" in Settings → Environment)Already have netlab, or a checkout you test pull requests with? It uses the first netlab on your PATH, or netlab-ui netlab use /path/to/netlab (plus [tools.env] for a PYTHONPATH). See docs/install.md for options, NixOS and updating. Or run the UI as a container; it runs the netlab and containerlab you have on the host, as you, on any distribution:
docker compose -f https://github.com/Muddyblack/netlab-ui.git up -d # answer Y at the prompt (or add -y); labs live in ~/netlab-labsOpen 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.
| 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 |
| Installing on Linux | The install script, updating, NixOS module, remote access |
| 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 |
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 ❤️
