# 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.4.2-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) ~ A feature rich terminal file transfer ~ Developed by Christian Visintin Current version: 0.4.2 (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 through 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.4.2_amd64.deb) or run `wget https://github.com/veeso/termscp/releases/latest/download/termscp_0.4.2_amd64.deb` then install through 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.4.2-1.x86_64.rpm) or run `wget https://github.com/veeso/termscp/releases/latest/download/termscp-0.4.2-1.x86_64.rpm` then install through 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.4.2.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 ๐Ÿงช - **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 - **Local and remote file explorer format ๐Ÿƒ**: From 0.5.0 you will be able to customize the file format for both local and remote hosts. - **Synchronized browsing of local and remote directories โŒš**: See [Issue 8](https://github.com/veeso/termscp/issues/8) - **Group file select ๐Ÿคฉ**: Possibility to select a group of files in explorers to operate on No other new feature is planned at the moment. I actually think that termscp is getting mature and now I should focus upcoming updates more on bug fixing and code/performance improvements than on new features. Anyway there are some ideas which I'd like to implement. If you want to start working on them, feel free to open a PR: - Amazon S3 support - Samba support - Themes provider --- ## 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) - [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)