https://github.com/5cript/nui-sftp
A cross platform ssh and sftp client
https://github.com/5cript/nui-sftp
Last synced: 20 days ago
JSON representation
A cross platform ssh and sftp client
- Host: GitHub
- URL: https://github.com/5cript/nui-sftp
- Owner: 5cript
- License: mit
- Created: 2024-06-17T22:39:31.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-04-17T20:34:32.000Z (about 1 month ago)
- Last Synced: 2026-04-17T22:30:54.848Z (about 1 month ago)
- Language: C++
- Homepage:
- Size: 2.61 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nui-sftp
This project contains a cross platform (Linux & Windows) SSH and SFTP workbench.

## Website
[https://nui-sftp.nuicpp.org](https://nui-sftp.nuicpp.org)
# Installation
First go to the releases section https://github.com/5cript/nui-sftp/releases This is where you can find the latest releases of the app. (Not every release might have packages attached to it, pick the latest one with packages).
## Windows
Download the windows zip and extract it somewhere. If you want an installer, create an issue so I know that there is demand.
## GNU/Linux
### ArchLinux
You can install the flatpak or install via makepkg
```bash
git clone https://github.com/5cript/nui-sftp-deploy.git
cd nui-sftp-deploy
makepkg -si
```
to uninstall:
```bash
sudo pacman -R nui-sftp
```
This project will be submitted to the AUR at a later date.
### All Other Distributions
For other distributions a flatpak is provided. Currently not in the official flathub, but that will come eventually.
Download the flatpak from a release and install it like so:
```bash
# Make sure to pass the correct file name!
flatpak install nui-sftp-flatpak-x86_64_0.1.1.flatpak
```
## Apple Computers
macOS is currently not supported. Maybe in the future if there is demand.
## Other
There will not be support for any other systems (Mobile Devices or BSD).
# Feature List
## Synchronization
You can synchronize folders between your local machine and the server. This will automatically upload/download files that are changed in the source folder to the target folder. You can also choose to only synchronize in one direction (upload or download).

## Local Shell
Run a PTY on your local machine with a file view.

## Settings
When a user might want to change the behavior of the app, I decided: Lets make it configurable.

## Theming & Customizability
Includes bright theme and more theme colors. Can be fully customized by overwriting CSS (although thats more of a power user feature).

## Download & Upload directly as Archive
You can download and upload files and folders directly as tar archives, no manual packing required.

## SSH
- Keyboard interactive password auth.
- Key auth with optional passphrase.
- Automatic key auth via SSH directory.
- SSH agent support on Linux.
- Multi channel support (multiple ptys and sftp at the same time).
## SFTP
- Download & Upload, Single files and directories.
- Download & Upload to tar archives streamingly, no manual packing required.
- Folder Synchronization.
- Download & Live observe changes that automatically resync to the server.
- Delete file.
- Rename file.
- Create file.
- Create directory.
- Pause/Continue operations.
- Cancel operations.
- Reorder operations in the queue.
- Show file properties.
- Recursive folder delete.
## General UI
- Flexible Layouting - organize widgets as you like
- Save and Load Layouts.
- Run multiple SSH or Local Shell Session in parallel.
## Settings UI
- If its configurable, its in the settings.
## File View UI
- Grid view.
- Table view.
- Box drag select for icon view.
- Auto refresh after operation complete.
- Resize left vs right.
- Upload drag and drop (within view and into the app (linux caveat: only a single file, bug in webkitgtk)).
- Download drag and drop (within view).
- Searching files.
- Sorting files.
- Asks the user to overwrite files on upload/download.
# No intention to support for now:
- Windows SSH agent support, waiting for official libssh support, before I resort to patches: https://gitlab.com/libssh/libssh-mirror/-/issues/277
- GSSAPI auth: Will make work when a need arises
- KeypassXc database integration: lots of work for tiny use cases. Its a cool idea for later.
# Known Problems
- Cannot use mouse side keys for history navigation (yet) because of a bug in webkit show them as "button 0".
- On WebKit Systems (Linux), the drag and drop from the desktop only supports single files and folders, not a list of items, because WebKit removed the functionality entirely because of an unfixed security issue.