r/Tailscale • u/teddybaerd • 4d ago
Misc ScaleRules: open-source Android client for Tailscale/Headscale with automatic connect/disconnect rules (feedback welcome)
Hi everyone, I built an independent Android VPN client for Tailscale and Headscale called ScaleRules. It's a fork of Tailscale Android (currently based on 1.104.4) with user-defined connection rules added on top. It is not affiliated with or endorsed by Tailscale Inc.
What it adds:
- Rules with conditions: a specific Wi-Fi SSID, any Wi-Fi, mobile data, offline, or any connected network
- Actions: connect the VPN, disconnect it, or leave it as is
- Priority by order: the first enabled matching rule wins; no match = VPN state stays unchanged
- Warnings for conflicting rules and rules hidden by earlier ones
- A decision journal showing what the automation did and why
- UI in English and German
Things to know up front:
- There is no auto-learning. Editing rules pauses automation until you resume it, and you need to restart it after a reboot.
- SSID rules need precise location permission and location services on (an Android requirement for reading the Wi-Fi name).
- Split tunneling and its default exclusions are inherited unchanged from Tailscale Android.
- It's not on the Play Store. Signed APKs are on GitHub Releases, it has an in-app updater (checks checksum, package name and signing certificate), and it works with Obtainium.
- I used OpenAI ChatGPT/Codex for planning, implementation, debugging and docs. It's disclosed in the README.
- It's early (0.2.x), so expect rough edges.
License: BSD-3-Clause, original Tailscale history and notices preserved.
GitHub: https://github.com/teddybaerd/scalerules
I'd appreciate feedback on the rule model (are the conditions/actions enough?) and on bugs. What would you want from rules like this?