BETA
Containerlab alternative Keep your .clab.yml Visual + CLI VMs without vrnetlab

Containerlab, with a canvas.
Same YAML. Now in your browser.

Containerlab is the cleanest way to spin up container-native labs from the CLI - and netplex. isn't here to argue with that. It speaks the same YAML and the same lab-as-code workflow, then adds what a CLI can't: a visual canvas, real vendor VMs without the vrnetlab dance, access from any browser on any OS, and real multi-user. Keep your pipeline. Give your team a GUI.

Get netplex. free See the comparison

Containerlab is CLI-and-YAML by design - brilliant for automation engineers, a wall for everyone else on the team. Its own docs point you to hand-written topology files; the built-in clab graph renders a static diagram, not an editor. netplex. keeps the YAML and the CLI and puts a live canvas in front of them - so the juniors, the students and the network architect can all build, not just the scripters.

Where Containerlab makes you work

A great tool - if you live in the CLI.
Not everyone does.

Friction 01

No native canvas - YAML by hand

Every topology is a hand-written .clab.yml: nodes, kinds, endpoints, link lists. The VS Code extension helps, and clab graph draws a picture after the fact - but there is no drag-a-node, draw-a-link editor. Onboarding anyone who isn't fluent in the schema is slow.

Friction 02

Vendor VMs mean the vrnetlab dance

Containers are effortless. Real vendor VMs - vMX, vSRX, CSR, XRv - are not: each one is a vrnetlab image you build yourself with per-image make, a compatibility matrix, 3-25 minute boots, and labs that balloon toward 48 GB.

vrnetlab wraps qcow2 VMs into containers across 30+ kinds - powerful, but every image is a build step before your first boot.
Friction 03

Linux + Docker on your machine

Containerlab runs where Docker/Podman runs - a Linux host. macOS and Windows are second-class: the WSL2 dance, ARM64 image gaps on Apple Silicon, and no tc traffic-control inside Docker Desktop for link impairments.

Friction 04

Single-user by nature

Containerlab is a CLI tool, so access is host access. Membership of the root-equivalent clab_admins group runs labs - there is no built-in login, no per-user RBAC, no teams or quotas. Sharing a host between a class or a team is a manual, trust-everyone affair.

Friction 05

No classroom model

There is no student pod, no per-learner isolation, no grading. Teaching 25 people with Containerlab means 25 Linux boxes with Docker, or one shared host where everyone can see and stop everyone else's nodes.

Friction 06

Consoles and capture live elsewhere

To console into a node you docker exec or SSH; to capture packets you reach for tcpdump/Wireshark on the host. All perfectly fine for a CLI native - but it's four tools and a terminal, not one screen your whole team can open in a browser.

Feature comparison

Containerlab vs netplex.
Same YAML. More ways in.

Feature Containerlab
Free / open source
netplex.
tier shown per row
Lab-as-code (YAML) Yes — the whole model Yes — .npx + YAML export
Deploy / destroy / inspect CLI Yes — clab deploy/destroy/inspect Yes — netplex CLI + Python SDK
Visual canvas editor No — clab graph is a static diagram Yes — full browser Studio
Runs on your machine Linux + Docker/Podman required Nothing local — any browser
macOS / Windows / Apple Silicon Second-class (WSL2, ARM64 gaps) First-class — thin client
Container nodes Yes — native, its core strength Yes — any Docker image
Full vendor VMs (vMX, vSRX, CSR…) vrnetlab — build each image, 3-25 min boots Drop a qcow2 → vendor profile auto-applied
Import existing vrnetlab container images Native Not directly — bring the qcow2, run via QEMU
Import your .clab.yml topology Yes — via the netplex CLI / API
Link impairment: delay / jitter / loss / rate Yes — tc / netem Architectnetem + OVS
Packet corruption impairment Yes Not yet
CI/CD integration Yes — run the CLI in CI netplex test — GitHub / GitLab actions
Multi-user / RBAC / teams / quotas No — single-user, clab_admins group Teamauth, RBAC, quotas
Classroom / student pods / grading Not built in Classisolated pods, grading
Browser consoles + packet capture docker exec / SSH + host tcpdump Browser-native — no install

Containerlab facts from containerlab.dev docs + vrnetlab; netplex. rows are code-verified against the platform source (parity audit, July 2026). Rows where Containerlab leads are marked honestly.

Straight with you — where Containerlab still wins

If your images are already vrnetlab containers, netplex. won't import those container images directly - bring the source qcow2 and it runs via QEMU with a vendor profile applied. Containerlab also has a packet-corruption impairment knob that netplex. doesn't have yet (delay, jitter, loss and rate are all there). And if your entire workflow is `clab deploy` inside a CI runner and nothing else, Containerlab is already perfect - netplex. speaks the same YAML, so you lose nothing by keeping it there. Everything else on this page is live and verified against our source, not roadmap.

What netplex. adds on top

Keep the YAML. Add everything a CLI can't give a team.

netplex. is a server product, not a CLI tool - so the same lab-as-code you already write becomes something a browser, a classroom and a CI pipeline can all reach at once.

A canvas over your code

Build by dragging nodes and drawing links, or write .npx/YAML by hand - both are first-class and stay in sync. The people who love the CLI keep it; everyone else gets a picture they can edit.

Vendor VMs without vrnetlab

Drop a qcow2 into the Library and the image pipeline classifies it, applies the vendor's recommended CPU/RAM/NIC profile and boot-tests it. No per-image make, no compatibility matrix, no 48 GB container builds.

Any browser, any OS

The netplex. host runs the lab; every user drives it from a browser - Mac, Windows, Chromebook, Apple Silicon included. No local Docker, no WSL2, no ARM64 image hunt.

Real multi-user

Logins, RBAC, teams and quotas are built in. A shared host stops meaning "everyone is root" - each user gets their own workspace, and the Class tier gives each student an isolated pod.

Import your .clab.yml

Point the netplex. CLI or API at an existing topology.clab.yml. Nodes, kinds, links and inline configs map to the .npx model; external config-file references are flagged so nothing goes missing silently.

Still CI-friendly

netplex test plugs into GitHub Actions and GitLab CI to stand a lab up, assert against it and tear it down - the same reproducible, lab-as-code discipline you came to Containerlab for.

Migration

Your topology file is already valid input.
Nothing to rewrite.

Step 01

Keep your .clab.yml

Your existing topology.clab.yml stays exactly as it is - it's the input, not something to convert by hand.

Step 02

Import via CLI or API

Point the netplex. CLI or REST API at the file. Kinds, nodes, links and inline configs map across; external file refs are flagged, not dropped.

Step 03

Drive it from a browser

Open the canvas, start the lab, console into any node and capture packets - with no Docker or Linux on your own machine.

Kinds mapped

Container kinds map to Docker nodes; vr-* kinds map to QEMU vendor types; bridge/ovs-bridge become switch nodes.

Inline configs carry

Startup config embedded inline in the topology imports as an active profile. External config-file paths are surfaced as warnings.

EVE-NG and GNS3 too

The same importer family handles EVE-NG .unl and GNS3 .gns3project - consolidate every lab format into one platform.

Keep the CLI you love.
Give the lab a front door.

Start on the free Associate tier. Import a .clab.yml, open the canvas, and hand your team a browser link instead of a Docker setup guide.

Get netplex. free See the full product

Australian schools get the full platform free — install and teacher training included. Learn more →