Lightweight Connectivity & Exit-IP Monitor for Android
Continuously checks whether the open internet is reachable, shows your current exit IP and its location, and alerts you the moment the connection drops.
🌐 netpulse.shuttlelab.org · 💻 Website source: ShuttleLab/netpulse-shuttle
NetPulse is a small Android utility that runs a foreground service and probes
lightweight generate_204 connectivity endpoints on a fixed interval. It tells
you at a glance whether you can actually reach the open internet, what your
current exit IP and region are, and keeps a rolling log so you can see exactly
when connectivity — or your exit IP — changed.
It is not a VPN and does not tunnel any traffic; it only observes and reports the state of your existing connection.
- Reliable reachability check — probes
generate_204endpoints and treats only a strict204 No Contentas success, ignoring captive-portal / hijack pages. - Exit IP & geolocation — shows your current public exit IP, region, and ISP; tap to copy.
- Persistent status-bar icon — distinct check / cross / ring glyphs so the state is readable even in the monochrome status bar.
- Check log — keeps the last N results (configurable) with timestamp, result, latency, and exit IP; highlights the moment the IP changes.
- Next-check countdown and one-tap start/stop.
- Disconnect alerts — optional vibration and sound.
- Bilingual — English and 中文, with a manual in-app language switch.
- Auto-restart on boot when monitoring was active.
- Language: Kotlin
- Platform: Android SDK (minSdk 26 / targetSdk 36)
- UI: Material Components, View-based layouts
- Concurrency: Kotlin Coroutines
- CI/CD: GitHub Actions
Grab the latest signed APK from the Releases page and install it on your device (you may need to allow installation from unknown sources).
- JDK 17
- Android SDK (or Android Studio)
git clone https://github.com/ShuttleLab/NetPulse.git
cd NetPulse
./gradlew assembleDebug
# APK at app/build/outputs/apk/debug/app-debug.apkPushing a v* tag triggers a GitHub Actions workflow that builds a signed
release APK and publishes it to GitHub Releases. See RELEASE.md
for keystore and signing-secret setup.
git tag v1.0.0
git push origin v1.0.0NetPulse is licensed under the GNU Affero General Public License v3.0. See LICENSE for the full text.
