A minimalist, high-performance SFTP Wrapper TUI (Terminal User Interface). Heavily inspired by the workflow of yazi, it aims to provide a fast, keyboard-centric way to manage remote file systems without the overhead of heavy GUI clients.
yftp is currently in its earliest stages of development. It is functional but experimental.
- Expect: Breaking changes, limited error handling, and frequent updates.
- Target: Users who prefer terminal-based navigation and need a lightweight SFTP client.
- TUI-First: Pure terminal interface designed for speed and efficiency.
- Yazi-inspired Navigation: Familiar keybindings for those used to modern terminal file managers.
- SFTP Core: Secure file transfers managed via a clean wrapper around standard SFTP protocols.
- Minimal Footprint: Low resource usage, ideal for remote server management.
Unlike standalone SFTP clients, yftp acts as an abstraction layer. It manages the connection state and maps terminal inputs directly to SFTP commands, providing real-time visual feedback in the TUI.
The interface is designed around a multi-pane view (local vs. remote), allowing for intuitive "Copy & Paste" operations across different network nodes.
For interested ppl (Technical Details: TUI & Async SFTP)
The core of yftp is built on an asynchronous event loop to ensure the UI remains responsive even during large file transfers.
- Input Handling: Utilizes a non-blocking input listener to capture
yazi-style keybindings. - SFTP Backend: Communicates via a persistent SSH session. It handles directory listing, file permissions, and data streams by wrapping standard library calls into a managed state machine.
- Rendering: Uses a buffer-based rendering system to minimize terminal flicker during fast navigation.
- Preview Support: Integrated file previews (text/image) for remote files.
- Multithreaded Transfers: Capable of handling multiple concurrent SFTP transfers without blocking the UI.
- Config Management: Support for
ssh_configaliases and automated key-based authentication. - Parallel Transfers: Implementing a background queue for multiple concurrent file operations.
- Python 3.10+ or Rust (depending on your specific implementation choice).
- OpenSSH: Required for the underlying SFTP handshake.
# Clone the repository
git clone [https://github.com/Yagimipreme/yftp.git](https://github.com/Yagimipreme/yftp.git)
# Navigate to the directory
cd yftp
# Run the pre-alpha version
python3 main.py # or the respective entry point