npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

arv-quickdrop

v2.0.2

Published

A secure, fast CLI file sharing tool with chunked upload support - built by ARV

Readme

QuickDrop CLI

A powerful command-line tool for secure file uploads with user authentication.

Features

  • 🔐 Secure Authentication: API key-based authentication
  • 📤 Smart Upload Strategy: Automatic chunked upload for files > 45MB
  • 🚀 Large File Support: Upload files up to 600MB with intelligent chunking
  • 🔄 Auto-Retry Logic: Automatic retry for failed chunks (3 attempts)
  • 🎨 Beautiful UI: Colorful and interactive command-line interface
  • 💾 Persistent Login: Stay logged in between sessions
  • 📊 Progress Tracking: Real-time upload progress with speed indicator
  • 🔗 Instant Sharing: Get shareable links immediately after upload
  • 📱 APK Optimized: Special handling for Android APK files

Installation

Prerequisites

  • Node.js 14.0.0 or higher
  • npm or yarn

Install Dependencies

cd quickdrop-cli
npm install

Make it Executable

chmod +x index.js

Link Globally (Optional)

To use qd command from anywhere:

npm link

Usage

1. Login

Authenticate with your QuickDrop API Key:

qd login

You'll be prompted to enter your API Key (input is masked for security).

2. Upload Files

Upload a file to QuickDrop:

qd upload myfile.pdf

Or use the shorthand:

qd myfile.pdf

After successful upload, you'll receive:

  • 📎 A shareable download link
  • 📁 Direct file URL

3. Logout

Clear your stored credentials:

qd logout

Commands

| Command | Description | |---------|-------------| | qd login | Authenticate with your API Key | | qd upload <filename> | Upload a file | | qd <filename> | Upload a file (shorthand) | | qd logout | Log out and clear credentials | | qd --version | Show version number | | qd --help | Display help |

Configuration

QuickDrop CLI uses conf to store your authentication token securely in:

  • Linux/macOS: ~/.config/quickdrop-cli/config.json
  • Windows: %APPDATA%\quickdrop-cli\config.json

API Endpoints

  • Auth Verification: https://quickdropfile.web.app/api/auth/verify
  • File Upload: https://quickdropfileweb-worker.ramu39.workers.dev/upload

File Size Limits

  • Maximum file size: 600MB
  • Supported file types: All (images, documents, videos, APKs, etc.)

Upload Strategy

The CLI automatically chooses the best upload method:

  • Files ≤ 45MB: Direct upload with real-time progress
  • Files > 45MB: Chunked upload (45MB chunks)
    • Splits file into manageable chunks
    • Uploads each chunk with retry logic
    • Automatically combines chunks on server
    • Perfect for large APK files, videos, and archives

Why Chunked Upload?

  • Overcomes Cloudflare Worker request size limits
  • Better reliability for large files
  • Automatic recovery from network interruptions
  • Optimal performance for files like APKs (100MB - 600MB)

Examples

Example 1: Login and Upload

# Step 1: Login
qd login
# Enter your API Key when prompted

# Step 2: Upload a file
qd upload vacation-photos.zip

# Output:
# ✅ Upload successful!
# 📎 Download Link:
# https://quickdropfile.web.app/download.html?id=1234567890-abcdef

Example 2: Quick Upload

# Upload directly (requires prior login)
qd presentation.pptx

Example 3: Upload Large APK Files

# Upload a large APK file (170MB+)
qd MyApp-v2.5.3.apk

# Output:
# Using chunked upload (45.00 MB per chunk)
# Total chunks: 4
# ████████████████████ 100% | Chunk 4/4 | 2.3 MB/s
# ✅ Upload successful!

Example 4: Upload Large Video Files

# Upload a large video file
qd movie.mp4
# Automatic chunking for files over 45MB

Error Handling

The CLI provides helpful error messages:

  • Not logged in: You are not logged in. Run 'qd login' first.
  • File not found: File not found: filename.txt
  • File too large: File size must be less than 600MB
  • Invalid API Key: Invalid API Key. Please check and try again.
  • Network error: Request timeout. Please check your internet connection.

Dependencies

  • commander (^9.5.0): CLI framework
  • inquirer (^8.2.6): Interactive prompts
  • axios (^1.6.2): HTTP client
  • conf (^10.2.0): Configuration storage
  • chalk (4.1.2): Terminal styling
  • ora (5.4.1): Loading spinners
  • form-data (^4.0.0): Multipart form data

Development

Project Structure

quickdrop-cli/
├── index.js          # CLI entry point
├── commands.js       # Command implementations
├── package.json      # Dependencies and metadata
└── README.md         # Documentation

Run Locally

node index.js login
node index.js upload testfile.txt

Troubleshooting

Permission Denied

If you get a permission error when running qd:

chmod +x index.js

Module Not Found

If dependencies are missing:

npm install

Authentication Issues

If your token is invalid:

qd logout
qd login

Security

  • API keys are stored securely using the conf package
  • Keys are masked during input
  • Tokens are stored locally and never exposed in logs
  • HTTPS is used for all API communications

Support

For issues or questions:

License

MIT

Version History

  • v1.1.0: Major update
    • ✅ Added intelligent chunked upload for large files
    • ✅ Automatic retry logic for failed chunks
    • ✅ Improved progress tracking with speed display
    • ✅ Better error messages and handling
    • ✅ Fixed upload issues for 170MB+ files
    • ✅ Optimized for APK files
  • v1.0.2: Bug fixes and improvements
  • v1.0.0: Initial release with authentication and file upload

Made with ❤️ by the QuickDrop Team