Droidwire

Ajith M Jose — Senior Frontend Developer

2026 · Solo build

A wired Android-to-Mac file manager built on ADB instead of MTP: browse, transfer, edit-and-push-back and manage files over USB with no app required on the phone.

Tech: Electron, React 18, TypeScript, ADB, Tailwind CSS

Context

MTP-based Android file transfer on macOS is notoriously flaky. Droidwire replaces it entirely: every file operation is shelled through adb, the same tool developers already trust for USB debugging, wrapped in a desktop app with drag-and-drop and thumbnails on top.

Features

  • List, pull, push, zip-pull, delete, rename, mkdir, copy, find, stat, screenshot and APK install, all run through adb in the Electron main process only — the renderer never touches Node or adb directly, talking to a window.droidwire bridge instead
  • An adb concurrency limiter caps at 6 concurrent processes to avoid failures on large folder operations
  • Multi-device support with per-device eject and replug detection and a device switcher
  • An open-and-edit round trip: open a file in its native Mac app, and the edit is automatically pushed back to the phone on save
  • A native macOS MTP fallback transport for cases where adb is unavailable
  • Native drag-and-drop, thumbnails, a file-conflict resolution modal, and chunked streamed transfers so large files never load fully into renderer memory

How it was built

The first version was a React Native app running an HTTP server on the phone over USB tethering. That architecture was scrapped after one day in favor of pure ADB, closer to how MacDroid works, and the Android app folder was removed entirely — a full pivot documented directly in the project's own build notes so the tethering approach is never accidentally reintroduced.

What is different

Most Android file tools for Mac either require MTP (unreliable) or a companion app on the phone (friction). Droidwire needs neither — only USB debugging, which most Android developers already have enabled, and a cable.