# termscp

[![License: MIT](https://img.shields.io/badge/License-MIT-teal.svg)](https://opensource.org/licenses/MIT) [![Stars](https://img.shields.io/github/stars/veeso/termscp.svg)](https://github.com/veeso/termscp) [![Downloads](https://img.shields.io/crates/d/termscp.svg)](https://crates.io/crates/termscp) [![Crates.io](https://img.shields.io/badge/crates.io-v0.5.0-orange.svg)](https://crates.io/crates/termscp) [![Docs](https://docs.rs/termscp/badge.svg)](https://docs.rs/termscp) [![Build](https://github.com/veeso/termscp/workflows/Linux/badge.svg)](https://github.com/veeso/termscp/actions) [![Build](https://github.com/veeso/termscp/workflows/MacOS/badge.svg)](https://github.com/veeso/termscp/actions) [![Build](https://github.com/veeso/termscp/workflows/Windows/badge.svg)](https://github.com/veeso/termscp/actions) [![Coverage Status](https://coveralls.io/repos/github/veeso/termscp/badge.svg)](https://coveralls.io/github/veeso/termscp) ~ A feature rich terminal file transfer ~ Developed by Christian Visintin Current version: 0.5.0 FIXME: (13/04/2021) --- - [termscp](#termscp) - [About termscp ๐Ÿ–ฅ](#about-termscp-) - [Why termscp ๐Ÿค”](#why-termscp-) - [Features ๐ŸŽ](#features-) - [Installation ๐Ÿ› ](#installation-) - [Cargo ๐Ÿฆ€](#cargo-) - [Deb package ๐Ÿ“ฆ](#deb-package-) - [RPM package ๐Ÿ“ฆ](#rpm-package-) - [AUR Package ๐Ÿ”ผ](#aur-package-) - [Chocolatey ๐Ÿซ](#chocolatey-) - [Brew ๐Ÿป](#brew-) - [User Manual ๐ŸŽ“](#user-manual-) - [Documentation ๐Ÿ“š](#documentation-) - [Known issues ๐Ÿงป](#known-issues-) - [Upcoming Features ๐Ÿงช](#upcoming-features-) - [Contributing and issues ๐Ÿค๐Ÿป](#contributing-and-issues-) - [Changelog โณ](#changelog-) - [Powered by ๐Ÿš€](#powered-by-) - [Gallery ๐ŸŽฌ](#gallery-) - [Buy me a coffee โ˜•](#buy-me-a-coffee-) - [License ๐Ÿ“ƒ](#license-) --- ## About termscp ๐Ÿ–ฅ Termscp is a feature rich terminal file transfer and explorer, with support for SCP/SFTP/FTP. So basically is a terminal utility with an TUI to connect to a remote server to retrieve and upload files and to interact with the local file system. It is **Linux**, **MacOS**, **BSD** and **Windows** compatible and supports SFTP, SCP, FTP and FTPS. ![Explorer](assets/images/explorer.gif) --- ### Why termscp ๐Ÿค” It happens quite often to me, when using SCP at work to forget the path of a file on a remote machine, which forces me to connect through SSH, gather the file path and finally download it through SCP. I could use WinSCP, but I use Linux and I pratically use the terminal for everything, so I wanted something like WinSCP on my terminal. Yeah, I know there is midnight commander too, but actually I don't like it very much tbh (and hasn't a decent support for scp). ## Features ๐ŸŽ - ๐Ÿ“ Different communication protocols support - SFTP - SCP - FTP and FTPS - ๐Ÿง Compatible with Windows, Linux, BSD and MacOS - ๐Ÿ–ฅ Handy user interface to explore and operate on the remote and on the local machine file system - Create, remove, rename, search, view and edit files - โญ Bookmarks and recent connections can be saved to access quickly to your favourite hosts - ๐Ÿ“ Supports text editors to view and edit text files - ๐Ÿ’ Supports both SFTP/SCP authentication through SSH keys and username/password - โœ Customizations - Custom file explorer format - Customizable text editor - Customizable file sorting - ๐Ÿ” SSH key storage - ๐Ÿฆ€ Written in Rust - ๐Ÿค Easy to extend with new file transfers protocols - ๐Ÿ‘€ Developed keeping an eye on performance - ๐Ÿฆ„ Frequent awesome updates --- ## Installation ๐Ÿ›  If you're considering to install termscp I want to thank you ๐Ÿ’œ ! I hope you will enjoy termscp! If you want to contribute to this project, don't forget to check out our contribute guide. [Read More](CONTRIBUTING.md) ### Cargo ๐Ÿฆ€ ```sh # Install termscp via cargo cargo install termscp ``` Requirements: - Linux - pkg-config - libssh2 - openssl ### Deb package ๐Ÿ“ฆ Get `deb` package from [HERE](https://github.com/veeso/termscp/releases/latest/download/termscp_0.5.0_amd64.deb) or run `wget https://github.com/veeso/termscp/releases/latest/download/termscp_0.5.0_amd64.deb` then install via dpkg: ```sh dpkg -i termscp_*.deb # Or even better with gdebi gdebi termscp_*.deb ``` ### RPM package ๐Ÿ“ฆ Get `rpm` package from [HERE](https://github.com/veeso/termscp/releases/latest/download/termscp-0.5.0-1.x86_64.rpm) or run `wget https://github.com/veeso/termscp/releases/latest/download/termscp-0.5.0-1.x86_64.rpm` then install via rpm: ```sh rpm -U termscp_*.rpm ``` ### AUR Package ๐Ÿ”ผ On Arch Linux based distribution, you can install termscp using for istance [yay](https://github.com/Jguer/yay), which I recommend to install AUR packages. ```sh yay -S termscp ``` ### Chocolatey ๐Ÿซ You can install termscp on Windows using [chocolatey](https://chocolatey.org/) Start PowerShell as administrator and run ```ps choco install termscp ``` Alternatively you can download the ZIP file from [HERE](https://github.com/veeso/termscp/releases/latest/download/termscp.0.5.0.nupkg) and then with PowerShell started with administrator previleges, run: ```ps choco install termscp -s . ``` ### Brew ๐Ÿป You can install termscp on MacOS using [brew](https://brew.sh/) From your terminal run ```sh brew install veeso/termscp/termscp ``` --- ## User Manual ๐ŸŽ“ [Click here](docs/man.md) to read the user manual! What you will find: - CLI options - Keybindings - Bookmarks - Configuration --- ## Documentation ๐Ÿ“š The developer documentation can be found on Rust Docs at --- ## Known issues ๐Ÿงป - `NoSuchFileOrDirectory` on connect (WSL): I know about this issue and it's a glitch of WSL I guess. Don't worry about it, just move the termscp executable into another PATH location, such as `/usr/bin`, or install it through the appropriate package format (e.g. deb). --- ## Upcoming Features ๐Ÿงช Major termscp updates will now be seasonal, so expect 4 major updates during the year. - **Keyring-rs on Linux ๐Ÿ”**: Planned for the *summer update*, check for updates in [this issue](https://github.com/veeso/termscp/issues/2) - **Samba Support ๐ŸŽ‰**: This will require a long time to be implemented, since I'm thinking of implementing a Rust native samba library from scratch, since I don't want to add new C-bindings. It'll maybe included in the *summer update*. - **Themes provider ๐ŸŽจ**: I'm still thinking about how I will implement this, but basically the idea is to have a configuration file where it will be possible to define the color schema for the entire application. I haven't planned this release yet - **Configuration profile for bookmarks ๐Ÿ“š**: I would like to, but I still have to analyze it. - **AWS S3 support ๐Ÿชฃ**: There is already a library for AWS S3, but this is really on bottom of my implementation list at the moment, due to interest and I don't really have a system where to test it. Along to new features, termscp developments is now focused on UI and performance improvements, so if you have any suggestion, feel free to open an issue. --- ## Contributing and issues ๐Ÿค๐Ÿป Contributions, bug reports, new features and questions are welcome! ๐Ÿ˜‰ If you have any question or concern, or you want to suggest a new feature, or you want just want to improve termscp, feel free to open an issue or a PR. Please follow [our contributing guidelines](CONTRIBUTING.md) --- ## Changelog โณ View termscp's changelog [HERE](CHANGELOG.md) --- ## Powered by ๐Ÿš€ termscp is powered by these aweseome projects: - [bytesize](https://github.com/hyunsik/bytesize) - [crossterm](https://github.com/crossterm-rs/crossterm) - [edit](https://github.com/milkey-mouse/edit) - [keyring-rs](https://github.com/hwchen/keyring-rs) - [rpassword](https://github.com/conradkleinespel/rpassword) - [rust-ftp](https://github.com/mattnenterprise/rust-ftp) - [ssh2-rs](https://github.com/alexcrichton/ssh2-rs) - [textwrap](https://github.com/mgeisler/textwrap) - [tui-rs](https://github.com/fdehau/tui-rs) - [tui-realm](https://github.com/veeso/tui-realm) - [whoami](https://github.com/libcala/whoami) --- ## Gallery ๐ŸŽฌ > Termscp Home ![Auth](assets/images/auth.gif) > Bookmarks ![Bookmarks](assets/images/bookmarks.gif) > Setup ![Setup](assets/images/config.gif) > Text editor ![TextEditor](assets/images/text-editor.gif) --- ## Buy me a coffee โ˜• If you like termscp and you'd love to see the project to grow, please consider a little donation ๐Ÿฅณ [![Buy-me-a-coffee](https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=veeso&button_colour=404040&font_colour=ffffff&font_family=Comic&outline_colour=ffffff&coffee_colour=FFDD00)](https://www.buymeacoffee.com/veeso) --- ## License ๐Ÿ“ƒ termscp is licensed under the MIT license. You can read the entire license [HERE](LICENSE)