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 ).
-
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 trzsz
winget install trzsz
choco 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@latest
The 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.
-
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
-
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
-
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/
-
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.
-
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.
-
Use
-oor--osc52to enable the clipboard integration feature. e.g.,trzsz -o ssh remote_server. -
Clipboard integration allows remote servers to write to the local clipboard via OSC52 sequences.
-
On Linux, clipboard integration requires
xcliporxselcommand to be installed.
trzsz looks for configuration at ~/.trzsz.conf ( C:\Users\your_name\.trzsz.conf on Windows ), e.g.:
DefaultUploadPath =
DefaultDownloadPath = /Users/username/Downloads/
DragFileUploadCommand = trz -y
ProgressColorPair = B14FFF 00FFA3
-
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. -
The default value of
DragFileUploadCommandistrz, configure it totrz -yif you want to overwrite the existing files, configure it torzif you want to userzto upload. -
The
ProgressColorPairconfigures the color of the progress bar. You need to configure 2 colors and do not include#. The progress bar will gradient from the first color to the second color.
-
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
Want to write your own ssh client that supports trzsz? Please check the go ssh client example.
Feel free to email the author [email protected], or create an issue. Welcome to join the QQ group: 318578930.
❤️ Sponsor trzsz ❤️, buy the author a drink 🍺 ? Thank you for your support!