Skip to main content

alle

CI PyPI Homebrew Docker

alle

A universal VPN client that manages multiple VPN connections with rule-based routing, with interfaces for human (Web UI and CLI) and programs (REST API and Docker image).

VPN Providers

Supported


NordVPN

Proton VPN

Planned (Developing)


Mullvad

IVPN

PIA

VyprVPN

See VPN provider research for setup archetypes, provider-specific constraints, and excluded providers.

alle Web UI dashboard
Web UI

Why alle

For people

You already pay for a commercial VPN — but its official client connects to one location at a time. Switching countries means disconnecting, reconnecting, and breaking whatever was using the old exit. Two locations at once is not on offer.

alle keeps several exits live simultaneously, from one provider or mixed across providers. Different traffic leaves through different VPN servers, decided by alle's routing rules:

Three apps routed through alle to three different VPN exits at the same time

For programs

Every action the CLI performs is also a REST call, and each exit is a stable 127.0.0.1:<port> proxy. So another program can drive the whole lifecycle of many VPN connections — create, probe, rotate, retire — on its own schedule, with no human clicking a client. That is what makes proxy rotation across regions, and reaching geofenced resources from wherever they are served, something you can script.

It also ships as a container image (ziyudo/alle) so a compose stack can add it as one service and let sibling containers reach the internet through whichever exit the rules pick.

You may also have heard of gluetun, alle and gluetun compares the two.

What alle does

alle runs multiple VPN exits side by side, each its own local HTTP+SOCKS proxy. One router entrypoint sends traffic by rule to an exit, straight out, or nowhere at all — see Rule-based routing. For a whole-machine VPN through those same rules there is an optional TUN mode (alle tun on, one-time privilege grant): CLI reference, runbook.

The runtime model — one sing-box process, state, ports, probes — is in How it works. What is supported today is in Current status.

For AI Coding Agents

alle for agents — copy-paste to your coding agent to teach them how to use alle. It carries the model, the facts that change how the code is written, and links it can fetch on demand.

Quick Start

For macOS + Linux: installs alle and its user-level login service

curl -LsSf https://github.com/zydo/alle/releases/latest/download/install.sh | sh

Then add a VPN provider (use NordVPN as example) and create a connection ("channel").

alle providers add nordvpn      # will ask you for NordVPN token
alle channels add nordvpn --country "United States"
alle start
alle channels ls                # prints each channel's local proxy port

Homebrew, uv, pipx, Docker, the checksum-verified manual install, and the uninstaller are all in Getting started; container deployments are in Docker.

Documentation

Using alle

  • Getting started — install, quick start, provider setup, everyday commands, channel enable/disable.
  • Rule-based routing — the router entrypoint: rulesets, first-match priority, kill-switch, built-in LAN bypass.
  • Web UI — the browser dashboard (alle ui): pages, sign-in, remote access over SSH.
  • CLI reference — every command, flag, and environment variable.

Automating alle

  • alle for agents — the entry point to hand a coding agent: model, minimal call set, failure modes, progressive links.
  • REST API — the /api/v1 contract: everything the CLI can do, over HTTP with Bearer auth. Loopback by default; opt-in network exposure for compose siblings. Machine-readable spec: openapi.yaml.
  • Declarative setup and the bundle format — the whole setup (providers, channels, rules) as one YAML file: backup/restore, startup config, secret indirection.

Deploying alle

  • Docker — image design, proxy hub, VPN gateway container (tun), trust boundaries.
  • Docker Compose walkthrough — bundle authoring, secrets, managing alle from a sibling container, day-2 operations, troubleshooting.
  • TUN runbook — whole-machine capture: privilege models per platform, verification, rollback.

Understanding alle

  • How it works — the runtime model: one sing-box, state, ports, probes.
  • Current status — supported providers and platforms, feature matrix, what is planned, and the non-goals.
  • Security model — trust boundaries, credential handling, Web UI/API hardening, fail-closed routing.
  • VPN provider research — which providers can be supported next, and why some can't.
  • alle and gluetun — how the two differ, and how to choose between them.

Security and privacy

See the Security model.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alle_proxy-0.1.13.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alle_proxy-0.1.13-py3-none-any.whl (329.6 kB view details)

Uploaded Python 3

File details

Details for the file alle_proxy-0.1.13.tar.gz.

File metadata

  • Download URL: alle_proxy-0.1.13.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for alle_proxy-0.1.13.tar.gz
Algorithm Hash digest
SHA256 e3500d9ce8ad25d3914bf6fd86f9c4b66128e047189e25985939774bcf413b32
MD5 b3fb290eeaa824ac98b9a5359b090bdd
BLAKE2b-256 8859d4ea18e7b98b5bd96f87d45e81954b42f52e1be22040c5a05a613f0a98f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for alle_proxy-0.1.13.tar.gz:

Publisher: publish.yml on zydo/alle

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file alle_proxy-0.1.13-py3-none-any.whl.

File metadata

  • Download URL: alle_proxy-0.1.13-py3-none-any.whl
  • Upload date:
  • Size: 329.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for alle_proxy-0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 d7fbaedda9cfaeec3f9bea03c4aa179163e4717046cb54ec66518750a0d7d563
MD5 39304a554765b3c77818fa64a6d57a3b
BLAKE2b-256 7ce616578edfbd04d793dd2185c5129d5f53794549a78d82223b23c86d80063a

See more details on using hashes here.

Provenance

The following attestation bundles were made for alle_proxy-0.1.13-py3-none-any.whl:

Publisher: publish.yml on zydo/alle

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.14

2 files

This release

0.1.13 This release

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page