Repository navigation
Releases: tame-gg/Flavor
Release list
Flavor 0.1.0-beta.11
A redesigned desktop app with live traffic graphs, and subnet routes working again on Linux and macOS.
Added
- Redesigned desktop app: a new Overview page leads with a health line and a Needs you list that says why a network is degraded or failed, with one button to fix each item. Every network has its own colour across the app. Ctrl/Cmd+K opens a palette that jumps to pages, networks and devices, and shows which network a name or address goes to as you type. Every page is rebuilt: network tabs, a keyboard-driven device explorer, the connection inspector with a path to the device, a conflict overlap matrix, workspaces, diagnostics and settings. Light and dark follow the system or your choice, and animations respect reduced motion.
- Live traffic: the Overview shows Download and Upload, plus a chart of the last two minutes with one line per network. Each network also gets a small graph with its current rate, and a chart on its own Overview tab. Polling stops while the window is hidden or minimized.
flavorctl trafficshows the current download and upload rate per connected network, also with--json.
Fixed
- On Linux and macOS, subnet routes that other devices advertise work again through
flavorctl forward, the SOCKS5 proxy and system-wide routes. Before, connections to them timed out. flavorctl devices,connect,disconnect,enroll,renameandremoveaccept a network's name as well as its id.flavorctl diagsays why a network is degraded and marks it as a warning instead of ok.
Full list: CHANGELOG.md.
Upgrading: on Linux, systemctl --user restart flavord; with Homebrew, brew services restart flavor; with the tarball LaunchAgent, launchctl kickstart -k gui/$(id -u)/dev.lunarlabs.flavor.flavord. AUR (flavor, flavor-bin) and Homebrew users: update as usual. On Windows, run the new installer. Traffic graphs need the flavord from this release; with an older daemon the app hides them.
Windows: download flavor-0.1.0-beta.11-windows-amd64-setup.exe, or windows-arm64-setup.exe on ARM. The installer is not code-signed yet, so SmartScreen may ask you to click More info, then Run anyway. Details: wiki/Windows.
macOS: the app and binaries are ad-hoc signed, not notarized, so macOS blocks the app's first launch until you click Open Anyway in System Settings › Privacy & Security. Details: wiki/macOS.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper (the desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3), darwin-amd64 and darwin-arm64 tarballs, and windows-amd64 and windows-arm64 installers and zips. Each tarball and zip has an SPDX SBOM; the source SBOM covers the whole repository. Install guide: wiki/Install.
Verify: SHA256SUMS covers the tarballs, zips, installers and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <file> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
On macOS, use shasum -a 256 --check --ignore-missing SHA256SUMS. On Windows, compare Get-FileHash <file> with the line in SHA256SUMS.
This is a beta. System-wide names and routes through the helper are experimental: opt-in on Linux, installed by the setup .exe on Windows, not available on macOS. Exit node offering and system-wide subnet routes have not been tested against live clients yet.
Flavor 0.1.0-beta.10
Windows system-wide names now work for everyday accounts, plus subnet routes for every program and exit nodes both ways.
Fixed (Windows)
- System-wide names work for standard users. In beta.8 and beta.9,
flavordonly used theflavor-netdservice when you were an administrator (#59). - The DNS rule
flavor-netdwrites now lists its nameservers in the form Windows reads, so Flavor names resolve in browsers and other apps. Before, Windows saw no nameservers for the rule (#59).
Added
- Subnet routes for every program:
flavorctl routes available [network]lists the routes other devices advertise;routes use <network> <cidr>...or--allpicks them androutes unusedrops them. The desktop app has a Subnet routes section on the network page. Withflavor-netdrunning, programs on this computer reach those addresses over TCP and UDP; ping does not go through. Nothing is used until you pick it, andflavor-netdrefuses any route that overlaps one this computer already has, such as your LAN (#62). - Offer this machine as an exit node:
flavorctl exit-node offer <network>or the Exit node switch on the network page; the control server has to approve it. Flavor forwards TCP only to public internet addresses, never to private ranges, your local network or this machine; UDP is not forwarded (#43). - Pick an exit node in the desktop app: open a device that offers itself and choose Use as exit node (#43).
Changed
- Subnet routes this machine advertises no longer forward connections to this machine's own addresses.
Full list: CHANGELOG.md.
Upgrading: on Linux, systemctl --user restart flavord; with Homebrew, brew services restart flavor; with the tarball LaunchAgent, launchctl kickstart -k gui/$(id -u)/dev.lunarlabs.flavor.flavord. AUR (flavor, flavor-bin) and Homebrew users: update as usual. On Windows, run the new installer. Subnet routes for every program need the flavor-netd from this release; an older helper reports that it cannot install routes.
Windows: download flavor-0.1.0-beta.10-windows-amd64-setup.exe, or windows-arm64-setup.exe on ARM. The installer is not code-signed yet, so SmartScreen may ask you to click More info, then Run anyway. Details: wiki/Windows.
macOS: the app and binaries are ad-hoc signed, not notarized, so macOS blocks the app's first launch until you click Open Anyway in System Settings › Privacy & Security. Details: wiki/macOS.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper (the desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3), darwin-amd64 and darwin-arm64 tarballs, and windows-amd64 and windows-arm64 installers and zips. Each tarball and zip has an SPDX SBOM; the source SBOM covers the whole repository. Install guide: wiki/Install.
Verify: SHA256SUMS covers the tarballs, zips, installers and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <file> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
On macOS, use shasum -a 256 --check --ignore-missing SHA256SUMS. On Windows, compare Get-FileHash <file> with the line in SHA256SUMS.
This is a beta. System-wide names and routes through the helper are experimental: opt-in on Linux, installed by the setup .exe on Windows, not available on macOS. Exit node offering and system-wide subnet routes have not been tested against live clients yet.
Flavor 0.1.0-beta.9
Split DNS and search domains, plus a DNS view per network.
Added
- Split DNS: names under a domain that a network sends to its own nameservers, such as
wiki.corp.example, are looked up through that network and work inflavorctl explain,forward, the SOCKS5 proxy and system-wide names. Answers are kept for 30 seconds. DNS-over-HTTPS nameservers are skipped (#47). - Search domains: short names are completed with the network's search domains, so
git.intrafindsgit.intra.example.internal. A completed name counts as much as a device name, so it is ambiguous next to a device of that name on another network. flavorctl dns [network]lists each network's published names, split DNS domains with their nameservers, and search domains, also with--json. The desktop app shows the same on the network page.flavorctl conflictsand the Conflict Center list published names that more than one network uses.
Fixed
- With system-wide names, a published name that points outside the tailnet, such as a LAN address behind a subnet router, now resolves instead of returning no address.
Full list: CHANGELOG.md. Details: wiki/Names, decisions and connections.
Upgrading: on Linux, systemctl --user restart flavord; with Homebrew, brew services restart flavor; with the tarball LaunchAgent, launchctl kickstart -k gui/$(id -u)/dev.lunarlabs.flavor.flavord. AUR (flavor, flavor-bin) and Homebrew users: update as usual. On Windows, run the new installer; it keeps the flavor-netd service from beta.8.
Windows: download flavor-0.1.0-beta.9-windows-amd64-setup.exe, or windows-arm64-setup.exe on ARM. The installer is not code-signed yet, so SmartScreen may ask you to click More info, then Run anyway. Details: wiki/Windows.
macOS: the app and binaries are ad-hoc signed, not notarized, so macOS blocks the app's first launch until you click Open Anyway in System Settings › Privacy & Security. Details: wiki/macOS.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper (the desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3), darwin-amd64 and darwin-arm64 tarballs, and windows-amd64 and windows-arm64 installers and zips. Each tarball and zip has an SPDX SBOM; the source SBOM covers the whole repository. Install guide: wiki/Install.
Verify: SHA256SUMS covers the tarballs, zips, installers and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <file> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
On macOS, use shasum -a 256 --check --ignore-missing SHA256SUMS. On Windows, compare Get-FileHash <file> with the line in SHA256SUMS.
This is a beta. System-wide names through the helper are experimental: opt-in on Linux, installed by the setup .exe on Windows, not available on macOS.
Flavor 0.1.0-beta.8
Flavor names now work in every app on Windows, plus exit nodes, subnet routes and published DNS names on every platform.
Added
- Windows: device names and published names such as
git.example.internalnow resolve in browsers and every other app, not only throughflavorctl forwardand the SOCKS5 proxy. The installer asks once for administrator rights to set upflavor-netd, a small Windows service that adds a Flavor network adapter and tells Windows to ask Flavor about those names. If you decline, everything else works as before; runflavor-netd.exe installfrom an administrator terminal later to add it (#55). - Exit nodes per network:
flavorctl exit-node list,set <network> <device>andclear <network>. Destinations on no tailnet leave through the exit node inflavorctl forwardand the SOCKS5 proxy (#52). - Subnet routes per network:
flavorctl routes list,advertiseandwithdraw. Flavor forwards TCP for them; UDP is not forwarded (#43). - Names a network's DNS settings publish, such as Headscale
extra_records, resolve inflavorctl explain,forward, the SOCKS5 proxy and the Connection Inspector (#47). - The system-wide names helper routes every device name and published name of your connected networks, not only
*.flavor.internal.
Fixed
- On Windows, Flavor starts in the tray at sign-in and only one instance runs (#54).
Full list: CHANGELOG.md.
Windows: download flavor-0.1.0-beta.8-windows-amd64-setup.exe, or windows-arm64-setup.exe on ARM, and run it. Expect one administrator prompt for flavor-netd. The installer is not code-signed yet, so SmartScreen may ask you to click More info, then Run anyway. Uninstalling Flavor removes the service. Details: wiki/Windows.
Linux and macOS: update and restart the daemon: systemctl --user restart flavord on Linux, brew services restart flavor with Homebrew, or launchctl kickstart -k gui/$(id -u)/dev.lunarlabs.flavor.flavord with the tarball LaunchAgent. AUR and Homebrew users: update as usual.
macOS: the app and binaries are ad-hoc signed, not notarized, so macOS blocks the app's first launch until you click Open Anyway in System Settings › Privacy & Security. Details: wiki/macOS.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper (the desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3), darwin-amd64 and darwin-arm64 tarballs, and windows-amd64 and windows-arm64 installers and zips. Each tarball and zip has an SPDX SBOM; the source SBOM covers the whole repository. Install guide: wiki/Install.
Verify: SHA256SUMS covers the tarballs, zips, installers and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <file> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
On macOS, use shasum -a 256 --check --ignore-missing SHA256SUMS. On Windows, compare Get-FileHash <file> with the line in SHA256SUMS.
This is a beta. System-wide names through the helper are experimental: opt-in on Linux, installed by the setup .exe on Windows, not available on macOS.
Flavor 0.1.0-beta.7
A small Windows fix: the installer now lists its publisher as tame-gg.
Fixed
- The Windows installer lists the publisher as tame-gg instead of lunarlabs in Settings › Apps and winget (#48).
Full list: CHANGELOG.md.
Upgrading from v0.1.0-beta.6 on Windows: run the new installer. Because the publisher changed, it can't uninstall beta.6 first and says so; choose to install without uninstalling and continue. Your networks, identities and the start-at-sign-in entry are kept. Silent upgrades, such as /S or winget, skip this step. With Scoop, stop flavord with Stop-Process -Name flavord, then run scoop update flavor.
Linux and macOS: nothing changed. Update when convenient and restart the daemon: systemctl --user restart flavord on Linux, brew services restart flavor with Homebrew, or launchctl kickstart -k gui/$(id -u)/dev.lunarlabs.flavor.flavord with the tarball LaunchAgent. AUR and Homebrew users: update as usual.
Windows: download flavor-0.1.0-beta.7-windows-amd64-setup.exe, or windows-arm64-setup.exe on ARM, and run it, or install with Scoop. The installer is not code-signed yet, so SmartScreen may ask you to click More info, then Run anyway. Details: wiki/Windows.
macOS: the app and binaries are ad-hoc signed, not notarized, so macOS blocks the app's first launch until you click Open Anyway in System Settings › Privacy & Security. Details: wiki/macOS.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper (the desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3), darwin-amd64 and darwin-arm64 tarballs, and windows-amd64 and windows-arm64 installers and zips. Each tarball and zip has an SPDX SBOM; the source SBOM covers the whole repository. Install guide: wiki/Install.
Verify: SHA256SUMS covers the tarballs, zips, installers and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <file> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
On macOS, use shasum -a 256 --check --ignore-missing SHA256SUMS. On Windows, compare Get-FileHash <file> with the line in SHA256SUMS.
This is a beta. System-wide names through the helper are experimental, off by default and Linux-only.
Flavor 0.1.0-beta.6
Flavor now runs on Windows 11, on x64 and ARM64: the daemon, flavorctl and the desktop app, with a per-user installer.
Added
- Windows support (#32).
flavordandflavorctltalk over a named pipe that only your user account can open, and port forwarding and the SOCKS5 proxy accept only your own user, as on Linux.flavordruns without a console window and starts at sign-in. The desktop app has a tray icon in the notification area. Secrets go to Windows Credential Manager. flavord --log-file PATHappends the daemon log to a file instead of standard error, on every platform.- Every release build installs, upgrades and uninstalls the Windows installer on x64 and ARM64 before anything is published.
Fixed
flavordon Windows accepts data folders owned by the Administrators group or SYSTEM instead of refusing to start withunexpected owner(#38).
Full list: CHANGELOG.md.
Windows: download flavor-0.1.0-beta.6-windows-amd64-setup.exe, or windows-arm64-setup.exe on ARM, and run it. It installs into %LOCALAPPDATA%\Flavor without administrator rights. The installer is not code-signed yet, so SmartScreen may ask you to click More info, then Run anyway. Windows 10 should work but has not been tested. Details: wiki/Windows.
Upgrading from v0.1.0-beta.5: install this release the same way and restart the daemon: systemctl --user restart flavord on Linux, brew services restart flavor with Homebrew, or launchctl kickstart -k gui/$(id -u)/dev.lunarlabs.flavor.flavord with the tarball LaunchAgent. Data and network identities are kept. AUR and Homebrew users: update as usual.
macOS: the app and binaries are ad-hoc signed, not notarized, so macOS blocks the app's first launch until you click Open Anyway in System Settings › Privacy & Security. Details: wiki/macOS.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper (the desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3), darwin-amd64 and darwin-arm64 tarballs, and windows-amd64 and windows-arm64 installers and zips. Each tarball and zip has an SPDX SBOM; the source SBOM covers the whole repository. Install guide: wiki/Install.
Verify: SHA256SUMS covers the tarballs, zips, installers and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <file> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
On macOS, use shasum -a 256 --check --ignore-missing SHA256SUMS. On Windows, compare Get-FileHash <file> with the line in SHA256SUMS.
This is a beta. System-wide names through the helper are experimental, off by default and Linux-only.
Flavor 0.1.0-beta.5
Better daemon logs, Headscale addresses without https://, and a Homebrew tap for macOS.
Added
- The daemon log records connect and disconnect requests, forward listeners starting and stopping with their network and target, SOCKS5 listeners starting and stopping, and refused connections with the reason, including connections from another local user and failed upstream dials. At debug level it also records each connection opening and closing (#20).
- A Homebrew tap for macOS:
brew install tame-gg/tap/flavorfor the daemon and CLI,brew install --cask tame-gg/tap/flavor-desktopfor the app.
Changed
- A Headscale address without a scheme, such as
vpn.example.com, now meanshttps://vpn.example.cominstead of failing withINVALID_CONTROL_URL.http://is never assumed (#18).
Fixed
- tsnet lines in the debug log show their values again instead of raw format strings. Sign-in links, auth keys and other key material are replaced with
[REDACTED](#19).
Full list: CHANGELOG.md.
Upgrading from v0.1.0-beta.4: install this release the same way and restart the daemon: systemctl --user restart flavord on Linux, brew services restart flavor with Homebrew, or launchctl kickstart -k gui/$(id -u)/dev.lunarlabs.flavor.flavord with the tarball LaunchAgent. Data and network identities are kept. AUR and Homebrew users: update as usual.
macOS: the app and binaries are ad-hoc signed, not notarized, so macOS blocks the app's first launch until you click Open Anyway in System Settings › Privacy & Security. Details: wiki/macOS.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper (the desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3), and darwin-amd64 and darwin-arm64 tarballs. Each tarball has an SPDX SBOM; the source SBOM covers the whole repository. Install guide: wiki/Install.
Verify: SHA256SUMS covers the tarballs and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <tarball> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
On macOS, use shasum -a 256 --check --ignore-missing SHA256SUMS.
This is a beta. System-wide names through the helper are experimental, off by default and Linux-only.
Flavor 0.1.0-beta.4
macOS support: flavord, flavorctl and the desktop app now run on Intel and Apple Silicon Macs.
Added
- macOS support (#15):
flavordandflavorctlrun on macOS. The IPC socket, port forwarding and the SOCKS5 proxy accept only your own user, as on Linux (#17).- The desktop app runs on macOS, with a menu bar icon that follows light and dark mode (#22).
- A LaunchAgent starts
flavordat login (#21). darwin-amd64anddarwin-arm64tarballs withflavord,flavorctl,Flavor.appand the LaunchAgent (#23).
- CI runs the Go and Rust test suites on macOS (Intel and Apple Silicon).
Changed
flavord --synthetic-helperstops at startup with a clear error on platforms other than Linux. System-wide names remain Linux-only.
Fixed
- The
flavorAUR package no longer builds an emptyflavor-debugpackage (#16).
Full list: CHANGELOG.md.
macOS: the app and binaries are ad-hoc signed, not signed with an Apple Developer ID or notarized. A tarball downloaded with curl opens directly; from a browser, Gatekeeper blocks it until you allow it. Install, Gatekeeper and LaunchAgent steps: wiki/macOS. Tested by hand on an Intel Mac with macOS 15; Apple Silicon is covered by CI only so far.
Upgrading from v0.1.0-beta.3: install this release the same way and restart the daemon with systemctl --user restart flavord. Data and network identities are kept. AUR users: update flavor-bin or flavor as usual.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper (the desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3), and darwin-amd64 and darwin-arm64 tarballs. Each tarball has an SPDX SBOM; the source SBOM covers the whole repository. Install guide: wiki/Install.
Verify: SHA256SUMS covers the tarballs and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <tarball> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
On macOS, use shasum -a 256 --check --ignore-missing SHA256SUMS.
This is a beta. System-wide names through the helper are experimental, off by default and Linux-only.
Flavor v0.1.0-beta.3
Hardened binaries, flavorctl --version, and the first release with Arch Linux packages on the AUR.
Changed
flavord,flavorctlandflavor-netdare now position-independent executables with full RELRO, and the desktop binary has no symbol table (#1). The Go binaries now need the system's dynamic loader, but still link no shared libraries.- Every GitHub Action in CI and the release workflow is pinned to a commit SHA, and releases build without Go or npm caches (#2). CI runs on Ubuntu 24.04, like the release builds (#3).
Added
flavorctl --version, and bothflavorctlandflavordprint the build commit and protocol, for exampleflavord 0.1.0-beta.3 (commit ad22fb5bd5b3…) protocol 1.3(#4).- AUR packages:
flavor-bin(this release, checksum-verified) andflavor(built from the signed tag). - Documentation moved to the wiki.
Fixed
scripts/generate-proto.shstops whengo envfails (#5).
Full list: CHANGELOG.md.
Upgrading from v0.1.0-beta.2: install this release the same way and restart the daemon with systemctl --user restart flavord. Data and network identities are kept. Coming from Lattice v0.1.0-beta.1, follow the upgrade notes.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper. The desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3. Each tarball has an SPDX SBOM; the source SBOM covers the whole repository. Install guide: wiki/Install.
Verify: SHA256SUMS covers the tarballs and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <tarball> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
This is a beta. System-wide names through the helper are experimental and off by default. macOS support is tracked in #15.
Flavor 0.1.0-beta.2
Lattice is now Flavor. Same app: one desktop app and daemon for several Tailscale and Headscale networks at once, on Linux. Everything that carried the old name is renamed: flavord, flavorctl, flavor-desktop, the flavor-netd helper, *.flavor.internal names, and the ~/.local/share/flavor and ~/.config/flavor directories.
Upgrading from Lattice v0.1.0-beta.1: install this release the same way, then run systemctl --user enable --now flavord. install.sh removes Lattice first and keeps your data; on its first start flavord moves your database, networks and device identities over, so networks reconnect without signing in again. A systemctl --user edit latticed override is not carried over. Details: Upgrading from Lattice.
Downloads: linux-amd64 and linux-arm64 tarballs with the daemon, CLI, desktop app and the optional flavor-netd helper. The desktop app needs glibc 2.39+, libwebkit2gtk-4.1 and libayatana-appindicator3. Each tarball has an SPDX SBOM covering its Go modules, Rust crates and bundled npm packages; the source SBOM covers the whole repository.
Install: see Install a release. Uninstall with sudo /usr/libexec/flavor/uninstall.
Verify: SHA256SUMS covers the tarballs and SBOMs. Any one of these checks it:
- cosign:
SHA256SUMS.sigstore.json(keyless, from the release workflow) - GitHub attestations:
gh attestation verify <tarball> --repo tame-gg/Flavor - GPG:
SHA256SUMS.asc, key0DFC 4321 62BF 84C0 FD78 0619 FBB9 6BCE C036 1F01from https://github.com/ohemilyy.gpg
This is a beta. System-wide names through the helper are experimental and off by default. Concurrent sessions are tested against real Headscale servers; end-to-end testing against Tailscale's hosted control plane is still pending. See Not in this release for what isn't built yet.