TurboADB
Drive Android over ADB + scrcpy from one pip package — a Python API, a full CLI, and a desktop GUI. Built for Android Automotive / IVI head units and regular phones alike.
Bundled GUI executable — no Python needed. Or pip install turboadb
for the CLI, API, and GUI together.
adb and scrcpy so you don't have to
remember their flags. The same engine powers all three front-ends, so
anything you can click in the GUI you can script in Python or run as a
one-line command. It bundles its own tools (downloaded on first run), works
against devices on another machine's adb server over RDP, and knows
the quirks of Android Automotive head units.
What's new
v1.0.8 Remote webcam & polish
- Webcam → Remote source — view a camera on another Windows / RDP machine over WinRM (no SSH), streamed back over TCP.
- Tabbed Settings — a proper preferences window (Appearance · Tools · scrcpy · Logcat · Startup).
- Dropdown arrows fixed — real chevrons instead of a "dot", app-wide.
v1.0.7 Host webcam
- 📹 Webcam tab — view a USB / laptop camera on the machine running TurboADB, beside the scrcpy mirror. Point it at the physical head unit or bench.
- Works locally and over RDP — local DirectShow capture sees whatever camera the RDP session exposes.
- Snapshot, record (H.264 MP4), pause, rotate / mirror, Fill·Fit·Stretch.
v1.0.6 Quick wins
- 📷 Device-camera mirror — mirror the phone's own camera
(
scrcpy --video-source camera), front or back. - Logcat keyword highlighting — mark
error|anr|crashin-line without hiding the rest. - One-click dark / light toggle, and a Stop sharing & remove auto-start control. Nothing auto-starts on connect.
Full history in the changelog.
Everything it does
Interactive shell
A real adb shell terminal: history, tab-completion,
copy/paste, columnised ls, and a Stop button
that actually kills a runaway command like logcat — even over
a remote adb server.
Live logcat
Filter by level, tag, or live regex; highlight keywords
like error|anr|crash in-line; pause and clear. Under a flood the
view stays responsive and nothing is lost — every line is
archived to disk, so a save is the complete log.
Files & apps
Browse the device filesystem and push/pull files. List, install (incl. split APKs), uninstall, clear data, and start/stop packages.
Device controls
One click for system keys, media, Wi-Fi / Bluetooth / airplane / hotspot, screen on/off, brightness, app launchers, and an on-screen keyboard. Every one is also a CLI command.
Mirroring & capture
scrcpy in a window or embedded, with a compatibility mode for stubborn IVI units. Mirror all displays at once, a side-by-side Control + Mirror view, or the device camera. Screenshots and recording that work over RDP.
Host webcam
View a USB / laptop camera beside the mirror — point it at the physical head unit. Works locally and over RDP, or drive a remote machine's camera over WinRM (no SSH); snapshot, record, rotate / flip.
Telephony
Dial, place / answer / end calls, read the call log, list SMS, and compose a message — handy on IVI units with telephony.
Remote devices
No need to plug the device into your own machine. Point TurboADB at another PC's adb server and drive whatever is connected there — exactly what you want for a lab unit reached over RDP.
Serve & deploy
Share this PC's devices with one command, or push serve
onto remote Windows hosts from your machine over WinRM — one host
or a whole fleet, with a pre-flight test. One click to stop sharing
& remove auto-start again.
Root & mount
root / unroot, remount, mount -o remount,rw /, and
disable/enable verity (with the required reboot handled) for engineering
builds.
Bundled & self-updating
adb and scrcpy download themselves on first
run. The Upgrade button updates TurboADB from PyPI, refreshes the tools,
and restarts.
Install
Windows app (no Python)
Download the standalone GUI and double-click it. It downloads
adb and scrcpy on first run.
With pip (CLI + API + GUI)
pip install turboadb
Then run turboadb-gui, or use
turboadb on the command line, or
import turboadb in Python.
Three ways to use it
GUI
turboadb-guiA desktop + Start-menu shortcut is created on first launch.
CLI
turboadb devices
turboadb -s SERIAL \
shell -- getprop ro.product.model
turboadb -s SERIAL screenshot shot.pngPython
from turboadb import ADBHandler, ADBConfig
dev = ADBHandler(ADBConfig(serial="SERIAL"))
dev.connect()
dev.install("app.apk", grant_perms=True)Remote & lab setups
Drive a device on another PC
turboadb devices --adb-host lab-pc-01
turboadb --adb-host lab-pc-01 -s DEVICE \
shell -- pm list packagesThe lab machine just needs to share its adb server.
Share / deploy that sharing
# on the host with the device:
turboadb serve --startup-task
# or push it to remote hosts from here:
turboadb deploy-serve lab-pc-01 lab-pc-02 \
-u "DOMAIN\user"Deploy uses WinRM (NTLM); each target needs WinRM on and admin rights.