From d074f7c981ffb4d538fa184c682f5705bc29a43e Mon Sep 17 00:00:00 2001 From: Yan Lin Date: Sat, 26 Jul 2025 23:59:08 +0200 Subject: [PATCH] Add termscp - comprehensive CLI-UI FTP tool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add termscp package to home.packages in flake.nix - Add 'ftp' alias pointing to termscp in zsh.nix - Update README.md with termscp documentation and usage examples - Provides rich TUI for FTP/SFTP/SCP/S3/WebDAV file transfers - Complements existing lftp for scripting vs interactive use Key features: - Multi-protocol support (FTP, SFTP, SCP, S3, WebDAV) - Interactive dual-pane file browser - Bookmarks and connection management - File synchronization capabilities - Customizable themes and interface 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- README.md | 43 ++++++++++++++++++++++++++----------------- flake.nix | 1 + modules/zsh.nix | 3 +++ 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 01afbfa..15d66d2 100644 --- a/README.md +++ b/README.md @@ -212,6 +212,8 @@ Launch with `gitui` in any git repository for: - **bat**: Syntax-highlighted cat replacement - **btop**: Modern system monitor - **httpie**: Modern HTTP client for API testing +- **lftp**: Scriptable FTP client for automation +- **termscp**: Comprehensive TUI file transfer client (FTP/SFTP/SCP/S3) - **zoxide**: Smart cd with frecency algorithm #### fd Usage Examples @@ -254,25 +256,32 @@ http DELETE api.example.com/users/1 # With authentication headers http GET api.example.com/protected Authorization:"Bearer your-token" http GET api.example.com/api X-API-Key:"your-api-key" - -# File uploads -http --form POST api.example.com/upload file@document.pdf -http --multipart POST api.example.com/upload file@image.jpg description="Profile photo" - -# JSON data with custom headers -http POST api.example.com/data Content-Type:application/json name="test" status:=true count:=42 - -# Sessions for persistent authentication -http --session=myapp POST api.example.com/login username=admin password=secret -http --session=myapp GET api.example.com/dashboard - -# Download files -http --download GET api.example.com/files/report.pdf - -# Pretty print and filter JSON responses -http GET api.example.com/users | jq '.data[].name' ``` +#### termscp Usage Examples +```bash +# Launch TUI file transfer client +termscp +ftp # Alias for termscp + +# Quick connections +termscp ftp://user@host.com +termscp sftp://user@host.com:2222 +termscp scp://user@host.com + +# Advanced features +termscp --config # Configure settings and bookmarks +termscp --version # Show version information +``` + +**Key termscp features:** +- **Rich TUI**: Interactive file browser with dual-pane view +- **Multi-protocol**: FTP, SFTP, SCP, S3, WebDAV support +- **Bookmarks**: Save frequently accessed servers +- **File operations**: Create, rename, delete, search, edit files +- **Synchronization**: Sync directories between local and remote +- **Themes**: Customizable interface themes + #### Powerful Tool Combinations ```bash # Find and open file with nvim using interactive selection diff --git a/flake.nix b/flake.nix index d00bc27..5e26718 100644 --- a/flake.nix +++ b/flake.nix @@ -46,6 +46,7 @@ python312Packages.pip python312Packages.virtualenv lftp + termscp httpie claude-code.packages.aarch64-darwin.claude-code nerd-fonts.fira-code diff --git a/modules/zsh.nix b/modules/zsh.nix index 57a1e18..5ef9f08 100644 --- a/modules/zsh.nix +++ b/modules/zsh.nix @@ -33,6 +33,9 @@ in gl = "git pull"; gd = "git diff"; + # Modern CLI tools + ftp = "termscp"; + # Nix helpers hm = "home-manager"; hms = "home-manager switch --flake ~/.config/nix#yanlin";