Skip to content
A GUI virtual network cabler for your servers

Wire your network by dragging boxes.

NetGrip shows your machine's network as it really is — NICs are boxes, and every IP, VLAN and bond is its own box joined by a line. Move an address by dragging it. Build a bond by dropping one NIC onto another. See the exact commands before anything runs.

$ pipx install git+https://github.com/theyoungrossco/netgrip.git

Free & open source · GPL-3.0 · Linux & Windows (SSH) · Python ≥ 3.10

Persists through your host's own backend netplan systemd-networkd NetworkManager ifupdown

Direct manipulation

Your network, as boxes and lines

No config-file archaeology. NetGrip reads live state with ip -json and lays it out on a flat canvas. Every gesture maps to a real change you can see before it happens.

What the boxes mean

  • Physical interface (NIC)
  • Group — bond / bridge / team
  • Virtual interface / VLAN
  • IPv4 config
  • IPv6 config
  • System DNS

Lines are links. Drag a box, and its configuration goes with it.

1

Drag an IP between NICs

Pick up an address box and drop it on another interface — the address moves. Ctrl-drag to clone it instead.

2

Drop a NIC onto a NIC to bond

Create failover, LACP and the other kernel bonding modes by hand. Right-click to change mode or membership.

3

Stack VLANs and addresses

An IP config on a VLAN on a bond of two NICs. Detach any config to a floating draft and re-attach it later.

4

Review, then apply

NetGrip shows the exact commands it will run and waits for your OK — locally via sudo/pkexec or remotely over ssh.

Highlights

Everything is a gesture

The whole network model is on one canvas, and each part of it is something you can grab.

Drag to move, Ctrl-drag to clone

Move an IP address from one NIC to another by dragging the box. Hold Ctrl to duplicate it instead.

Bonds by hand

Drop one NIC onto another to build a bond — failover, LACP, and every other kernel bonding mode.

VLANs & drafts

Right-click the canvas to start a draft VLAN, give it an id and addresses, then drag it onto a parent.

Per-family IP groups

Addresses group into IPv4/IPv6 boxes carrying that family's gateway, DNS servers and search domains.

Manage remotes over SSH

Use your existing ~/.ssh/config, keys and agent to manage any reachable Linux box — nothing is installed on it.

Try before you commit

Apply a change that auto-reverts after a countdown unless you keep it. Test risky edits without fear.

System DNS, demystified

A host-wide DNS box reads /etc/resolv.conf and shows exactly where each resolver comes from.

Light & dark, remembered

Follows your desktop theme with a manual override. Box positions, names and drafts are saved per host.

Safe by design

Nothing changes until you say so

NetGrip never edits behind your back. It expands each action into concrete iproute2 commands and shows them to you first. What you approve is exactly what executes — as a single confirmed batch.

  • Reading network state needs no privileges at all.
  • Changes land on the running stack first — real and immediate.
  • Save persists across reboots through your host's backend.
  • Try applies a change and auto-reverts it on a timer.
Get NetGrip

See it

The demo host, on one canvas

Two NICs bonded with LACP, a VLAN on the bond, per-family IP groups carrying their gateway and DNS, and a System DNS box. Try it yourself with netgrip --demo — every gesture works, nothing executes.

The NetGrip canvas showing the demo host: eth0 with IPv4 and IPv6 group boxes, eth1 and eth2 bonded into bond0 with LACP, a VLAN 40 on the bond, and a System DNS box.

Get started

Install in a minute

Any Linux distro from the last several years works — Python ≥ 3.10 and iproute2 ≥ 4.14. NetGrip installs in isolation and never touches your system Python.

Clone and run the installer — it sets NetGrip up in isolation and adds a menu entry.

$ git clone https://github.com/theyoungrossco/netgrip.git
$ cd netgrip
$ ./scripts/install-linux.sh

Uses pipx if present, else a private virtualenv. Remove with ./scripts/install-linux.sh --uninstall; install for all users with sudo ./scripts/install-linux.sh --system.

Just want the command, no menu entry?

$ pipx install git+https://github.com/theyoungrossco/netgrip.git

Then run netgrip to manage this machine, netgrip --host user@box for a remote, or netgrip --demo to explore safely.

On Windows, NetGrip is an SSH-only remote control — no local stack to manage.

Download the latest NetGrip-*-setup.exe from the Releases page and run it. It bundles Python and Qt, installs without an admin prompt, and adds a Start-Menu shortcut. Pick a host from your ~/.ssh/config or type user@host to connect.

Go to the Releases page

Platform
Linux · Windows (SSH)
Python
≥ 3.10
Needs
iproute2 ≥ 4.14
License
GPL-3.0-or-later

Stop editing YAML by candlelight.

Grab a box. Drag it where it belongs.