Cross-platform app that automates login to VIT Wi-Fi networks.
Latch is a Kotlin application developed by VinnovateIT that automates the login process for VIT hostel Wi-Fi networks. It detects network connections, submits credentials automatically, and optionally logs network statistics. The app reduces repetitive manual logins for students.
- Automatic detection of VIT hostel Wi-Fi networks
- Auto-login with securely stored credentials
- Logging and display of network usage statistics
- Standalone CLI for Linux terminals and Windows PowerShell
Before you start, make sure you have:
- Android Studio
- Kotlin (latest stable version)
- JDK 21
- Android device or emulator running Android 8.0 (API 26) or higher
- Download
LatchSetup.msifrom the latest release - Run the installer and follow the setup wizard
- Launch Latch from the Start menu and enter your VIT hostel credentials
-
Run the install script:
curl -fsSL https://latch.vinnovateit.com/install.sh | shThis installs Latch to
/opt/latch(system-wide, if run withsudoaccess) or~/.local/share/latch(user-local otherwise), and registers a desktop entry. -
Launch Latch from your application menu, or run
latchin a terminal.To install manually instead, download the
latch-<version>-linux-x64.tar.gzarchive from the latest release and extract it.
macOS support is in preview: there is no signed release build yet, so for now Latch for macOS is built from source (see Dev setup). It needs macOS 12 or later.
The first time Latch runs, macOS asks to let it use your location. Since macOS 14 the name of the Wi-Fi network you are on counts as location information, and Latch only ever signs in once it has read that name and it is a VIT network. If you decline, Latch keeps running but never signs in; turn it on later in System Settings > Privacy & Security > Location Services > Latch. Your credentials are kept in your login Keychain.
latch-cli bundles its own trimmed Java runtime, so Java does not need to be
installed separately.
Package-manager installs become available as each channel is published; until then, download the package for your system from the latest release.
Windows, with winget:
winget install VinnovateIT.LatchCLIDebian and Ubuntu. Unlike winget, apt needs the repository added once before the install works, because Latch is not in the Debian or Ubuntu archives:
curl -fsSL https://vinnovateit.github.io/latch/latch.gpg \
| sudo tee /usr/share/keyrings/latch.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/latch.gpg] \
https://vinnovateit.github.io/latch/apt stable main" \
| sudo tee /etc/apt/sources.list.d/latch.list
sudo apt update
sudo apt install latch-cliFedora and RPM-based distributions, likewise adding the repository first:
sudo dnf config-manager --add-repo https://vinnovateit.github.io/latch/latch.repo
sudo dnf install latch-cliDirect download. The latest release
carries a .deb, an .rpm, a portable Linux tarball and a Windows ZIP, with
SHA256SUMS alongside them. On Windows the executable runs straight from the
extracted folder:
.\latch-cli.exe --statusFlatpak is intentionally out of scope: its sandbox and desktop-first distribution model do not fit a host-network command-line daemon.
Run latch-cli with no arguments the first time. It prompts for your VIT credentials, starts the auto-login daemon in the background, and enables per-user startup at login. On later runs, latch-cli prints its help menu.
Use activate and deactivate to control the background daemon on Linux or from PowerShell on Windows:
latch-cli activate
latch-cli deactivate
activate is idempotent and enables startup at login. deactivate stops a CLI-owned daemon and disables its login startup entry; it does not terminate a running desktop app. Common one-shot commands are:
latch-cli --set-credentials
latch-cli --status
latch-cli --login
latch-cli --logout
latch-cli --history
latch-cli --settings
latch-cli --settings set auto-login on
latch-cli --settings set allowed-ssids "VIT2.4G,VIT5G"
Desktop and CLI installations can coexist. They coordinate through an authenticated local connection so only one networking engine is active, and opening Desktop takes ownership from a running CLI daemon.
Latch is on Google Play:
To build it from source instead, see Dev setup below.
-
Clone the repository:
git clone https://github.com/vinnovateit/latch.git
-
Open the project in Android Studio
-
Sync Gradle and build the project.
The app targets
compileSdk 37. If Android Studio's SDK Manager doesn't already have Android SDK Platform 37 installed, the first sync will prompt you to download it and accept its license. -
Run on a connected device or emulator
-
Enter your VIT hostel credentials when prompted
-
Clone the repository (if not already done above)
-
Run it directly:
./gradlew :desktop:run
-
Or build a native package for your OS:
./gradlew :desktop:packageReleaseDeb # .deb ./gradlew :desktop:packageReleaseRpm # .rpm ./gradlew :desktop:packageReleaseAppImage # AppImage ./gradlew :desktop:packageReleaseTarGz # .tar.gz (Linux) ./gradlew :desktop:packageReleaseDmg # .dmg containing Latch.app (macOS only)
Build artifacts land in
desktop/build/distributions/(the.tar.gz) anddesktop/build/compose/binaries/main-release/<format>/(the rest). The.dmgis unsigned and not notarized: it is for running on the Mac that built it, not for handing out. -
To test a locally-built (or otherwise custom) tarball without publishing a release, point
install.shat it directly instead of letting it download from GitHub:LATCH_LOCAL_TAR=desktop/build/distributions/latch-1.3.8-linux-x64.tar.gz sh install.sh
This module is built as part of the same Gradle project as
:app, so the Android SDK still needs to be configured (see the Android app prerequisites above) even though the desktop app itself doesn't run on Android.
Latch automatically detects VIT hostel Wi-Fi networks and logs in using the credentials you provide.
Optionally, it records network statistics for monitoring purposes.
| Landing screen | Home screen |
|---|---|
![]() |
![]() |
| Stats | Settings |
|---|---|
![]() |
![]() |
- Add support for multiple VIT campuses
- Improve UI responsiveness
- Publish the generated CLI manifests to additional package repositories
See the open issues for a full list of proposed features and known issues.
Made with love by VinnovateIT.
Latch is released under the MIT License.



