
Description
Running automated tests on a real phone usually means turning on developer options, plugging in a cable and setting up ADB, then doing it all again for the next device. Halfway through a script the login page sends a text message code that the tool cannot even see. Droidline takes a different route: install one app on the phone, scan a QR code to pair, and then drive that phone from code on your PC, with no ADB, no USB cable and no root.
The phone dials out to droidline serve on your PC, so it opens no port of its own. It works on the same Wi-Fi, or over mobile data through a tunnel or relay you run, and every line is encrypted end to end. There is one command set, so touch is the same touch in Python, Node.js, C#, the shell and HTTP, and an AI agent can look at the screen and act on it through MCP. It only uses permissions an ordinary app can get, which is why a few things are out of reach, and the docs list them in a section of their own. It is written in Go under the MIT license, runs on Windows, macOS and Linux, and needs Android 9 or later on the phone.
Pair without ADB: install the app, turn on accessibility, the keyboard and the other permissions, then pair with a QR code or a 6 digit code, with no developer options or USB debugging
Elements, not pixels: dump returns the screen as a tree, you target by text, id or description, and touch waits for the element and taps the center of its bounds if it refuses the click
One interface in every language: the same commands cover Python, Node.js, C#, the CLI and HTTP, and Appium clients can connect too
AI agents over MCP: let Claude, Cursor and other agents see the phone screen and act, and narrow what they may use with --tools or --read-only
A shelf of phones: one PC manages many phones running the same routine every day, each through its own network or proxy
Beyond your Wi-Fi: phones on mobile data connect back through a tunnel or relay you run, so no third party server is involved
A fake phone to practice on: every release includes droidline-fakephone, which simulates a phone with a demo app so you can finish a login script without a device
The phone dials out to droidline serve on your PC, so it opens no port of its own. It works on the same Wi-Fi, or over mobile data through a tunnel or relay you run, and every line is encrypted end to end. There is one command set, so touch is the same touch in Python, Node.js, C#, the shell and HTTP, and an AI agent can look at the screen and act on it through MCP. It only uses permissions an ordinary app can get, which is why a few things are out of reach, and the docs list them in a section of their own. It is written in Go under the MIT license, runs on Windows, macOS and Linux, and needs Android 9 or later on the phone.
Features
Pair without ADB: install the app, turn on accessibility, the keyboard and the other permissions, then pair with a QR code or a 6 digit code, with no developer options or USB debugging
Elements, not pixels: dump returns the screen as a tree, you target by text, id or description, and touch waits for the element and taps the center of its bounds if it refuses the click
One interface in every language: the same commands cover Python, Node.js, C#, the CLI and HTTP, and Appium clients can connect too
AI agents over MCP: let Claude, Cursor and other agents see the phone screen and act, and narrow what they may use with --tools or --read-only
A shelf of phones: one PC manages many phones running the same routine every day, each through its own network or proxy
Beyond your Wi-Fi: phones on mobile data connect back through a tunnel or relay you run, so no third party server is involved
A fake phone to practice on: every release includes droidline-fakephone, which simulates a phone with a demo app so you can finish a login script without a device

