Loading latest version

Install Truzt.

Every installer is upgrade-safe. It closes the running app, removes any previous install (including legacy trust / netbird builds), reinstalls the service and keeps your peer registration and settings. Re-run it any time to update.

macOS

01

Homebrew cask

Recommended

Daemon + desktop app.

brew tap Dynamic-Labs-AI/tap
brew trust dynamic-labs-ai/tap    # one-time: approve the third-party tap
brew install --cask truzt
02

Install script

No Homebrew needed. One command to install or update the daemon and app:

curl -fsSL https://pkgs.truzt.lk/release/latest/install-macos.sh | bash
03

Homebrew formula

CLI and daemon only, for headless Macs.

brew tap Dynamic-Labs-AI/tap
brew trust dynamic-labs-ai/tap    # one-time: approve the third-party tap
brew install truzt
04

Manual .pkg

Pick your chip, then double-click to install (daemon + UI + service).

Gatekeeper: Truzt isn't Apple-notarized. The cask and install script clear the quarantine flag automatically. A manually downloaded .pkg prompts once: right-click → Open (or System Settings → Privacy & Security → Open Anyway).

Linux

01

Debian / Ubuntu .deb

Recommended

Daemon + desktop app. For arm64 or armv6, swap the architecture in the file name or use the downloads page.

V=$(curl -fsSL https://pkgs.truzt.lk/release/latest/version)
curl -fLO "https://pkgs.truzt.lk/release/v$V/truzt-full_${V}_linux_amd64.deb"
sudo dpkg -i "truzt-full_${V}_linux_amd64.deb"      # install or update
02

RHEL / Fedora .rpm

V=$(curl -fsSL https://pkgs.truzt.lk/release/latest/version)
curl -fLO "https://pkgs.truzt.lk/release/v$V/truzt-full_${V}_linux_amd64.rpm"
sudo rpm -Uvh "truzt-full_${V}_linux_amd64.rpm"     # install or upgrade
03

Homebrew

CLI and daemon only (there's no GUI cask on Linux).

brew tap Dynamic-Labs-AI/tap
brew trust dynamic-labs-ai/tap    # one-time: approve the third-party tap
brew install truzt
sudo "$(command -v truzt)" service install && sudo "$(command -v truzt)" service start

The .deb / .rpm post-install stops any old truzt / trust / netbird service and starts the new one. Your config is preserved.

Windows

01

PowerShell

Recommended

Run in an elevated PowerShell (Administrator). Re-run to update.

irm https://pkgs.truzt.lk/release/latest/install-windows.ps1 | iex
02

Installer .exe

Download Truzt-<VERSION>-setup.exe and run it.

Windows installer
03

WinGet

git clone https://github.com/Dynamic-Labs-AI/winget-pkgs
winget install --manifest winget-pkgs\manifests\d\DynamicLabs\Truzt\latest

latest always resolves to the newest release.

Unsigned build: two separate Windows checks.

SmartScreen (most PCs): the first run shows “Windows protected your PC”. Click More info → Run anyway.

Smart App Control (some clean Windows 11 22H2+ installs) blocks unsigned apps with no “Run anyway” button and has no per-app allowlist. Install on a PC without SAC, or have IT allow Truzt via Intune / MDM / WDAC policy. Turning SAC off is system-wide and can't be undone without resetting Windows, so we don't recommend it.

Connect

Open the Truzt app and sign in, or from a terminal:

truzt up --management-url https://app.truzt.lk:443
truzt status

Update

Every method updates in place. If Truzt is running, the updater closes the app and stops the service first, installs the new build, then restarts the service. Reopen Truzt when it's done.

Homebrew: always run brew update first so brew sees the new version.

macOS · caskbrew update && brew upgrade --cask truzt
macOS · scriptcurl -fsSL https://pkgs.truzt.lk/release/latest/install-macos.sh | bash
macOS / Linux · formulabrew update && brew upgrade truzt
Linux · .debre-run the .deb download, then sudo dpkg -i truzt-full_<VERSION>_linux_amd64.deb
Linux · .rpmre-run the .rpm download, then sudo rpm -Uvh truzt-full_<VERSION>_linux_amd64.rpm
Windows · PowerShellirm https://pkgs.truzt.lk/release/latest/install-windows.ps1 | iex (Admin)
Windows · WinGetwinget install --manifest winget-pkgs\manifests\d\DynamicLabs\Truzt\latest
Windows · .exedownload + run Truzt-<VERSION>-setup.exe

Troubleshoot

Truzt Doctor checks device internet, DNS, ping + TCP/HTTPS to the Truzt server, whether the service is running and the peer registered, and live Management / Signal status, then prints a PASS / WARN / FAIL summary. It can also restart the service or clear the peer config. Works with legacy trust builds too.

macOS / Linux · diagnose
curl -fsSL https://pkgs.truzt.lk/release/latest/truzt-doctor.sh | bash
Restart service
curl -fsSL https://pkgs.truzt.lk/release/latest/truzt-doctor.sh | bash -s -- restart
Clear config (re-register)
curl -fsSL https://pkgs.truzt.lk/release/latest/truzt-doctor.sh | bash -s -- clear-config
Windows · diagnose (Admin PowerShell)
irm https://pkgs.truzt.lk/release/latest/truzt-doctor.ps1 | iex
Restart / clear config
irm https://pkgs.truzt.lk/release/latest/truzt-doctor.ps1 -OutFile truzt-doctor.ps1
.\truzt-doctor.ps1 restart
.\truzt-doctor.ps1 clear-config

Arguments can't be piped to iex, so download the script first.

Uninstall

macOS
brew uninstall --cask truzt
Linux
sudo apt remove truzt-full
# or: sudo rpm -e truzt-full
Windows

Settings → Add or remove programs → Truzt