HowsMyDownload

[android app · extension · server]

HowsMyDownload landing page: giant HOW’S MY DOWNLOAD? headline, pixel mascot and a live download notification card

An Android app and a browser extension that put your PC’s downloads on your phone. Pause, resume or restart them from your pocket.

Stack

  • Python 3.12
  • FastAPI
  • Pydantic v2
  • Firestore
  • Kotlin
  • Jetpack Compose
  • CameraX + ML Kit
  • Chrome MV3
  • Web Crypto
  • FCM
  • Docker
  • Nginx
  • GitHub Actions

Notes

Three parts: a Kotlin Android app, a Chromium extension that watches downloads, and a small FastAPI relay between them. Both clients ship as open source on GitHub Releases.

Filenames are sealed with AES-256-GCM on the PC and opened on the phone. The relay in the middle never reads them.

Pairing is a QR scan, so the key travels screen to camera and never touches the server.

A median push from server to phone takes 448 ms, and an alarm fires if the PC goes quiet for 90 s.

Android app + extension

HowsMyDownload Android app showing two active downloads with progress, speed, pause and restart buttons
[android · two downloads live]
HowsMyDownload Android app paired with a PC called toaster, one download complete at 100 percent
[android · paired, complete]
HowsMyDownload Chrome extension popup: server connected, one paused download, paired with phone, filenames sealed with AES-256-GCM
[chrome extension · paused]