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 trzsz
sudo 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 trzsz
sudo 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 trzsz
yay -Syu yay -S trzsz
-
Install with homebrew on MacOS
brew install trzsz-go
brew update brew install trzsz-go
-
Install with scoop / winget / choco on Windows
scoop install trzsz
/winget install trzsz
/choco install trzsz
scoop 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/...@latest
go 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 install
git 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
PATH
environment.
-
Add
trzsz
before the shell to support trzsz ( trz / tsz ), e.g.:trzsz bash trzsz PowerShell trzsz ssh x.x.x.x
-
Add
trzsz --dragfile
before thessh
to 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
tmux
on the jump server, usetrzsz --relay ssh
to login to the remote server, e.g.:trzsz ssh jump_server tmux trzsz --relay ssh remote_server
-
Similar to lrzsz ( rz / sz ), command
trz
to upload files, commandtsz /path/to/file
to 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
tmux
on the local computer, runtmux
( withouttrzsz
) first, thentrzsz ssh
to login.
-
Use
-z
or--zmodem
to enable therz / sz
feature. e.g.,trzsz -z ssh remote_server
. -
lrzsz
needs to be installed on the client ( local computer ). e.g.,brew install lrzsz
,apt install lrzsz
, etc. -
trzsz --zmodem ssh xxx
is 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
-o
or--osc52
to 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
xclip
orxsel
command 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
DefaultUploadPath
is not empty, the path will be opened by default while choosing upload files. -
If the
DefaultDownloadPath
is not empty, downloading files will be saved to the path automatically instead of asking each time. -
The default value of
DragFileUploadCommand
istrz
, configure it totrz -y
if you want to overwrite the existing files, configure it torz
if you want to userz
to upload. -
The
ProgressColorPair
configures 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 winpty
inMSYS2
. Git Bash
should have winpty installed, no need to install it manually.- Add
winpty
beforetrzsz
, e.g.:winpty trzsz ssh x.x.x.x
.
- Install winpty by
-
The
/usr/bin/ssh
in 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,
tssh
is same astrzsz ssh
.
- In
-
Dragging files doesn't upload?
- Don't forget the
--dragfile
option. e.g.:trzsz -d ssh x.x.x.x
. - Make sure the
trz
in one of thePATH
directory on the server. - On Windows, make sure there is no
Administrator
on the title. - The
cmd
andPowerShell
only 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!