← Back to Discover

Droidline

Droidline is open-source Android automation that drives phones from code without ADB, a USB cable or root.

Testing & QAWorkflow automation

What it does

Droidline controls Android phones from code. The droidline serve command runs on your PC. The Droidline app on each phone connects out to that server. Your code sends one JSON line per command to localhost:8780 and reads one line back. Python, Node.js, C#, the command line, HTTP and MCP use the same command names. The dump() command returns the screen as a tree. Each element has text, id and desc. The touch command waits up to 10 seconds for its target and falls back to a coordinate tap by itself. Setup needs the Android app file, the app's permissions and pairing with a QR code or a 6-digit code. Droidline says its median time to read the screen tree was 53 milliseconds on a Galaxy S23 Ultra with Android 15 and adb over Wi-Fi, over ten runs. Droidline reports 2,342 milliseconds for adb with uiautomator and 99 milliseconds for Appium UiAutomator2 in the same test.

Capabilities

  • One PC can run many phones. Commands to one phone run in order, and commands to different phones run in parallel. Each phone can be given a name such as shelf-01 and addressed by that name.
  • The pytest plugin provides a phone fixture. For each failed test it captures the commands sent, a screenshot and the screen tree.
  • The droidline webdriver command points Appium clients and existing Appium scripts at your phones without ADB or an Appium server.
  • Every line is encrypted with P-256 key exchange and AES-256-GCM after the handshake.
  • The tap_image command finds a picture or a word on screens without elements, using template matching or OCR.

When to use it

  • You want to test your Android apps from code.
  • You want to script Android tasks that you repeat.
  • You want to run a shelf of phones from Python, Node.js, C#, the shell or an AI agent.