Getting started
ADB Studio is a native SwiftUI app for macOS. It's a full GUI on top of the Android Debug Bridge — no more memorising commands, no more terminal juggling. It talks to your Android devices over USB or your local network.
Requirements
- macOS 14.0 (Sonoma) or later
-
adbinstalled on your Mac via one of :- Android Studio
-
Homebrew:
brew install android-platform-tools -
Manual install at
~/Library/Android/sdk/platform-tools
Install via Homebrew
The fastest and recommended way. The cask is maintained in a dedicated tap.
$ brew install --cask zaphkiel-ivanovna/tap/adb-studio To upgrade later:
$ brew upgrade --cask adb-studio Install via DMG
Download the latest DMG or ZIP from the releases page.
- DMG — open and drag
ADB-Studio.appto your Applications folder - ZIP — extract and move
ADB-Studio.appto your Applications folder
The app is not yet notarised. macOS Gatekeeper may block the first run. Two ways to open it :
-
Right-click
ADB-Studio.app→ Open → Open - Or clear the quarantine attribute in Terminal:
$ xattr -cr /Applications/ADB-Studio.app Build from source
Requires Xcode 15 or later with the macOS 14 SDK.
$ git clone https://github.com/Zaphkiel-Ivanovna/adb-studio.git
$ cd adb-studio
$ xcodebuild -scheme "ADB-Studio" -configuration Release build Or open the project directly in Xcode :
$ open ADB-Studio.xcodeproj Connect a device
Via USB
- Enable Developer Options on your Android device
- Inside Developer Options, enable USB Debugging
- Connect the device to your Mac with a USB cable
- Approve the RSA fingerprint prompt on the device when it appears
- The device shows up automatically in the ADB Studio sidebar
Via WiFi (wireless debugging)
- Enable Wireless Debugging in Developer Options on your Android device
- In ADB Studio, click Connect via WiFi or press ⌘K
- Scan — devices advertising over mDNS/Bonjour appear automatically
- Pair — first time only: enter the 6-digit pairing code shown on the device
- Connect — the device is remembered and reconnects automatically next time
Devices are discovered via the _adb-tls-connect._tcp mDNS
service. Make sure the Mac and the Android device are on the same Wi-Fi
network and that your network allows multicast.
Screen mirroring
Stream and control any connected Android device from your Mac, in a dedicated window with its own decoder.
- Select a connected device in the sidebar
- Open the Mirror tab
- Click Open Mirror Window — a dedicated window opens with the live device screen
- Use your mouse for taps, drags and scrolls. Your keyboard sends key events and text input
Multiple devices can be mirrored in parallel — one window per session, one decoder per session.
Mirroring is powered by scrcpy 3.3.4. The server binary and its Apache License 2.0 notice are embedded in the app bundle.
Port forwarding
Expose any TCP port between your Mac and the device — perfect for React Native, Expo, Metro, local APIs or remote debuggers.
- Select a connected device
- Open the Ports section
- Click Add Port
- Enter the port number (e.g.
8081for Metro)
The reverse tunnel is created automatically. Toggle forwards on and
off without remembering the adb reverse flags.
APK installation
- Select a connected device
- Drag and drop an APK file onto the drop zone, or click to open a file picker
- The installation progress is shown in real time
- Cancel at any point — the install process is terminated cleanly
Installs to one device or broadcasts to every connected target at once. Signed or unsigned — both are accepted.
App management
Browse, search and manage every app on the device. No more hunting for package names.
- Select a connected device
- Expand the Installed Apps section
- Filter by User Apps, System, All or Disabled
- Search by app name or package identifier
-
Click the … menu on any row for :
- Launch — open the app on the device
- Force Stop — stop a running app
- Uninstall — remove the app (with confirmation)
- Uninstall (keep data) — remove the app but preserve user data
- Disable / Enable — toggle without uninstalling
- App Settings — open the system settings page for that app
System apps cannot be uninstalled on production devices, but they can be disabled.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
| ⌘R | Refresh devices |
| ⌘K | Connect via WiFi |
| ⌘, | Open settings |
Tech stack
- Language — Swift 5.9+
- UI framework — SwiftUI
- Target — macOS 14 (Sonoma) or later
- Architecture — MVVM with dependency injection
- Device discovery — mDNS / Bonjour via the Network framework
- Mirroring — scrcpy 3.3.4 server embedded in the bundle
Project structure
ADB-Studio/
├── App/
│ ├── ADB_StudioApp.swift # App entry point
│ └── DependencyContainer.swift # DI container
├── Models/
│ ├── Device.swift
│ ├── DeviceConnection.swift
│ ├── PortForward.swift
│ ├── InstalledApp.swift
│ └── ADBError.swift
├── Services/
│ ├── ADB/ # ADB command execution
│ ├── Device/ # Device management
│ ├── Discovery/ # mDNS discovery
│ ├── Media/ # Screenshot service
│ └── Shell/ # Process execution
├── ViewModels/
│ ├── DeviceDetailViewModel.swift
│ └── InstalledAppsViewModel.swift
└── Views/
├── Main/
├── DeviceList/
├── DeviceDetail/
├── Connection/
├── PortForward/
├── APKInstaller/
├── InstalledApps/
├── Tools/
└── Settings/ Contributing
Contributions are very welcome. To submit a change :
- Fork the repository
-
Create your feature branch :
git checkout -b feature/amazing-feature -
Commit your changes :
git commit -m 'Add amazing feature' - Push :
git push origin feature/amazing-feature - Open a pull request
Bug reports and feature requests belong in the issue tracker.
License
ADB Studio is released under the MIT License. Read the full text in LICENSE.
The embedded scrcpy server is licensed under the Apache License 2.0.