https://github.com/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.
https://github.com/plainhub/plain-app
android android-app compose compose-ui f-droid fdroid filemanager graphql jetpack-compose ktor learning material-you music-player note-taking privacy-protection productivity rss rss-reader screen-mirroring web
Last synced: 4 days ago
JSON representation
π₯ 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.
- Host: GitHub
- URL: https://github.com/plainhub/plain-app
- Owner: plainhub
- License: agpl-3.0
- Created: 2021-10-17T10:03:14.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2026-04-20T17:50:32.000Z (6 days ago)
- Last Synced: 2026-04-20T18:41:55.679Z (6 days ago)
- Topics: android, android-app, compose, compose-ui, f-droid, fdroid, filemanager, graphql, jetpack-compose, ktor, learning, material-you, music-player, note-taking, privacy-protection, productivity, rss, rss-reader, screen-mirroring, web
- Language: Kotlin
- Homepage: https://plainapp.app
- Size: 176 MB
- Stars: 4,168
- Watchers: 25
- Forks: 219
- Open Issues: 50
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# PlainApp
**PlainApp** is a free, open-source Android app that turns your phone into a self-hosted management hub you can access from any web browser on the same network β no accounts, no cloud, no subscriptions. Whether you need to transfer files, read SMS, browse photos, or mirror your screen, PlainApp puts full control back in your hands.
[
](https://play.google.com/store/apps/details?id=com.ismartcoding.plain)
[
](https://f-droid.org/packages/com.ismartcoding.plain/)
[
](https://github.com/plainhub/plain-app/releases/latest)
## Why PlainApp?
Most phone-management tools either route your data through their own servers, lock features behind subscriptions, or plague you with ads. PlainApp is different:
- **100% local** β your data never leaves your network
- **End-to-end encrypted** β every connection is secured with TLS + XChaCha20-Poly1305
- **Completely free and ad-free** β no purchases, no upsells, ever
- **Fully open-source** β audit the code, build your own binary, or contribute
## Features
### π Web-Based Phone Management
Open a browser on any desktop or laptop connected to the same Wi-Fi network and get a full dashboard to manage your Android device β no app installation required on the computer side. Supports PWA so you can pin it to your desktop like a native app.
| Category | What you can do |
|---|---|
| **Files** | Browse internal storage, SD card, and USB drives; upload, download, rename, delete |
| **Media** | View and manage photos, videos, and audio; stream them directly in the browser |
| **Contacts** | View, search, and manage your contacts |
| **SMS & Calls** | Read messages and call logs; send SMS from your desktop |
| **Apps** | List installed apps and export APKs |
| **Notifications** | Mirror phone notifications to the browser in real time |
| **Screen Mirror** | Live-stream the phone screen to the browser with audio and remote control support |
| **Device Info** | Check battery, storage, network, and system details |
### π± Built-in Android Tools
PlainApp is also a capable standalone app β not just a server:
- **Markdown Notes** β write and organize notes with a clean editor
- **RSS Reader** β follow your favorite websites with a distraction-free reader
- **Video & Audio Player** β full-featured media player with playlist support
- **TV Cast** β cast media to any DLNA/Chromecast-compatible TV
- **Peer-to-Peer Chat & File Sharing** β share files and messages directly between devices without a server
- **Pomodoro Timer** β stay focused with a built-in work timer
- **Sound Meter** β measure ambient noise levels in real time
### π Privacy & Security
- No Firebase Analytics or Messaging β crash reporting (via Firebase Crashlytics) is optional and opt-in
- Zero data sent to any third-party server
- All traffic between phone and browser is encrypted (TLS + XChaCha20-Poly1305)
- No account registration required
Video: https://www.youtube.com/watch?v=TjRhC8pSQ6Q
Reddit: https://www.reddit.com/r/plainapp
Discord: https://discord.gg/RQWcS6DEEe
QQ Group: 812409393
## How PlainApp Compares
| Feature | **PlainApp** | AirDroid | KDE Connect | AnExplorer | Pushbullet |
|---|:---:|:---:|:---:|:---:|:---:|
| Open source | β
| β | β
| β
| β |
| 100% local / no cloud required | β
| β οΈ partial | β
| β
| β |
| End-to-end encrypted (local) | β
| β οΈ paid | β | β | β |
| Ad-free | β
| β οΈ paid | β
| β οΈ paid | β οΈ paid |
| Free all features | β
| β οΈ freemium | β
| β οΈ freemium | β οΈ freemium |
| Web browser access (no desktop app needed) | β
| β
| β | β | β
|
| File manager (browser UI) | β
| β
| β οΈ limited | β
| β |
| SMS from desktop | β
| β
| β
| β | β
|
| Screen mirroring | β
| β
| β
| β | β |
| Media streaming in browser | β
| β οΈ limited | β | β | β |
| Notification mirroring | β
| β
| β
| β | β
|
| Built-in RSS reader | β
| β | β | β | β |
| Markdown notes | β
| β | β | β | β |
| P2P chat & file sharing | β
| β οΈ paid | β | β | β οΈ limited |
| TV casting (DLNA/Chromecast) | β
| β
| β | β | β |
| PWA support | β
| β | β | β | β |
| No account required | β
| β | β
| β
| β |
> β
Fully supported Β β οΈ Partially supported or requires paid plan Β β Not supported
## Donations :heart:
**This project needs you!** If you would like to support this project's further development, the creator of this project or the continuous maintenance of this project, **feel free to donate**.
Your donation is highly appreciated. Thank you!
- [Buy me a cup of Ko-Fi!](https://ko-fi.com/ismartcoding)
- Use WeChat to scan the code

## Screenshots
### Android App
### Web Dashboard
## Compatibility
PlainApp requires Android 9.0 or higher.
## FAQ
[http://docs.plain.icu/faq.html](http://docs.plain.icu/faq.html)
## Support
PlainApp is fully open-source.
If you have any doubts, you're free to review the code, build your own version, or simply choose not to use it.
If you run into issues, feel free to open a GitHub issue β I'm always happy to help.
Please donβt leave a one-star review without giving it a fair try.
## Build
1. Generate `release.jks` file under `$rootProject/app` folder.
```bash
keytool -genkeypair -v -keystore ./app/release.jks -alias release -keyalg RSA -keysize 4096 -validity 36500
```
2. Create `keystore.properties` file with following content under `$rootProject` folder.
```
storePassword=
keyPassword=
keyAlias=release
storeFile=release.jks
```
## Star history
[](https://star-history.com/#ismartcoding/plain-app&Date)