Skip to content

thehavays/filegate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileGate Logo

filegate version license size

Get it from the Snap Store

🗂 FileGate

A powerful, high-performance command-line tool to list, browse, pull, push, and copy files across remote servers — with full TAB path completion and streaming transfers.

Features

  • 🔌 Multi-protocol: SSH/SFTP, FTP, FTPS, SMB2/3
  • 🔑 Secure auth: SSH key files + password via system keyring (never stored in plaintext)
  • 🚀 High-Speed Copy: Direct remote-to-remote transfers. Performs native server-side copy (intra-server) or memory-streaming (inter-server) to avoid local disk usage.
  • 📁 TAB completion: Remote paths complete in both interactive and inline shell modes (Bash/Zsh)
  • 🐚 Interactive shell: filegate shell opens a full REPL with ls, cd, pull, push, etc.
  • 📊 Progress bars: Live speed, ETA, and file size during all transfers
  • 🔄 Recursive: Pull/push/copy entire directories

📦 Snap Store (Recommended for Linux)

sudo snap install filegate
# Grant permission for system keyring access (required for passwords)
sudo snap connect filegate:password-manager-service

🍎 Homebrew (Recommended for macOS)

brew tap thehavays/tap
brew install filegate

🐍 Pipx (Python/Source)

pipx install .

Quick Start

You can use either filegate or the shorthand fgate. Both work identically!

# Register servers
filegate add mynas  --host 192.168.1.10 --user admin  --protocol sftp --key ~/.ssh/id_rsa
filegate add backup --host 10.0.0.5     --user ftpuser --protocol ftp
filegate add files  --host 10.0.0.20    --user user    --protocol smb  --share documents

# List all servers with status
filegate list

# Test a connection
filegate test mynas

# Download a file (inline)
filegate pull mynas /home/admin/report.pdf ./report.pdf

# Download interactively with TAB completion
filegate pull mynas
# [mynas] Remote path> /home/admin/doc<TAB>
# /home/admin/documents/
# Local destination [./documents]: ./local_docs/

# Upload a file
filegate push mynas ./local_file.txt /home/admin/uploads/

# Remote-to-remote copy (streaming or server-side)
filegate copy mynas:/home/admin/data.zip backup:/archives/

# Interactive shell
filegate shell mynas
# [filegate.mynas:/home/admin]> ls
# [filegate.mynas:/home/admin]> cd documents
# [filegate.mynas:/home/admin/documents]> pull report.pdf

# Install TAB completion
filegate install-completion --shell bash
source ~/.bash_completion.d/filegate

Commands

Command Description
filegate list List registered servers with live status
filegate add <name> --host … --user … --protocol … Register a server
filegate remove <name> Remove a server
filegate test <name> Test connection to a server
filegate pull <server> [remote] [local] Download file/directory
filegate push <server> [local] [remote] Upload file/directory
filegate shell <name> Interactive shell with full TAB completion
`filegate install-completion [--shell bash zsh]`

Protocol Reference

Protocol Flag Default Port Notes
SSH/SFTP --protocol sftp 22 Key or password auth
FTP --protocol ftp 21 Password auth
FTPS --protocol ftps 21 FTP over TLS
SMB2/3 --protocol smb 445 Use --share for default share

TAB Completion Modes

1. Interactive mode (built-in, always works)

When remote_path is omitted from pull/push, filegate prompts you interactively with TAB completion enabled on the remote server's filesystem.

2. Shell-level completion (one-time setup)

After running filegate install-completion, TAB completion works directly in your shell prompt:

filegate pull mynas /home/admin/do<TAB>
filegate pull mynas /home/admin/documents/

Configuration

Servers are stored in ~/.config/filegate/servers.json.
Passwords are stored in your system keyring (GNOME Keyring, KWallet, etc.) — never in plaintext.


Shell Support

Shell Completion Notes
bash ✅ Full Run filegate install-completion --shell bash
zsh ✅ Full Run filegate install-completion --shell zsh

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages