YSTP (short for Your Super Transfer Program) is a file transfer tool that allows sending a file privately to a party directly without relying on port-forwarding to be set up.
It's quick and easy to use and it all lives on Cloudflare's edge, built with Workers and Durable Objects. No storage anywhere, just a transfer.
It's just an educational project, although it does work ofc! You can read the blog posts here.
YSTP includes a command-line client for easy file transfers directly from your terminal.
The CLI client is included in this repository. Make sure you have Node.js installed, then navigate to the project directory.
node cli/ystp.js send <file> [--host hostname] [--port port]node cli/ystp.js receive <code> [--output filename] [--host hostname] [--port port]Send a file:
node cli/ystp.js send myfile.txt
# Output: Your shareable code: apple-banana-cherry-date-elderberrySend to a custom server:
node cli/ystp.js send document.pdf --host example.com --port 3000Receive a file:
node cli/ystp.js receive apple-banana-cherry-date-elderberryReceive with custom filename:
node cli/ystp.js receive apple-banana-cherry-date-elderberry --output downloaded.txt--host <host>- Server hostname (default: localhost)--port <port>- Server port (default: 8787)-o, --output <file>- Output filename for receive (default: use sender's filename)
- Real-time progress - See transfer progress with file size and percentage
- Chunked transfers - Uses 64KB chunks for efficient memory usage
- Error handling - Proper connection and file error management
- Shareable codes - Easy-to-remember codes for file sharing
- Cross-platform - Works on Windows, macOS, and Linux