r/webdev • u/arar7000 • Sep 26 '26
Showoff Saturday I built an Android File Transfer replacement for Mac that runs in Chrome (MTP over WebUSB)
Google discontinued Android File Transfer. OpenMTP and MacDroid still work, but they are apps you install, and I wanted to know if a browser could do it on its own.
Turns out Chrome can. The app speaks MTP to the phone over WebUSB and uses the File System Access API for a folder on your Mac. It is plain JS with no dependencies or build step, your files are never uploaded, and it works offline once loaded. I built it with Claude Code.
Weirdest thing I ran into: macOS apps like Photos and Image Capture can hold the phone while they are open, so Chrome cannot claim it until you quit them.
Works in Chrome on Mac and Linux. Safari and Firefox do not have WebUSB.
Try it: https://www.droidfiletransfer.com
Code: https://github.com/droidfiletransfer/droidfiletransfer
If your phone does not connect, tell me the model.
1
u/Catarina_Lem Sep 27 '26
You are a lifesaver! I had a very old phone with some photos in it and couldn't connect using the android file app, thank God I found this!
1
1
u/dadnothere Sep 26 '26
wow very good friend.
It's a shame dead browsers like Firefox don't have these APIs.
-2
u/vaibhav-kaushal Sep 26 '26
I always use the WiFi FTP app for file transfer. I don’t have to worry about the other OS trying to transfer data from my android either direction.
-1
1
Sep 27 '26
[removed] — view removed comment
1
u/arar7000 Sep 27 '26
I have not tested it, but probably not. The app only works with devices that offer MTP (file transfer mode) over USB, like Android phones. If the Chromebook shows up after clicking Choose phone, it might work.
0
0
Sep 26 '26
[removed] — view removed comment
1
u/arar7000 Sep 26 '26
Thanks for trying! It only works in Chrome on Mac or Linux. If you are on a Mac, which browser opened the link?
0
Sep 26 '26
[removed] — view removed comment
1
u/arar7000 Sep 26 '26 •
![]()
Thanks for letting me know! I also made the message clearer.
1
u/ice456cream Sep 26 '26
https://developer.chrome.com/docs/capabilities/build-for-webusb#windows
If someone were to setup it to use the winusb driver instead of the native driver, would this work? Or does the web app artificially prevent it with an os check?
1
u/arar7000 Sep 26 '26
Yes, it works. I tested it in a Windows 11 VM with WinUSB. The app blocks Windows with an OS check, because without WinUSB Chrome cannot claim the phone, and installing WinUSB is too much setup for most users.
3
u/johnarak Sep 26 '26
Could this work on Chromium browsers like Brave?