Trzsz ( go ) Document
trzsz-go makes all terminals that support local shell to support trzsz ( trz / tsz ), which similar to ( rz / sz ), and compatible with tmux.
⭐ It’s recommended to use the go version of trzsz on the server, use trzsz-ssh ( tssh ) on local.
Please check https://trzsz.github.io for more information about trzsz ( trz / tsz ).
Installation
-
Install with apt on Ubuntu
sudo apt install trzszsudo apt update && sudo apt install software-properties-common sudo add-apt-repository ppa:trzsz/ppa && sudo apt update sudo apt install trzsz -
Install with apt on Debian
sudo apt install trzszsudo apt install curl gpg curl -s 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x7074ce75da7cc691c1ae1a7c7e51d1ad956055ca' \ | gpg --dearmor -o /usr/share/keyrings/trzsz.gpg 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 sudo apt install trzsz -
Install with yum on Linux
sudo yum install trzsz-
Install with gemfury repository.
echo '[trzsz] name=Trzsz Repo baseurl=https://yum.fury.io/trzsz/ enabled=1 gpgcheck=0' | sudo tee /etc/yum.repos.d/trzsz.repo sudo yum install trzsz -
Install with wlnmp repository. It’s not necessary to configure the epel repository for trzsz.
curl -fsSL "https://sh.wlnmp.com/wlnmp.sh" | bash sudo yum install trzsz
-
-
Install with yay on ArchLinux
yay -S trzszyay -Syu yay -S trzsz -
Install with homebrew on MacOS
brew install trzsz-gobrew update brew install trzsz-go -
Install with scoop / winget / choco on Windows
scoop install trzsz/winget install trzsz/choco install trzszscoop install trzszwinget install trzszchoco install trzsz -
Install with Go ( Requires go 1.20 or later )
go install github.com/trzsz/trzsz-go/cmd/...@latestgo install github.com/trzsz/trzsz-go/cmd/trz@latest go install github.com/trzsz/trzsz-go/cmd/tsz@latest go install github.com/trzsz/trzsz-go/cmd/trzsz@latestThe binaries are usually located in
~/go/bin/(C:\Users\your_name\go\bin\on Windows ). -
Build from source ( Requires go 1.20 or later )
sudo make installgit clone --depth 1 https://github.com/trzsz/trzsz-go.git cd trzsz-go make sudo make install -
Download from the GitHub Releases, unzip and add to
PATHenvironment.
Usage
Use on the local computer
-
Add
trzszbefore the shell to support trzsz ( trz / tsz ), e.g.:trzsz bash trzsz PowerShell trzsz ssh x.x.x.x -
Add
trzsz --dragfilebefore thesshto enable drag files and directories to upload, e.g.:trzsz -d ssh x.x.x.x trzsz --dragfile ssh x.x.x.x
Use on the jump server
-
If using
tmuxon the jump server, usetrzsz --relay sshto login to the remote server, e.g.:trzsz ssh jump_server tmux trzsz --relay ssh remote_server
Use on the remote server
-
Similar to lrzsz ( rz / sz ), command
trzto upload files, commandtsz /path/to/fileto download files. -
For more information, check the website of trzsz: https://trzsz.github.io. 中文文档:https://trzsz.github.io/cn/
Suggestion
-
It is recommended to set
alias ssh="trzsz ssh"for convenience,alias ssh="trzsz -d ssh"for dragging files to upload. -
If using
tmuxon the local computer, runtmux( withouttrzsz) first, thentrzsz sshto login.
Configuration
trzsz looks for configuration at ~/.trzsz.conf ( C:\Users\your_name\.trzsz.conf on Windows ). The path have to end with /, e.g.:
DefaultUploadPath =
DefaultDownloadPath = /Users/username/Downloads/
-
If the
DefaultUploadPathis not empty, the path will be opened by default while choosing upload files. -
If the
DefaultDownloadPathis not empty, downloading files will be saved to the path automatically instead of asking each time.
Zmodem support
-
Use
-zor--zmodemto enable therz / szfeature. e.g.,trzsz -z ssh remote_server. -
lrzszneeds to be installed on the client ( local computer ). e.g.,brew install lrzsz,apt install lrzsz, etc. -
trzsz --zmodem ssh xxxis not supported on Windows. You can use trzsz-ssh ( tssh ) instead,tssh --zmodem xxx. -
About the progress, the transferred and speed are not precise, there will be some deviation. It just indicating that the transfer is in progress.
Trouble shooting
-
If using MSYS2 or Git Bash on windows, and getting an error
The handle is invalid.- Install winpty by
pacman -S winptyinMSYS2. Git Bashshould have winpty installed, no need to install it manually.- Add
winptybeforetrzsz, e.g.:winpty trzsz ssh x.x.x.x.
- Install winpty by
-
The
/usr/bin/sshin MSYS2 and Cygwin is not supported yet, use the OpenSSH instead.- In
MSYS2, e.g.:winpty trzsz /c/Windows/System32/OpenSSH/ssh.exe x.x.x.x. - In
Cygwin, e.g.:trzsz "C:\Windows\System32\OpenSSH\ssh.exe" x.x.x.x. - ⭐ Recommended to use trzsz-ssh ( tssh ) instead,
tsshis same astrzsz ssh.
- In
-
Dragging files doesn’t upload?
- Don’t forget the
--dragfileoption. e.g.:trzsz -d ssh x.x.x.x. - Make sure the
trzin one of thePATHdirectory on the server. - On Windows, make sure there is no
Administratoron the title. - The
cmdandPowerShellonly support draging one file into it. - On the Windows Terminal, drag files to the top left where shows
Paste path to file.
- Don’t forget the
Development
Want to write your own ssh client that supports trzsz? Please check the go ssh client example.
Screenshot
Windows

Ubuntu

Drag files

Contact
Feel free to email the author lonnywong@qq.com, or create an issue. Welcome to join the QQ group: 318578930.
Sponsor
❤️ Sponsor trzsz ❤️, buy the author a drink 🍺 ? Thank you for your support!