InterMux

InterMux: pick a network for every app.

Downloads on Ethernet, browser on Wi-Fi, calls on your phone. All at once, on Linux.

curl -fsSL https://intermux.me/install.sh | sh
For LinuxVersion 2.0.1, betaGUI and command lineMIT license

First, with InterMux off.

Every app squeezes onto Ethernet while Wi-Fi and your phone sit idle. One big download, and your call lags.

Now, with InterMux on.

Each app gets its own lane. Downloads keep Ethernet, the browser takes Wi-Fi, the call moves to your phone.

Network
Ethernet
0MB/sSaturated
qbittorrentfirefoxzoom
Wi-Fi
0MB/sIdle
Tethering
0MB/sIdle
$ intermux bind --app firefox --iface wlan0
Your appRuns as you, with your files and settings
firefox
Its own networkSeparate routes and DNS
ns_3fa9c2d1
A route you chooseIts traffic is steered to one interface
10.200.3.0/24 → table 1003
Your chosen connectionEverything leaves through wlan0
wlan0 · 198.51.100.24

One command builds each lane.

Each app runs in its own A Linux network namespace: its own interfaces, routes and DNS, kept apart from the rest of your system. wired to the interface you chose. Only the setup needs A small helper makes the network changes after one polkit password prompt. The app itself never gets root..

Try it

Plug any app into any network.

  • Etherneteth0Jammed
  • Wi-Fiwlan0Idle
  • Phoneusb0Idle
# every app is on eth0. drag a cable to move one.
Features

Small tool. Careful details.

  • Move apps that are already open

    intermux adopt
  • See the public IP of each link

    intermux verify
  • Keeps your browser profile

    --separate-profile
  • A window, or the terminal

    intermux --help
  • Cleans up when the app closes

    intermux reset
  • Your apps never run as root

    polkit
Install

One line. That's the install.

curl -fsSL https://intermux.me/install.sh | sh

Installs what is missing, verifies the download. Run again to update. Read the script

Options
--version X.Y.Z
Install a specific release instead of the newest
--from-source
Build from source instead of using the pre-built bundle
--no-deps
Do not install missing system packages
--uninstall
Reset every binding and remove InterMux

Pass them after sh -s --, for example curl -fsSL https://intermux.me/install.sh | sh -s -- --uninstall

FAQ

Questions, answered.

More? Ask on GitHub.

Is it a VPN?

No. Nothing is encrypted or tunnelled. It only picks which of your own connections each app uses.

What do I need?

Linux with systemd, and two or more connections: Ethernet, Wi-Fi, a tethered phone, a second adapter.

Do my apps run as root?

Never. A small polkit-gated helper sets up the network; your apps run as you, with your profile.

Can I move an app that is already open?

Yes, with intermux adopt. It keeps running; open connections reconnect on the new route.

How do I undo it?

intermux reset removes everything it set up. The installer with --uninstall removes InterMux too.

Give every app its own lane.