Skip to content

Advanced Features

WarpDL includes several advanced features for optimizing download performance and flexibility.

Run downloads in the background without blocking your terminal:

Terminal window
warpdl download --background https://example.com/large-file.zip

The download starts immediately and returns control to your terminal. Use attach to reconnect:

Terminal window
warpdl list -p # Find the download hash
warpdl attach <hash> # Reconnect to view progress
Terminal window
export WARPDL_BACKGROUND=1 # Not yet implemented, use --background flag

Limit download speed to avoid saturating your network:

Terminal window
warpdl download --speed-limit 1MB https://example.com/file.zip
warpdl download -S 512KB https://example.com/file.zip

Supported units:

  • B - Bytes per second
  • KB - Kilobytes per second
  • MB - Megabytes per second
  • 0 - Unlimited (default)
Terminal window
export WARPDL_SPEED_LIMIT=1MB

Work stealing is an optimization where faster download segments “steal” remaining work from slower segments. This maximizes bandwidth utilization when some connections are slower than others.

Enabled by default. To disable:

Terminal window
warpdl download --no-work-steal https://example.com/file.zip
  1. File is split into segments (default: up to 200 parts)
  2. Each segment downloads in parallel
  3. When a fast segment completes, it takes over a portion of the slowest segment’s remaining range
  4. This continues until the entire file is downloaded
  • When downloading from servers that don’t handle range requests well
  • When you want predictable segment boundaries
  • When debugging download issues
Terminal window
export WARPDL_NO_WORK_STEAL=1

WarpDL automatically validates downloads when the server provides checksums:

  • Content-MD5 header
  • Digest header (SHA-256, SHA-512)

If validation fails, the download is marked as corrupted and you’ll be notified.

Enable verbose logging for troubleshooting:

Terminal window
warpdl download --debug https://example.com/file.zip

Or globally:

Terminal window
export WARPDL_DEBUG=1

Debug output includes:

  • HTTP request/response details
  • Segment allocation decisions
  • Work stealing events
  • Retry attempts and errors

Set a default download location:

Terminal window
export WARPDL_DEFAULT_DL_DIR=~/Downloads

When set, downloads go to this directory unless overridden with --download-path.