Flavor
Linux & macOS · Go + Rust · Tailscale & HeadscaleTailscale only keeps one tailnet active at a time. Flavor keeps every Tailscale and Headscale network connected side by side, shows every device with the network it belongs to, and tells you exactly where a connection goes when two networks share an address.
- License
- MIT
- Version
- 0.1.0-beta.5
- Platforms
- Linux + macOS
- Status
- Beta
Overview
Tailscale and Headscale tie your devices into private WireGuard networks, and most people end up needing more than one: a company tailnet, a Headscale server at home, a customer's network. The official apps only keep one active at a time. Flavor runs each network as its own embedded tsnet node with its own identity, all from one per-user daemon, so this machine shows up separately on every one of them.
Running several networks at once means addresses overlap. Default Headscale hands out 100.64.0.1, .2, .3 in order, so two servers almost always collide. Flavor identifies every device by its network, lists every duplicate address, name and route in the Conflict Center, and explains each decision in the Connection Inspector. It never picks a network at random.
Why Flavor
- 01Every Tailscale and Headscale network connected at once, one embedded node each
- 02One device list across all tailnets, searchable by network, OS or tag
- 03Connection Inspector and Conflict Center for overlapping IPs and routes
- 04Port forwarding and a SOCKS5 proxy per network, with no root and no route changes
- 05No telemetry, pre-auth keys never stored, signed and reproducible releases
Install
Install the signed release tarball, the flavor-bin AUR package, or the Homebrew tap on macOS, then start the per-user daemon. Everyday use needs no root.
Formerly Lattice. Upgrading from 0.1.0-beta.2 or earlier keeps your networks and device identities.