// the find
plainhub/plain-app
🔥 PlainApp is an open-source app that lets you securely manage your phone from a web browser. Access files, media, contacts, SMS, calls, and more through a simple, easy-to-use interface on your desktop.
PlainApp is an Android app that runs a local web server on the phone, so you can manage files, media, SMS, call logs, contacts, notifications and screen mirroring from a browser on the same Wi-Fi network. It also ships standalone tools (notes, an RSS reader, a media player, peer-to-peer chat) that make it more than a server. It suits people who want phone management with no account and no cloud relay, and who accept a Wi-Fi-only trust model.
Everything stays on the LAN. The phone serves its own dashboard as a PWA, there is no account, and the README says transport uses TLS plus XChaCha20-Poly1305. I have not checked that claim against the code. The Android side has instrumented tests named after the subsystems they cover, including pairing, chat delivery, thumbnail generation, file writes and HTTP server stop lifecycle, so the risky parts are at least exercised on a device. The apitest directory has shell scripts for each API group (files, media, notes, screen-mirror, schema), which exercise the HTTP surface from outside the app and double as usage examples.
The trust model is Wi-Fi only. The browser has to sit on the same network, and remote access means setting up your own VPN. The permission surface is large for one app: SMS, call logs, contacts, notifications and a screen mirror with remote control all sit behind a local HTTP server. The security claims are self-reported, and the comparison table is self-scored, so it is not independent evidence. The scope is wide too. Notes, RSS, a music player, a Pomodoro timer, a sound meter and P2P chat sit alongside a file manager and screen mirror, which is a lot for a project run mostly by one person. The build section only covers generating a keystore, with no Gradle commands, and the Rust-named HTTP tests suggest a native component that the build docs never mention.