Every time I pick up my phone while I'm writing, I risk disappearing down a rabbit hole and returning ten minutes later with an encyclopedic knowledge of somebody else's lunch but no memory of what I originally meant to do. Even on my more disciplined days, moving a screenshot or file from my phone to my PC usually means emailing it to myself, or hunting around for a USB cable.
That little ritual disappeared once I installed PlainApp. It is a free, open-source Android app that turns your phone into a small web server, letting me open a browser on my laptop and manage a surprising amount of my device without touching the phone again.
Getting the phone and laptop talking
A handshake happens without a single USB port
I installed PlainApp from F-Droid, the open-source alternative to Google Play, although the app is also available through GitHub and the Play Store. The Google Play version leaves out SMS and call-related features because of store policy, so the F-Droid and GitHub builds provide the fuller experience. The app is smaller than 100MB and asks for no account, sign-up, or email address.
PlainApp did not open with a barrage of permission prompts. Its home screen appeared straight away with Web Access turned off and shortcuts for images, videos, audio, documents, and files. I tapped Start service, and only then did the app ask for storage access. Its prompt sent me to Android's All files access page, one of the less obvious permissions menus Android users rarely check, where I enabled PlainApp manually. Contacts, SMS, call logs, phone calls, phone numbers, and notifications remain separate switches inside Web Settings, which let me grant only the parts of my phone I actually wanted available in the browser. Android handles broad shared-storage access through a dedicated system page rather than the usual pop-up permission dialog.
Once the service was running, PlainApp displayed a local hostname and several IP addresses. HTTP uses port 8080, while HTTPS uses 8443. In my case, only the direct 192.168.18.6 address worked. The hj.local hostname and the other IP address PlainApp listed failed to load for reasons the app did not explain. This is worth remembering if the first option goes nowhere. Try each address shown on the phone, starting with the private IP assigned by the Wi-Fi network.
I opened the HTTPS version of the working address, which triggered Chrome's alarming "Your connection is not private" warning. PlainApp generates its own certificate, so a public certificate authority cannot verify it. After opening Advanced and choosing to continue, I reached the login page. Clicking Log in sent an approval request to my phone that identified the browser, operating system, and IP address trying to connect. I tapped Allow, and the dashboard opened.
My browser became the phone drawer I actually wanted
Android looks quite good in a browser
The dashboard uses the extra space well. A narrow rail holds Files, Audio, Images, Videos, and Chat, while the home screen presents cards for documents, apps, notes, feeds, messages, calls, contacts, and screen mirroring. It also has a global search field, a box for sending text to the phone clipboard, and a field that starts a call on the handset.
The file management tools quickly became the features I used most. I could browse my phone's storage, upload and download files, rename or delete them, and select multiple items at once. The Images and Videos sections organize media into folders with both grid and list views, making my Screenshots folder far easier to reach than it ever is through Android's built-in file picker. Pulling a batch of screenshots onto my laptop for an article and sending a document back to my phone became a quick browser task instead of another excuse to look for a USB cable.
As mentioned earlier, the communication features are only available in the sideloaded build. From the browser, I can read and send SMS messages, browse a complete call history with one-click callbacks, and search my contacts without ever taking my hands off the keyboard. That overlaps with several things Microsoft's Phone Link app can do, although PlainApp presents them through a local browser dashboard instead of a dedicated Windows application.
PlainApp also provides a device-wide view of installed apps, with APK export, alongside a notes tool, an RSS reader, and live screen mirroring. The mirroring is not as fully interactive as a dedicated tool such as scrcpy for mirroring Android on Windows. Still, it is convenient to have it sitting beside the files, messages, and other controls.
A couple of smaller touches turned out to be unexpectedly useful. The Send to phone clipboard box moves text from my laptop to my phone almost instantly, and once you try a cross-device clipboard, texting yourself every link begins to feel strangely primitive. A built-in chat called Local also lets me drop images, videos, or notes into a private conversation that immediately appears in the browser. It has become my favorite way to move links and snippets between devices without sending messages to myself through WhatsApp, Telegram, or another chat app.
Local access deserves proper locks
Trust the network, then verify it anyway
In day-to-day use, PlainApp sends data directly between my phone and browser over the local network instead of bouncing everything through a vendor's cloud. The project is also open source under the AGPL so that anyone can inspect the code. That level of transparency is reassuring, even if it should never be mistaken for a security guarantee.
The app encrypts its API traffic with XChaCha20-Poly1305 in both HTTP and HTTPS modes, although HTTPS adds TLS on top and also protects file transfers. Standard HTTP leaves downloaded file contents unencrypted while they travel across the network, which is why I stick with HTTPS. I also verify the address displayed on my phone before connecting, leave connection confirmation enabled, and would absolutely set a password if I were using it on a shared network. After all, the dashboard can expose messages, contacts, notifications, and files, so I treat it with the same caution I would an unlocked phone.
One small detail caught me by surprise. Closing the browser tab does not stop the web service running on the phone, so I now make a habit of tapping the prominent Stop service button when I'm finished. PlainApp also includes a Stay Online Mode, a Keep awake option, and a Disable battery optimization shortcut because Android's battery settings can close or throttle apps running in the background. The trade-off is that better reliability usually comes at the cost of a little extra battery life.
My phone can stay face down now
PlainApp has replaced USB transfers, emailing files to myself, and several unnecessary phone checks for me. It suits anyone who spends hours at a laptop and wants broad, local access to Android without feeding routine transfers through another cloud dashboard. I still keep my phone nearby, but now it can remain face down.