dorkhub

filessh

A fast and convenient TUI file browser for remote servers

JayanAXHF
Rust2266 forksUnlicenseupdated 6 days ago
visit the demogit clone https://github.com/JayanAXHF/filessh.gitJayanAXHF/filessh

FileSSH

Built With Ratatui crates.io GitHub Tag

A TUI-based file explorer for SSH servers, which allows you to browse and manage files on a remote server, edit them in-place, and recursively download directories with parallel directory traversal. It also has the ability to quickly spawn SSH sessions to paths on the remote server.

Dual-licensed under MIT or the UNLICENSE.

Made with VHS

Installation

homebrew (macOS)

brew install jayanaxhf/taps/filessh

Cargo

cargo install --locked filessh

Build from source

  1. Ensure you have Rust and Cargo installed. You can find installation instructions at rust-lang.org.
  2. Clone the repository:
    git clone https://github.com/your-username/filessh.git
    cd filessh
  3. Build the project:
    cargo build --release
    The executable will be located at target/release/filessh.

Todo

  • Add support for rsync and scp
  • Iron out bugs

Usage

filessh [OPTIONS] <HOST> <PATH>

Features

  1. Modify, delete and browse files on a remote server
  2. Recursively download directories with parallel directory traversal
  3. Quickly open SSH sessions to directories.

Usage

filessh [OPTIONS] [HOST] [PATH]
filessh <COMMAND>

Commands:
  connect              Connect explicitly (same as default command)
  install-man-pages    Install man pages into the system
  install-completions  Generate shell completion scripts

Arguments:
  [HOST]  The remote host to connect to (e.g., 'example.com' or '192.168.1.100')
  [PATH]  Initial directory path to open on the remote host

Options:
  -p, --port <PORT>
          The port number to use for the SSH connection [default: 22]
  -u, --username <USERNAME>
          The username for logging into the remote host
  -k, --private-key <PRIVATE_KEY>
          Path to the private key file for public key authentication
  -o, --openssh-certificate <OPENSSH_CERTIFICATE>
          Optional path to an OpenSSH certificate
  -h, --help
          Print help
  -V, --version
          Print version

Example

./target/release/filessh \
    --username myuser \
    --private-key ~/.ssh/id_rsa \
    example.com \
    /home/myuser

Keybindings

To quit, press Ctrl+q.

The interface has three panes: the file list, the metadata and file content pane, and the input box that prompts appear in.

Key Action
Ctrl+q Quit
Tab / Shift+Tab Move focus between the panes
1 / 2 / 3 Focus the file list, the content pane, or the input box
Esc Return to the file list, clearing any prompt or filter

In the file list:

Key Action
j / k, / Move the selection
l / Enter the selected directory
h / Go to the parent directory
Enter Show the selected file's contents in the content pane
e Edit the file in $EDITOR, after Enter has loaded it
d Download the selection, prompting for a local path
f Filter the list by name, as you type
m Rename or move the selection
x Delete the selection, confirming with y
n f Create a file
n d Create a directory
. Hide dotfiles, which are shown by default
Ctrl+o Open an SSH session in the current directory

At a prompt, Enter accepts and Esc cancels.

more like this

r2

Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…

TypeScript50

meine

meine 🌒 - A CLI file manager and system utility built with Textual. It combines intuitive command parsing with rich t…

Python50

MTT-File-Manager-RUST

MTT File Manager is a Rust-based Windows file manager with tabbed navigation, rich media previews, deep system integrat…

Rust51

search

search projects, people, and tags