Natural-language driven Android automation for AI coding assistants and test suites, running on real phones or emulators.
KnifeLemon/Droidline
Automate real Android phones from your code for app testing, repeated tasks, phone farms, or AI agents, with no ADB, USB cable or root.
- Stars
- 281
- Forks
- 24
- Open issues
- 1
- Last commit
- 8 days ago
What is it?
Droidline lets you control real Android phones from Python, Node.js, C#, the command line, HTTP, or Appium-compatible clients. A server runs on your PC, and a small Android app on the phone pairs with it through a QR code or a 6-digit code. Commands such as touch, input, wait and dump use the element's text, id or description rather than screen coordinates, and waits for elements happen automatically.
It is aimed at testing your own apps on real devices, running the same routine across many phones, and giving an AI agent access to a phone through MCP. The phone connects out to the PC, so it can work on the same Wi-Fi or over mobile data through a tunnel or a relay you run, with each connection encrypted end to end. It uses only permissions an ordinary app can get, so it cannot unlock lock screens or open non-exported screens of other apps.
Key features
- 01Commands work the same across Python, Node.js, C#, CLI, HTTP and MCP.
- 02Elements are selected by text, id, description or neighboring elements.
- 03Waits for elements automatically, with clear error codes and messages.
- 04One PC can drive many phones, running commands per phone in order and phones in parallel.
- 05Per-app proxy routing through a local VPN, without root.
- 06Phones can connect over the same Wi-Fi, a port forward, a tunnel or a self-hosted relay.
Use cases
- Testing an Android app on real devices, including flows that switch to other apps.
- Running the same daily routine across a set of phones, each on its own network.
- Letting an AI agent such as Claude or Cursor view and operate a phone screen via MCP.
- Automating small personal tasks on a phone, such as toggling Wi-Fi on a schedule.
Topics
FAQ
- What is Droidline?
- Automate real Android phones from your code for app testing, repeated tasks, phone farms, or AI agents, with no ADB, USB cable or root. Droidline lets you control real Android phones from Python, Node.js, C#, the command line, HTTP, or Appium-compatible clients. A server runs on your PC, and a small Android app on the phone pairs with it through a QR code or a 6-digit code. Commands such as touch, input, wait and dump use the element's text, id or description rather than screen coordinates, and waits for elements happen automatically.
- Is Droidline free to use? What license does it have?
- Droidline is open source under the MIT license. Check the license terms before using it in commercial products.
- Is Droidline still maintained?
- Actively maintained. The last commit to Droidline was on Oct 11, 2026.
- What can I use Droidline for?
- Testing an Android app on real devices, including flows that switch to other apps. Running the same daily routine across a set of phones, each on its own network. Letting an AI agent such as Claude or Cursor view and operate a phone screen via MCP. Automating small personal tasks on a phone, such as toggling Wi-Fi on a schedule.
- Where can I get Droidline?
- The source code and installation instructions are on GitHub: https://github.com/KnifeLemon/Droidline
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A plugin-based harness that gives Claude Code, Codex and other coding agents shared agents, skills, hooks, memory and security scanning.
An Agent Skill and MCP server giving coding agents like Claude Code, Cursor and Codex 42 local FFmpeg video and audio editing tools.
MCP server and CLI letting AI agents reverse engineer native binaries, Electron apps, .NET assemblies and websites.
Fair-code workflow automation platform for building AI agents and workflows, combining a visual canvas with custom code and 1500+ integrations.
A public repository of Agent Skills: folders of instructions and resources that Claude loads to perform specialized tasks.