Awesome
trzsz-go ( trz / tsz ) - the go version of trzsz
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
<details><summary><code>sudo apt install trzsz</code></summary>
</details>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
<details><summary><code>sudo apt install trzsz</code></summary>
</details>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
<details><summary><code>sudo yum install trzsz</code></summary>-
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
<details><summary><code>yay -S trzsz</code></summary>
</details>yay -Syu yay -S trzsz
-
Install with homebrew on MacOS
<details><summary><code>brew install trzsz-go</code></summary>
</details>brew update brew install trzsz-go
-
Install with scoop / winget / choco on Windows
<details><summary><code>scoop install trzsz</code> / <code>winget install trzsz</code> / <code>choco install trzsz</code></summary>scoop install trzsz
winget install trzsz
</details>choco install trzsz
-
Install with Go ( Requires go 1.20 or later )
<details><summary><code>go install github.com/trzsz/trzsz-go/cmd/...@latest</code></summary>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
</details>~/go/bin/
(C:\Users\your_name\go\bin\
on Windows ). -
Build from source ( Requires go 1.20 or later )
<details><summary><code>sudo make install</code></summary>
</details>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.
Usage
Use on the local computer
-
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
Use on the jump server
-
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
Use on the 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/
Suggestion
-
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.
Zmodem support
-
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.
Clipboard integration
-
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.
Configuration
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.
Trouble shooting
-
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
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!