Add termscp - comprehensive CLI-UI FTP tool

- 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 <noreply@anthropic.com>
This commit is contained in:
Yan Lin 2025-07-26 23:59:08 +02:00
parent 94547defc5
commit d074f7c981
3 changed files with 30 additions and 17 deletions

View file

@ -212,6 +212,8 @@ Launch with `gitui` in any git repository for:
- **bat**: Syntax-highlighted cat replacement - **bat**: Syntax-highlighted cat replacement
- **btop**: Modern system monitor - **btop**: Modern system monitor
- **httpie**: Modern HTTP client for API testing - **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 - **zoxide**: Smart cd with frecency algorithm
#### fd Usage Examples #### fd Usage Examples
@ -254,25 +256,32 @@ http DELETE api.example.com/users/1
# With authentication headers # With authentication headers
http GET api.example.com/protected Authorization:"Bearer your-token" http GET api.example.com/protected Authorization:"Bearer your-token"
http GET api.example.com/api X-API-Key:"your-api-key" 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 #### Powerful Tool Combinations
```bash ```bash
# Find and open file with nvim using interactive selection # Find and open file with nvim using interactive selection

View file

@ -46,6 +46,7 @@
python312Packages.pip python312Packages.pip
python312Packages.virtualenv python312Packages.virtualenv
lftp lftp
termscp
httpie httpie
claude-code.packages.aarch64-darwin.claude-code claude-code.packages.aarch64-darwin.claude-code
nerd-fonts.fira-code nerd-fonts.fira-code

View file

@ -33,6 +33,9 @@ in
gl = "git pull"; gl = "git pull";
gd = "git diff"; gd = "git diff";
# Modern CLI tools
ftp = "termscp";
# Nix helpers # Nix helpers
hm = "home-manager"; hm = "home-manager";
hms = "home-manager switch --flake ~/.config/nix#yanlin"; hms = "home-manager switch --flake ~/.config/nix#yanlin";