Turn any Android device into a second screen and control panel for your computer.
Features · Apps · Getting Started · Architecture · Roadmap · Contributing
PanelDroid is an open-source Android application that transforms any phone or tablet — old or new — into a fully functional secondary control panel for your PC. Instead of letting unused hardware collect dust, PanelDroid gives it a new purpose: a live dashboard showing system metrics, media controls, programmable macro buttons, weather, Discord status, and more.
It connects to your computer over LAN (WiFi) or USB (ADB tunnel) using PanelDroid's own open protocol. No cloud. No subscription. Everything runs locally on your network.
Your device. Your panel.
- Zero-waste philosophy — repurpose old Android devices instead of discarding them
- LAN + USB connectivity — works over WiFi or wired ADB tunnel for low-latency response
- Auto-discovery — finds the PanelDroid Bridge on your network automatically via mDNS
- Drag-and-drop grid layout — arrange widgets freely, separate layouts for portrait and landscape
- Always-On Display mode — OLED-optimized, keeps the panel visible without draining battery
- Haptic feedback — physical response on every macro button press
- Sensor triggers — use phone sensors (accelerometer, proximity) as custom PC actions
- Theme system — Dark / Light / AMOLED / System, custom accent colors, wallpaper support
- Fully local — no accounts, no telemetry, no internet required
| App | Description |
|---|---|
| MediaPanel | Control music and video playback on your PC (Spotify, VLC, system media) |
| SysPanel | Live CPU, RAM, GPU, disk, and network monitoring |
| MacroPad | Up to 12 programmable shortcut buttons with custom icons and haptic feedback |
| WeatherPanel | Current conditions and hourly forecast |
| ClockPanel | Clock, date, timer, and stopwatch |
| DiscordPanel | Active voice channel status and online friends |
| NotifyPanel | Mirror PC notifications to your device in real time |
| VolumePanel | Per-application audio mixer for Windows |
- Android 8.0 (API 26) or higher
- PC running PanelDroid Bridge (lightweight background server, ~5 MB)
- Both devices on the same WiFi network, or connected via USB
Option A — F-Droid (recommended)
Coming soon
Option B — Google Play
Coming soon
Option C — Manual APK
Download the latest APK from the Releases page and install it directly.
PanelDroid requires the PanelDroid Bridge running on your PC — a small background server that exposes system APIs to your device.
npm install -g paneldroid-bridge
paneldroid-bridge startOne-time setup. The bridge starts automatically on login after the first run.
- Start PanelDroid Bridge on your PC
- Open PanelDroid on your Android device
- Tap Connect — it will find your PC automatically
- If auto-discovery fails, enter the server IP manually
- Pick your layout, add widgets, done
┌──────────────────────────┐ WebSocket / ADB Tunnel ┌──────────────────────────┐
│ PC — PanelDroid Bridge │ ◄─────────────────────────────────► │ Android — PanelDroid │
│ │ LAN / USB │ │
│ • System API access │ │ • Jetpack Compose UI │
│ • Plugin backends │ │ • Widget grid engine │
│ • Plugin marketplace │ │ • Foreground service │
└──────────────────────────┘ └──────────────────────────┘
Android stack:
- Language: Kotlin
- UI: Jetpack Compose
- Networking: OkHttp + WebSocket
- State: ViewModel + StateFlow + Hilt
- Storage: DataStore (Preferences)
- Background: Foreground Service (persistent connection)
Bridge stack:
- Runtime: Node.js
- Language: TypeScript
- Transport: WebSocket (JSON protocol)
- OS APIs: Exposed via native Node addons per platform (Windows / macOS / Linux)
| Version | Target | Status |
|---|---|---|
| v0.1 | Connection system + MediaPanel + ClockPanel | 🔨 In development |
| v0.2 | Grid layout engine + widget system | ⏳ Planned |
| v0.3 | Plugin API for community apps | ⏳ Planned |
| v0.4 | WebView renderer for web-based plugins | ⏳ Planned |
| v0.5 | MacroPad + sensor trigger system | ⏳ Planned |
| v1.0 | F-Droid + Google Play release | 🎯 Target |
Contributions are welcome. Here is how to get started:
# Fork the repository, then:
git clone https://github.com/yourusername/paneldroid.git
cd paneldroidOpen in Android Studio, let Gradle sync, and run on your device or emulator.
Before submitting a pull request:
- Make sure your code compiles and runs without errors
- Follow the existing Kotlin code style (ktlint is configured)
- For new features, include a short description of what was added and why
- For bug fixes, reference the issue number in your commit message
Reporting issues: Use GitHub Issues. Include your Android version, PanelDroid version, and steps to reproduce.
paneldroid/
├── app/src/main/java/az/paneldroid/
│ ├── core/
│ │ ├── connection/ # WebSocket, ADB tunnel, mDNS discovery
│ │ ├── protocol/ # PanelDroid message protocol
│ │ └── service/ # Foreground connection service
│ ├── apps/
│ │ ├── base/ # Plugin base class and registry
│ │ ├── media/ # MediaPanel
│ │ ├── sysmonitor/ # SysPanel
│ │ ├── macropad/ # MacroPad
│ │ └── webview/ # Web-based plugin renderer
│ ├── ui/
│ │ ├── layout/ # Grid layout engine
│ │ ├── theme/ # Theme manager
│ │ ├── screens/ # Dashboard, AppPicker, Settings, Connection
│ │ └── widgets/ # Per-plugin Compose UI components
│ └── data/
│ ├── preferences/ # DataStore
│ └── models/ # Data classes
└── bridge/ # PanelDroid Bridge (Node.js / TypeScript)
MIT License — see LICENSE for details.
Built with ❤️ — because your old phone deserves better than a drawer.