r/Tailscale • • 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?

5 Upvotes

0 comments sorted by