Use all your internet connections at the same time.
Combine Wi-Fi, Ethernet and phone hotspots, so downloads, games and browsers get the speed of every connection added up.
Download · Install · Add a second connection · Troubleshooting · How it works
A Mac with Wi-Fi + an Android phone. The menu shows both connections working at once. Watch the full 45-second video.
net-merge uses all your network adapters together. It works on Windows, macOS and Linux. It is free. There is no account, no server and no VPN.
A real test with Wi-Fi + an Android USB tether + an iPhone hotspot, 9 downloads at once: 232-303 Mbit/s. The fastest connection alone gave about 121 Mbit/s.
| Windows: hover the icon | Windows: the menu | macOS: the menu bar |
|---|---|---|
![]() |
![]() |
![]() |
net-merge gives every new connection to one of your links. When an app opens many connections, they spread over all your links.
- Good for: Steam and game downloads, browsers, system updates, cloud uploads (Google Drive), download managers like IDM, torrents.
- Not for: one single connection. One connection always uses one link, so one big file from one connection does not get faster.
- Works for every app, TCP and UDP, IPv4 and IPv6. You do not set up a proxy.
- Smart: faster links get more connections. A link with no internet gets none until it works again.
- Safe: if net-merge crashes, your internet keeps working.
- Light: about 0.18 CPU cores per 100 Mbit/s.
- Download
net-merge-setup-x.y.z.exefrom the releases page and run it. It needs admin. - Windows may warn you because the app is not signed yet. Click More info, then Run anyway.
- Open net-merge from the Start menu. A tray icon appears. If you do not see it, it is behind the
^arrow next to the clock.
There is also a portable zip on the releases page.
- Download
net-merge-x.y.z-macos-universal.tar.gzfrom the releases page. - Open Terminal in that folder and run:
tar xzf net-merge-*-macos-universal.tar.gz
xattr -d com.apple.quarantine net-merge # only if macOS says it can't open it
sudo ./net-merge install # once: lets the tray start without a password
net-merge tray # a green/grey icon appears in the menu bar
- Optional:
net-merge autostart onto start it when you log in.
install adds one small rule so that only net-merge tray can run as root without a password. To remove
it all: net-merge autostart off and sudo net-merge uninstall.
- Download
net-merge-x.y.z-linux-x86_64.tar.gz(or-linux-aarch64.tar.gzfor ARM) from the releases page. - Run:
tar xzf net-merge-*-linux-*.tar.gz
sudo install -m 755 net-merge /usr/local/bin/
sudo setcap cap_net_admin,cap_net_raw+ep /usr/local/bin/net-merge
net-merge tray
The setcap line lets net-merge work without root. The tray icon needs a desktop that supports
StatusNotifierItem: KDE, XFCE, Cinnamon, LXQt, Budgie, or GNOME with the AppIndicator and
KStatusNotifierItem Support extension. If your firewall blocks unknown traffic, trust the net-merge
interface (for example firewall-cmd --zone=trusted --add-interface=net-merge).
# flake.nix
inputs.net-merge.url = "github:rohit267/net-merge";
# configuration.nix (with `inputs` passed via specialArgs)
imports = [ inputs.net-merge.nixosModules.default ];
programs.net-merge = {
enable = true;
autostart = true; # optional: start the tray in every graphical session
};To try it without installing: sudo nix run github:rohit267/net-merge -- run.
net-merge needs two or more real connections. Use Wi-Fi plus one of these: a phone (USB tethering or hotspot), an Ethernet cable, or a second Wi-Fi. Plug it in and net-merge adds it within a few seconds. When you unplug it, its connections move to the others.
Windows and Linux: plug the phone in and turn on USB tethering (Android) or Personal Hotspot (iPhone). That is all.
Mac with an iPhone (nothing extra to install)
- Plug the iPhone in with a cable. Tap Trust on the iPhone if it asks.
- On the iPhone, open Settings > Personal Hotspot and turn on Allow Others to Join.
- An iPhone USB network appears on the Mac. net-merge adds it in a few seconds.
Mac with an Android phone (needs the app TetherKit)
macOS cannot use Android USB tethering by itself. The app TetherKit adds that support.
- Install and open TetherKit.
- Plug the phone in and turn on USB tethering in the phone's settings.
- Click Apply in TetherKit. net-merge adds the new network in a few seconds.
Start net-merge first, then connect the Android phone. macOS drops the TetherKit connection each time net-merge starts, quits, or is paused and resumed. If the phone link disappears, click Apply in TetherKit again. The iPhone is not affected.
A phone uses its mobile data, so part of your traffic goes through it while net-merge runs. Quit net-merge when you do not want that.
- Start net-merge. A tray icon appears (menu bar on Mac).
- The icon is green when it is merging and grey when it is paused.
- Hover the icon to see the speed of each connection and the total.
- Right-click the icon (on Mac, click it) to open the menu. It shows each connection's speed, how many connections net-merge gave it, and the buttons Pause merging / Start merging and Quit.
- To start it at sign-in: tick the box in the Windows installer, or run
net-merge autostart on.
Tips:
- Torrent clients already use every connection. Leave qBittorrent's network interface on Any interface.
- Leave Use all adapters (IPv6 only if every adapter has it) ticked. Untick it only if you must reach a site that only has IPv6.
net-merge listshows which connections are used and why others are skipped.net-merge statusshows live numbers.
A second connection does not make things faster
You only gain speed when each connection reaches the internet by its own path. Wi-Fi from your home router plus a phone on mobile data works. Wi-Fi and Ethernet plugged into the same router do not: they share one internet line, so the total stays the same.
Also remember that one connection always uses one link. Many parallel connections (Steam, browsers,
download managers) are what speed up. Run net-merge status to see how many connections each link carries.
A connection does not show up
Run net-merge list. It shows which connections are used and why the others are skipped, for example
"no default gateway" (the link has no internet yet).
- iPhone on a Mac: plug it in, tap Trust, and turn on Settings > Personal Hotspot > Allow Others to Join. If the iPhone USB network in System Settings > Network stays inactive, turn off its Disable unless needed switch.
- Android on a Mac: install TetherKit and click Apply (see above).
- Phone on Windows: if the phone does not appear in Network Settings, install your phone maker's USB driver.
The Android connection disappears on a Mac
macOS drops the TetherKit connection each time net-merge starts, quits, or is paused and resumed. Start net-merge first, then connect the phone. If it vanishes, click Apply in TetherKit again.
Windows uses only one network
Windows can switch Wi-Fi off when Ethernet is plugged in. Open the Group Policy Editor (gpedit.msc),
go to Computer Configuration > Administrative Templates > Network > Windows Connection Manager, and set
Minimize the number of simultaneous connections to the Internet or a Windows domain to Disabled.
macOS says it cannot open net-merge, or Windows says "protected your PC"
The apps are not code-signed yet. On macOS run xattr -d com.apple.quarantine net-merge. On Windows click
More info, then Run anyway.
I cannot find the tray icon
On Windows it may be behind the ^ arrow next to the clock. On macOS it is in the menu bar. On Linux the
desktop needs StatusNotifierItem support (KDE, XFCE, Cinnamon, LXQt, Budgie, or GNOME with the AppIndicator
and KStatusNotifierItem Support extension).
A site asks me to log in again
net-merge may use a different IP for each connection, and some sites tie your login to one IP. That is a limit of splitting connections over several links.
net-merge tray tray icon (the normal way to run it)
net-merge on | off start / pause merging in the running tray
net-merge quit pause and close the tray
net-merge status | list live numbers / which connections are used
net-merge autostart on|off|status
net-merge socks plain SOCKS5 proxy on 127.0.0.1:1080 (no admin, per app)
net-merge cleanup remove leftover routes after a crash
net-merge install macOS only: `sudo net-merge install` (see above)
More flags and details are in docs/DEVELOPING.md.
- Needs admin (Windows),
CAP_NET_ADMIN(Linux) orsudo net-merge installonce (macOS). - Some sites tie your login to one IP. net-merge may use a different IP for each connection, so such a site can ask you to log in again.
- If your connections differ in IPv6 support, sites that only have IPv6 are not reachable while the box above is ticked.
- What changed in each version: CHANGELOG.md
- How it works, building from source, tests: docs/DEVELOPING.md
- Want to help? CONTRIBUTING.md. Found a security problem? SECURITY.md
- License: MIT, see
LICENSE. Third-party parts:THIRD-PARTY-NOTICES.md.
net-merge is free. If it saves you time, you can buy me a coffee or donate with PayPal. Thank you!


