Droidline documentation

What Droidline is, how its three parts fit together, what you need before you start, and which page to read next.

Droidline lets a program on your computer use an Android phone the way a person would: open apps, tap buttons, type text, scroll, read what is on the screen and take screenshots. You write one line per action, such as d.touch("text", "Log in"), in Python, Node.js, the shell, plain HTTP or any language that can open a network connection.

It needs no ADB, no USB cable and no root. The phone only needs the Droidline app and a few permissions you turn on once.

What people use it for

  • Testing your own app on real phones, including flows that cross into other apps, such as a login with a code from a text message.
  • A shelf of phones running the same routine every day, each through its own network or proxy.
  • Giving an AI agent hands: through MCP, Claude, Cursor and other agents can look at a phone screen and act on it.
  • Small personal automations, such as turning Wi-Fi off at night or collecting a value from an app every hour.

Droidline uses only permissions an ordinary app can get, so a few things are out of reach. Read Limitations before you plan a big project.

How it works

Droidline has three parts. You install the first two once; the third is whatever you write.

PartWhere it runsWhat it does
droidline serveyour PC (Windows, macOS or Linux)A small server that keeps an encrypted connection to every paired phone and takes commands from your code on localhost:8780.
The Droidline appeach Android phone (Android 9 or later)Connects to the server and carries out commands with Android's accessibility service, its own keyboard and, if you want, a per-app VPN.
Your codeyour PCA Python or Node.js script, a droidline command in the shell, an AI agent over MCP, curl, or a raw socket from any language.

A command travels like this:

your script ──one JSON line──▶ droidline serve ──encrypted──▶ phone
your script ◀──one JSON line── droidline serve ◀──encrypted── phone

The phone always opens the connection to the PC, never the other way round. That is why the phone needs no open port, and why the same setup also works when the phone is on mobile data, through a tunnel or a relay you run yourself.

What you need

  • A PC that stays on while your scripts run. Windows 10 or 11, macOS or Linux, 64-bit (x86 or ARM).
  • An Android phone with Android 9 or later. It does not need to be rooted, and it does not need developer options.
  • For this first setup, the PC and the phone on the same Wi-Fi network. Other networks are covered in Remote phones.
  • Python 3.9 or later, or Node.js 18 or later, if you want to write scripts in those languages. The command line works without either.

No phone at hand yet? droidline-fakephone simulates one on your PC, and Your first script uses it from start to finish.

Where to go next

If you want toRead
Set everything up step by stepInstallation
Send a first command as fast as possibleQuick start
Write a real script, with each line explained, without a phoneYour first script
Understand selectors, waiting and errorsConcepts
Use your languagePython, Node.js, CLI, HTTP, other languages, AI agents
Find the right element on a screenFinding elements
Copy a working patternRecipes
Look up a commandCommand reference
Fix something that does not workTroubleshooting

Words you have not met before, such as selector, dump or pairing, are explained in the Glossary.

Status

Droidline is at version 0.1. The server, CLI, MCP adapter, relay and SDKs pass their tests against the phone simulator, and the Android app has been tested on an Android 13 emulator. Reports from real phones, especially for the settings shortcuts on different brands, are the next step. The verification record lists exactly what has been checked.