Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📱 DroidCast

Mirror, control, and use your entire Android phone on your MacBook.

macOS Electron MIT scrcpy


What is DroidCast?

DroidCast is a native macOS app that mirrors your Android phone screen to your MacBook with full touch control, audio forwarding, and real-time performance. Built on scrcpy with a premium macOS 26 Liquid Glass interface.

✨ Features

  • Screen Mirroring — Real-time HD display of your Android on Mac
  • Full Touch Control — Interact with your phone using Mac's keyboard & trackpad
  • Audio Forwarding — Phone audio (media + calls) streams to Mac speakers
  • USB & Wi-Fi — Connect via cable or wirelessly over the same network
  • Float Over Apps — Pin phone screen above all Mac windows for multitasking
  • Performance Profiles — Gaming, Balanced, Quality, or Battery Saver modes
  • Quick Actions — Home, Back, Recents, Volume, Power, Screenshot from Mac
  • Recent Devices — One-tap reconnect to previously connected WiFi devices
  • Auto-Disconnect Detection — Returns to home screen when phone disconnects
  • Setup Guide — Built-in step-by-step instructions for first-time setup

Prerequisites

DroidCast requires two command-line tools installed via Homebrew:

brew install scrcpy android-platform-tools
Tool Purpose
scrcpy Screen mirroring engine
adb (android-platform-tools) Android device communication

Installation

From Source

# Clone the repository
git clone https://github.com/codexbeats/droidcast.git
cd droidcast

# Install dependencies
npm install

# Build the native helper (macOS only)
npm run build:helper

# Launch
npm start

Download (.dmg)

  1. Download the latest .dmg from Releases
  2. Open Terminal and run (required for unsigned apps):
    xattr -cr ~/Downloads/DroidCast-1.0.0-arm64.dmg
  3. Open the DMG and drag DroidCast to Applications
  4. Right-click the app → Open on first launch

Setup Your Phone

USB Connection

  1. Open Settings → About Phone on your Android
  2. Tap Build Number 7 times to enable Developer Options
  3. Go to Developer Options → USB Debugging → turn it on
  4. Enable USB Debugging (Security Settings) — required for touch control
  5. Plug your phone into Mac via USB cable
  6. Tap Allow on the USB debugging prompt
  7. DroidCast will auto-detect your device

Wi-Fi Connection

  1. Enable Developer Options and USB Debugging (steps above)
  2. Make sure phone & Mac are on the same Wi-Fi
  3. Go to Settings → About Phone → Detailed Info and Specs → Device Status
  4. Find your IP address under Device Identifiers
  5. Enter the IP address in DroidCast's Wi-Fi connect panel

Performance Profiles

Profile FPS Bitrate Resolution Best For
🎮 Gaming 120 12 Mbps Native Games, low latency
⚡ Balanced 60 8 Mbps 1920px General use
🎬 Quality 60 16 Mbps Native Video, photos
🔋 Battery 30 4 Mbps 1280px Long sessions

Tech Stack

  • Framework: Electron 33
  • Mirroring: scrcpy (via ADB)
  • UI: Vanilla HTML/CSS/JS — macOS 26 Liquid Glass design
  • Native Helper: Swift (CGSSetWindowLevel for float-over-apps)
  • Platform: macOS only (Apple Silicon + Intel)

Project Structure

droidcast/
├── src/
│   ├── main.js              # Electron main process (ADB, scrcpy, IPC)
│   ├── preload.js            # Context bridge (secure IPC)
│   ├── renderer/
│   │   ├── index.html        # UI layout
│   │   ├── styles.css        # Liquid Glass design system
│   │   └── app.js            # Frontend logic
│   └── helpers/
│       └── pin_window.swift  # Native macOS window float helper
├── package.json
├── LICENSE
└── README.md

Troubleshooting

Issue Solution
"scrcpy not found" Run brew install scrcpy android-platform-tools
Phone not detected Enable USB Debugging + Security Settings in Developer Options
Can't control phone Enable USB Debugging (Security Settings) (Xiaomi/POCO)
Black screen on password Enter PIN via Mac keyboard — FLAG_SECURE blocks visual capture
WiFi disconnects Ensure phone doesn't switch networks; check IP hasn't changed
No audio Make sure "Sound to Mac" toggle is enabled before starting mirror
Float not working Grant accessibility permissions if prompted; restart DroidCast

Security & Privacy

  • No telemetry — DroidCast sends zero data to any server
  • No network calls — All communication is local (USB/WiFi to your phone)
  • No data stored — Only recent device names are saved locally
  • Open source — Full source code available for audit
  • Content Security Policy — Enforced in Electron to prevent XSS

Contributing

Pull requests are welcome. For major changes, please open an issue first.

  1. Fork the repo
  2. Create your branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

MIT — free for personal and commercial use.


Built with ❤️ for Android + Mac users

About

Mirror, control, and use your entire Android phone on your MacBook.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages