KUVPN is a VPN client for Koç University that automates the Microsoft Azure AD / MFA browser login to retrieve a DSID cookie, then hands off to OpenConnect to establish the VPN tunnel.
KUVPN is the graphical app (system tray, GUI window). kuvpn is the command-line tool (run
kuvpnin a terminal). Both connect to the same VPN — pick whichever fits your workflow.
|
Get up and running on any platform |
Graphical app — KUVPN |
Command-line tool — kuvpn |
Linux:
wget -qO- https://raw.githubusercontent.com/KUACC-VALAR-HPC-KOC-UNIVERSITY/kuvpn/main/install.sh | bashmacOS:
curl -sSfL https://raw.githubusercontent.com/KUACC-VALAR-HPC-KOC-UNIVERSITY/kuvpn/main/install.sh | bashThe script will ask what to install (GUI, CLI, or both), set up your PATH, and check for OpenConnect.
Windows (run in PowerShell):
irm https://raw.githubusercontent.com/KUACC-VALAR-HPC-KOC-UNIVERSITY/kuvpn/main/install.ps1 | iexOr download and run KUVPN-Setup-windows-x86_64.exe manually from the Releases page.
Non-interactive flags (for scripting / automation)
# Linux — install both
wget -qO- https://raw.githubusercontent.com/KUACC-VALAR-HPC-KOC-UNIVERSITY/kuvpn/main/install.sh | bash -s -- --all
# Linux — GUI only
wget -qO- https://raw.githubusercontent.com/KUACC-VALAR-HPC-KOC-UNIVERSITY/kuvpn/main/install.sh | bash -s -- --gui
# Linux — CLI only
wget -qO- https://raw.githubusercontent.com/KUACC-VALAR-HPC-KOC-UNIVERSITY/kuvpn/main/install.sh | bash -s -- --cli
# macOS — install both
curl -sSfL https://raw.githubusercontent.com/KUACC-VALAR-HPC-KOC-UNIVERSITY/kuvpn/main/install.sh | bash -s -- --all- Two ways to connect — graphical app for everyday desktop use, or a single static CLI binary for terminals, scripts, and SSH sessions. Same VPN, same saved session.
- Hands-free Azure AD / MFA login — automated browser walks through the entire login: email, password, Authenticator push, number matching, and OTP fallback if push isn't available.
- Three login modes — Full Auto (headless), Visual Auto (visible browser, still automated), and Manual (you drive the login). Sessions are saved so the next connect goes straight through.
- Number-matching front and centre — when Microsoft asks you to type a code into Authenticator, KUVPN brings the window forward and shows the code in big, readable text.
- System tray with one-click actions — connect, disconnect, show window, wipe session, or copy logs from the tray menu. The tray icon reflects current state (idle, connecting, connected, error).
- Connection history — past sessions with timestamps, durations, and reconnect counts, in both the GUI History tab and
kuvpn --history. - Auto-reconnect that watches the tunnel — detects when the VPN interface itself drops (not just the OpenConnect process) and retries up to 3 times. Stale saved sessions are wiped and re-authenticated automatically.
- Conflict detection — refuses to start if another full-tunnel VPN is already routing your traffic (e.g. a Tailscale exit node), so you don't end up half-connected to two networks.
- Routing flexibility — full tunnel for "everything through KU", or supply your own vpnc-script for split tunneling and custom DNS.
- 20 themes — 10 color families (Crimson, Slate, Ocean, Forest, Rose, Violet, Ember, Frost, Sand, Pebble), each with light and dark variants, plus rounding and shadow controls.
- Cross-platform — Linux (x86_64, aarch64), macOS (Intel and Apple Silicon), and Windows (x86_64). OpenConnect and the Wintun driver are bundled in the Windows installer.
| Main Window | History | Settings |
|---|---|---|
![]() |
![]() |
![]() |
| MFA Authentication | Email Automation | Live Logs |
|---|---|---|
![]() |
![]() |
![]() |
| Connected | Connecting | MFA Prompt |
|---|---|---|
![]() |
![]() |
![]() |
| History | Session Management | Disconnected |
|---|---|---|
![]() |
![]() |
![]() |
KUVPN features 10 unique color families, each with Light and Dark modes (20 themes total).
| Dark | Light | |
|---|---|---|
| Crimson (Default) | ![]() |
![]() |
| Slate | ![]() |
![]() |
| Ocean | ![]() |
![]() |
| Forest | ![]() |
![]() |
| Rose | ![]() |
![]() |
| Violet | ![]() |
![]() |
| Ember | ![]() |
![]() |
| Frost | ![]() |
![]() |
| Sand | ![]() |
![]() |
| Pebble | ![]() |
![]() |
MIT — see LICENSE.
Issues and pull requests are welcome.































