Skip to content

Yagimipreme/yftp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

yftp πŸ“‚

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.


⚠️ Project Status: Pre-Alpha

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.

πŸš€ Features

  • 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.

πŸ— System Architecture

1. The Wrapper Logic

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.

2. UI Layout

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)

Implementation Details

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.

Roadmap / TODO

  • 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_config aliases and automated key-based authentication.
  • Parallel Transfers: Implementing a background queue for multiple concurrent file operations.

πŸ›  Developer & Tester Setup

Prerequisites

  • Python 3.10+ or Rust (depending on your specific implementation choice).
  • OpenSSH: Required for the underlying SFTP handshake.

Installation (from source)

# 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

About

Yazi like sftp TUI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages