Installation Guide

To effectively use the trzsz protocol, you must establish a client-server relationship over your terminal stream. This means you typically need software installed on both ends of your connection:

  1. Local Computer (Client): Needs the trzsz wrapper to intercept transfer requests, open file dialogs, and manage the local file system. (Note: Using the standalone tssh client is highly recommended here).
  2. Remote Server (Host): Needs the trz and tsz binaries to trigger transfers and read/write to the remote file system.

Choose the appropriate installation method below based on the operating system of the target machine.


Linux Package Managers

Ubuntu

We provide an official PPA for Ubuntu systems for easy installation and updates.

# Install prerequisites
sudo apt update && sudo apt install software-properties-common

# Add the trzsz PPA and update
sudo add-apt-repository ppa:trzsz/ppa && sudo apt update

# Install the binaries
sudo apt install trzsz

Debian

For Debian, you can add our repository manually using gpg keys.

# Install dependencies
sudo apt install curl gpg

# Import the GPG key
curl -s 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x7074ce75da7cc691c1ae1a7c7e51d1ad956055ca' \
    | gpg --dearmor -o /usr/share/keyrings/trzsz.gpg

# Add the repository
echo 'deb [signed-by=/usr/share/keyrings/trzsz.gpg] https://ppa.launchpadcontent.net/trzsz/ppa/ubuntu jammy main' \
    | sudo tee /etc/apt/sources.list.d/trzsz.list
sudo apt update

# Install the binaries
sudo apt install trzsz

RHEL / CentOS / Fedora (yum / dnf)

For RPM-based distributions, you can use either Gemfury or wlnmp as your repository source.

Using Gemfury (Recommended for Yum):

# Add the Trzsz repository
echo '[trzsz]
name=Trzsz Repo
baseurl=https://yum.fury.io/trzsz/
enabled=1
gpgcheck=0' | sudo tee /etc/yum.repos.d/trzsz.repo

# Install the binaries
sudo yum install trzsz

Using DNF (Fedora/RHEL 8+):

sudo dnf copr enable @trzsz/trzsz
sudo dnf install trzsz

ArchLinux (yay)

Available in the AUR for Arch users.

yay -Syu
yay -S trzsz

macOS (Homebrew)

If you are using a Mac as your local client, you can easily install the trzsz wrapper using Homebrew.

brew install trzsz-go

Windows (Scoop / Winget / Choco)

For Windows users utilizing modern command-line package managers:

# Using scoop
scoop install trzsz

# Using winget
winget install trzsz

# Using chocolatey
choco install trzsz

Important for Windows Users: The native Windows console environment (cmd.exe) has specific PTY handling quirks. While trzsz includes logic to handle Windows virtual terminals (CP_UTF8, ENABLE_VIRTUAL_TERMINAL_PROCESSING), relying on the dedicated tssh client is often a more stable experience on Windows.


Install via Go Toolchain

If you have a Go development environment set up (Go 1.25 or later is required), you can compile and install the latest binaries directly from the repository. This is great for environments where you lack sudo privileges but have Go installed.

# Install the remote upload command
go install github.com/trzsz/trzsz-go/cmd/trz@latest

# Install the remote download command
go install github.com/trzsz/trzsz-go/cmd/tsz@latest

# Install the local wrapper command
go install github.com/trzsz/trzsz-go/cmd/trzsz@latest

Note: The compiled binaries will be located in your $GOPATH/bin directory (usually ~/go/bin/ on Linux/macOS or C:\Users\<your_name>\go\bin\ on Windows). Ensure this directory is added to your system's $PATH.


Offline / Manual Installation

For air-gapped servers or systems without a supported package manager, you can download pre-compiled release assets from the GitHub Releases page.

# Example: Installing from a generic tarball
wget https://github.com/trzsz/trzsz-go/releases/download/v1.2.0/trzsz_1.2.0_linux_x86_64.tar.gz
tar zxvf trzsz_*.tar.gz

# Move binaries to a location in your PATH
sudo cp trzsz_*/trz trzsz_*/tsz /usr/bin/

Verification

To confirm the installation was successful, check the version of the installed binaries:

trz --version
tsz --version
trzsz --version

You should see an output resembling trz (trzsz) go 1.2.0.