trzsz


Nametrzsz JSON
Version 1.1.2 PyPI version JSON
download
home_pagehttps://trzsz.github.io
Summarytrzsz is a simple file transfer tools, similar to lrzsz ( rz / sz ) and compatible with tmux, which works with iTerm2 and has a nice progress bar.
upload_time2023-03-26 07:39:12
maintainer
docs_urlNone
authorLonny Wong
requires_python
licenseMIT License
keywords trzsz trz tsz lrzsz rz sz tmux iterm2 progressbar
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # trzsz

`trzsz` ( trz / tsz ) is a simple file transfer tools, similar to `lrzsz` ( rz / sz ), and compatible with `tmux`.

Website: [https://trzsz.github.io](https://trzsz.github.io)

[![MIT License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://choosealicense.com/licenses/mit/)
[![PyPI trzsz](https://img.shields.io/pypi/v/trzsz?style=flat)](https://pypi.python.org/pypi/trzsz/)
[![中文网站](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-%E7%BD%91%E7%AB%99-blue?style=flat)](https://trzsz.github.io/cn/)


## Why?

Considering `laptop -> hostA -> hostB -> docker -> tmux`, using `scp` or `sftp` is inconvenience.

In this case, `lrzsz` ( rz / sz ) is convenient to use, but unfortunately it's not compatible with `tmux`.

`tmux` is not going to support rz / sz ( [906](https://github.com/tmux/tmux/issues/906), [1439](https://github.com/tmux/tmux/issues/1439) ), and creating a new tools is much easier than patching `tmux`.


## Advantage

* Support **tmux**, including tmux normal mode, and tmux command mode integrated with iTerm2.
* Support **transfer directories**, `trz -d` to upload directories, `tsz -d xxx` to download xxx directories.
* Support **Windows server**, not only can run on Windows client, but also can run on Windows ssh server.
* Support **native terminal**, does not require terminal to support, just use `trzsz ssh x.x.x.x` to login.
* Support **web terminal**, transfer files and directories between local and remote servers over the web.
* Support **drag to upload**, drag and drop files and directories to the terminal to upload to the remote server.
* Support **progress bar**, shows the current transferring file name, progress, size, speed, remaining time, etc.
* Better **interactive experience**, shows the transfer results or errors friendly, `ctrl + c` to stop gracefully.


## Installation

### On the server

* with Python3
  ```
  sudo python3 -m pip install --upgrade trzsz
  ```

* with Python2
  ```
  sudo python2 -m pip install --upgrade trzsz
  ```

* with Homebrew
  ```
  brew update
  brew install trzsz
  ```

* with Node.js
  ```
  sudo npm install -g trzsz
  ```

* or install trzsz written in Go

  Check [https://github.com/trzsz/trzsz-go](https://github.com/trzsz/trzsz-go)


  Can be installed without `sudo`, just add the installation path ( e.g. `~/.local/bin` ) to the `PATH` environment.


### Supported Terminals

* [iTerm2](https://iterm2.com/) -- check [the trzsz-iterm2 installation](https://trzsz.github.io/iterm2).

* [tabby](https://tabby.sh/) -- install the [tabby-trzsz](https://github.com/trzsz/tabby-trzsz) plugin.

* [electerm](https://electerm.github.io/electerm/) -- upgrade to `1.19.0` or higher.

* [ttyd](https://github.com/tsl0922/ttyd) -- upgrade to `1.7.3` or higher, and start with `-t enableTrzsz=true`, use `https` unless localhost.

* [trzsz-go](https://github.com/trzsz/trzsz-go) -- supports all terminals that support a local shell.

* [trzsz.js](https://github.com/trzsz/trzsz.js) -- making webshell in browser and electron terminal supports `trzsz`.

  *Does your terminal supports `trzsz` as well? Please let me know. I would love to have it on the list.*


## Trzsz Manual

#### `trz` upload files to the remote server
  ```
  usage: trz [-h] [-v] [-q] [-y] [-b] [-e] [-d] [-B N] [-t N] [path]

  Receive file(s), similar to rz and compatible with tmux.

  positional arguments:
    path               path to save file(s). (default: current directory)

  optional arguments:
    -h, --help         show this help message and exit
    -v, --version      show program's version number and exit
    -q, --quiet        quiet (hide progress bar)
    -y, --overwrite    yes, overwrite existing file(s)
    -b, --binary       binary transfer mode, faster for binary files
    -e, --escape       escape all known control characters
    -d, --directory    transfer directories and files
    -B N, --bufsize N  max buffer chunk size (1K<=N<=1G). (default: 10M)
    -t N, --timeout N  timeout ( N seconds ) for each buffer chunk.
                       N <= 0 means never timeout. (default: 20)
  ```

#### `tsz` download files from the remote server
  ```
  usage: tsz [-h] [-v] [-q] [-y] [-b] [-e] [-d] [-B N] [-t N] file [file ...]

  Send file(s), similar to sz and compatible with tmux.

  positional arguments:
    file               file(s) to be sent

  optional arguments:
    -h, --help         show this help message and exit
    -v, --version      show program's version number and exit
    -q, --quiet        quiet (hide progress bar)
    -y, --overwrite    yes, overwrite existing file(s)
    -b, --binary       binary transfer mode, faster for binary files
    -e, --escape       escape all known control characters
    -d, --directory    transfer directories and files
    -B N, --bufsize N  max buffer chunk size (1K<=N<=1G). (default: 10M)
    -t N, --timeout N  timeout ( N seconds ) for each buffer chunk.
                       N <= 0 means never timeout. (default: 20)
  ```

#### Trouble shooting
* If `tmux` is not running on the remote server, but on the local computer, or on a middle server.
  * Option 1: Use `tmux -CC` integration with iTerm2, please refer to [iTerm2 tmux Integration](https://trzsz.github.io/tmuxcc).
  * Option 2: Install [trzsz-go](https://github.com/trzsz/trzsz-go) on the local computer, and `alias ssh="trzsz ssh"` for convenience.

* If an error occurs, and `trzsz` is hanging up.
  * Press `control + c` to stop `trz` or `tsz` process on the server.
  * For iTerm2 users, press `command + option + shift + r` to stop [iTerm2 Coprocesses](https://iterm2.com/documentation-coprocesses.html).

* If `trz -b` binary upload fails, and login to server using `telnet` or `docker exec`.
  * Try to escape all known control characters, e.g., `trz -eb`.

* If `trz -b` or `tsz -b` binary transfer fails, and login to server using `expect`.
  * Try to `export LC_CTYPE=C` before the `expect` script. e.g.:
    ```
    #!/bin/sh
    export LC_CTYPE=C
    expect -c '
      spawn ssh xxx
      expect "xxx: "
      send "xxx\n"
      interact
    '
    ```

## Screenshot

#### Using trzsz in iTerm2 with `text` progress bar

  ![using trzsz in iTerm2 with text progress bar](https://trzsz.github.io/images/iterm2_text.gif)


#### Using trzsz in iTerm2 with `zenity` progress bar

  ![using trzsz in iTerm2 with zenity progress bar](https://trzsz.github.io/images/iterm2_zenity.gif)


#### Using trzsz in tabby with `tabby-trzsz` plugin

  ![using trzsz in tabby with tabby-trzsz plugin](https://trzsz.github.io/images/tabby_trzsz.gif)


## Contact

Feel free to email me <lonnywong@qq.com>.

            

Raw data

            {
    "_id": null,
    "home_page": "https://trzsz.github.io",
    "name": "trzsz",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "trzsz trz tsz lrzsz rz sz tmux iTerm2 progressbar",
    "author": "Lonny Wong",
    "author_email": "lonnywong@qq.com",
    "download_url": "https://files.pythonhosted.org/packages/0c/e5/00c95527d18445cbd3b3b2c5c28a383c94c9ac5291e886796004727b25aa/trzsz-1.1.2.tar.gz",
    "platform": null,
    "description": "# trzsz\n\n`trzsz` ( trz / tsz ) is a simple file transfer tools, similar to `lrzsz` ( rz / sz ), and compatible with `tmux`.\n\nWebsite: [https://trzsz.github.io](https://trzsz.github.io)\n\n[![MIT License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://choosealicense.com/licenses/mit/)\n[![PyPI trzsz](https://img.shields.io/pypi/v/trzsz?style=flat)](https://pypi.python.org/pypi/trzsz/)\n[![\u4e2d\u6587\u7f51\u7ad9](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-%E7%BD%91%E7%AB%99-blue?style=flat)](https://trzsz.github.io/cn/)\n\n\n## Why?\n\nConsidering `laptop -> hostA -> hostB -> docker -> tmux`, using `scp` or `sftp` is inconvenience.\n\nIn this case, `lrzsz` ( rz / sz ) is convenient to use, but unfortunately it's not compatible with `tmux`.\n\n`tmux` is not going to support rz / sz ( [906](https://github.com/tmux/tmux/issues/906), [1439](https://github.com/tmux/tmux/issues/1439) ), and creating a new tools is much easier than patching `tmux`.\n\n\n## Advantage\n\n* Support **tmux**, including tmux normal mode, and tmux command mode integrated with iTerm2.\n* Support **transfer directories**, `trz -d` to upload directories, `tsz -d xxx` to download xxx directories.\n* Support **Windows server**, not only can run on Windows client, but also can run on Windows ssh server.\n* Support **native terminal**, does not require terminal to support, just use `trzsz ssh x.x.x.x` to login.\n* Support **web terminal**, transfer files and directories between local and remote servers over the web.\n* Support **drag to upload**, drag and drop files and directories to the terminal to upload to the remote server.\n* Support **progress bar**, shows the current transferring file name, progress, size, speed, remaining time, etc.\n* Better **interactive experience**, shows the transfer results or errors friendly, `ctrl + c` to stop gracefully.\n\n\n## Installation\n\n### On the server\n\n* with Python3\n  ```\n  sudo python3 -m pip install --upgrade trzsz\n  ```\n\n* with Python2\n  ```\n  sudo python2 -m pip install --upgrade trzsz\n  ```\n\n* with Homebrew\n  ```\n  brew update\n  brew install trzsz\n  ```\n\n* with Node.js\n  ```\n  sudo npm install -g trzsz\n  ```\n\n* or install trzsz written in Go\n\n  Check [https://github.com/trzsz/trzsz-go](https://github.com/trzsz/trzsz-go)\n\n\n&nbsp;&nbsp;Can be installed without `sudo`, just add the installation path ( e.g. `~/.local/bin` ) to the `PATH` environment.\n\n\n### Supported Terminals\n\n* [iTerm2](https://iterm2.com/) -- check [the trzsz-iterm2 installation](https://trzsz.github.io/iterm2).\n\n* [tabby](https://tabby.sh/) -- install the [tabby-trzsz](https://github.com/trzsz/tabby-trzsz) plugin.\n\n* [electerm](https://electerm.github.io/electerm/) -- upgrade to `1.19.0` or higher.\n\n* [ttyd](https://github.com/tsl0922/ttyd) -- upgrade to `1.7.3` or higher, and start with `-t enableTrzsz=true`, use `https` unless localhost.\n\n* [trzsz-go](https://github.com/trzsz/trzsz-go) -- supports all terminals that support a local shell.\n\n* [trzsz.js](https://github.com/trzsz/trzsz.js) -- making webshell in browser and electron terminal supports `trzsz`.\n\n&nbsp;&nbsp;*Does your terminal supports `trzsz` as well? Please let me know. I would love to have it on the list.*\n\n\n## Trzsz Manual\n\n#### `trz` upload files to the remote server\n  ```\n  usage: trz [-h] [-v] [-q] [-y] [-b] [-e] [-d] [-B N] [-t N] [path]\n\n  Receive file(s), similar to rz and compatible with tmux.\n\n  positional arguments:\n    path               path to save file(s). (default: current directory)\n\n  optional arguments:\n    -h, --help         show this help message and exit\n    -v, --version      show program's version number and exit\n    -q, --quiet        quiet (hide progress bar)\n    -y, --overwrite    yes, overwrite existing file(s)\n    -b, --binary       binary transfer mode, faster for binary files\n    -e, --escape       escape all known control characters\n    -d, --directory    transfer directories and files\n    -B N, --bufsize N  max buffer chunk size (1K<=N<=1G). (default: 10M)\n    -t N, --timeout N  timeout ( N seconds ) for each buffer chunk.\n                       N <= 0 means never timeout. (default: 20)\n  ```\n\n#### `tsz` download files from the remote server\n  ```\n  usage: tsz [-h] [-v] [-q] [-y] [-b] [-e] [-d] [-B N] [-t N] file [file ...]\n\n  Send file(s), similar to sz and compatible with tmux.\n\n  positional arguments:\n    file               file(s) to be sent\n\n  optional arguments:\n    -h, --help         show this help message and exit\n    -v, --version      show program's version number and exit\n    -q, --quiet        quiet (hide progress bar)\n    -y, --overwrite    yes, overwrite existing file(s)\n    -b, --binary       binary transfer mode, faster for binary files\n    -e, --escape       escape all known control characters\n    -d, --directory    transfer directories and files\n    -B N, --bufsize N  max buffer chunk size (1K<=N<=1G). (default: 10M)\n    -t N, --timeout N  timeout ( N seconds ) for each buffer chunk.\n                       N <= 0 means never timeout. (default: 20)\n  ```\n\n#### Trouble shooting\n* If `tmux` is not running on the remote server, but on the local computer, or on a middle server.\n  * Option 1: Use `tmux -CC` integration with iTerm2, please refer to [iTerm2 tmux Integration](https://trzsz.github.io/tmuxcc).\n  * Option 2: Install [trzsz-go](https://github.com/trzsz/trzsz-go) on the local computer, and `alias ssh=\"trzsz ssh\"` for convenience.\n\n* If an error occurs, and `trzsz` is hanging up.\n  * Press `control + c` to stop `trz` or `tsz` process on the server.\n  * For iTerm2 users, press `command + option + shift + r` to stop [iTerm2 Coprocesses](https://iterm2.com/documentation-coprocesses.html).\n\n* If `trz -b` binary upload fails, and login to server using `telnet` or `docker exec`.\n  * Try to escape all known control characters, e.g., `trz -eb`.\n\n* If `trz -b` or `tsz -b` binary transfer fails, and login to server using `expect`.\n  * Try to `export LC_CTYPE=C` before the `expect` script. e.g.:\n    ```\n    #!/bin/sh\n    export LC_CTYPE=C\n    expect -c '\n      spawn ssh xxx\n      expect \"xxx: \"\n      send \"xxx\\n\"\n      interact\n    '\n    ```\n\n## Screenshot\n\n#### Using trzsz in iTerm2 with `text` progress bar\n\n  ![using trzsz in iTerm2 with text progress bar](https://trzsz.github.io/images/iterm2_text.gif)\n\n\n#### Using trzsz in iTerm2 with `zenity` progress bar\n\n  ![using trzsz in iTerm2 with zenity progress bar](https://trzsz.github.io/images/iterm2_zenity.gif)\n\n\n#### Using trzsz in tabby with `tabby-trzsz` plugin\n\n  ![using trzsz in tabby with tabby-trzsz plugin](https://trzsz.github.io/images/tabby_trzsz.gif)\n\n\n## Contact\n\nFeel free to email me <lonnywong@qq.com>.\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "trzsz is a simple file transfer tools, similar to lrzsz ( rz / sz ) and compatible with tmux, which works with iTerm2 and has a nice progress bar.",
    "version": "1.1.2",
    "split_keywords": [
        "trzsz",
        "trz",
        "tsz",
        "lrzsz",
        "rz",
        "sz",
        "tmux",
        "iterm2",
        "progressbar"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7b970e9a4599e36d5100fd7b1bca94e90ea92ca4000a0df27dc54bf8665496c5",
                "md5": "94eff5ea64729523a1ff22df854ada05",
                "sha256": "cd9f7cd0eb5d21ae7e8132e482f4a5984e920dd44878bc8b716ee20e587dc5da"
            },
            "downloads": -1,
            "filename": "trzsz-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "94eff5ea64729523a1ff22df854ada05",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 6134,
            "upload_time": "2023-03-26T07:39:11",
            "upload_time_iso_8601": "2023-03-26T07:39:11.332497Z",
            "url": "https://files.pythonhosted.org/packages/7b/97/0e9a4599e36d5100fd7b1bca94e90ea92ca4000a0df27dc54bf8665496c5/trzsz-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ce500c95527d18445cbd3b3b2c5c28a383c94c9ac5291e886796004727b25aa",
                "md5": "3240fcb80c1aaaa50c0e8aa15c2dd09e",
                "sha256": "dfc9606fb7ae76490c8559ec297b307a788688351ab57108f6a733105b206052"
            },
            "downloads": -1,
            "filename": "trzsz-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "3240fcb80c1aaaa50c0e8aa15c2dd09e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 5355,
            "upload_time": "2023-03-26T07:39:12",
            "upload_time_iso_8601": "2023-03-26T07:39:12.849394Z",
            "url": "https://files.pythonhosted.org/packages/0c/e5/00c95527d18445cbd3b3b2c5c28a383c94c9ac5291e886796004727b25aa/trzsz-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-03-26 07:39:12",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "trzsz"
}
        
Elapsed time: 0.06264s