skillfed

pure-python-adb

Pure python implementation of the adb client

pure-python-adb v0.3.0.dev0 115.1K downloads/30d#12,268 on PyPI602
Permissive license MIT license DORMANT released

What it is and what it does

Pure-python-adb is a Python implementation of an ADB (Android Debug Bridge) client that connects to an ADB server to communicate with Android devices and emulators. Instead of shelling out to the native adb command-line tool, it implements the ADB protocol directly in Python, allowing you to programmatically control devices from within your code.

The package supports most common ADB operations: listing devices, executing shell commands, installing and uninstalling APKs, pushing and pulling files, taking screenshots, and remote connections. However, the package has been dormant since 2020 and requires an external ADB server to be running—it does not manage the server itself.

Use it for:

  • Automate APK installation and testing across multiple Android devices or emulators in CI/CD pipelines
  • Run shell commands on Android devices programmatically to extract logs, system info, or app data
  • Build test automation frameworks that need to control Android emulators without subprocess calls
  • Capture screenshots or pull files from devices as part of automated testing or monitoring workflows
  • Manage remote device connections and execute batch operations across a device farm

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Pure-Python ADB client that communicates with an ADB server to control Android devices and emulators without requiring the native ADB binary.

No—unless you have a specific legacy codebase already using this package. The project is dormant (last release 2020-08-05), offers no recent maintenance, and high install friction from being a tarball with no dependencies. For new projects, consider maintained alternatives or direct ADB server communication via subprocess if the overhead is acceptable.

Install

pure-python-adb on PyPI

pip

pip install pure-python-adb

uv

uv add pure-python-adb

poetry

poetry add pure-python-adb

Installing pure-python-adb

Before you install

High install friction due to being a pure-Python tarball with no runtime dependencies. The package is dormant—last release was 2020-08-05, over 2200 days ago, with no recent commits. Use only if you accept that maintenance and bug fixes are unlikely.

License in practice

MIT license (permissive) means you can use, modify, and distribute this package freely with minimal restrictions, though you must include the license notice.

Quickstart

pip install pure-python-adb

from pure_python_adb.client import Client as AdbClient
client = AdbClient(host="127.0.0.1", port=5037)
device = client.device("emulator-5554")
device.shell("echo hello world")

Requires an ADB server running on the specified host and port (default 127.0.0.1:5037); the package does not start the server itself.

Verify before relying

  • Whether the package works with modern Android SDK versions and emulator configurations
  • Compatibility with Python versions beyond 3.6 (requires_python field is empty)
  • Whether async client variant is production-ready or experimental

Package facts

License MIT license (permissive)
Python support not specified
Install friction high — source build required
Runtime dependencies none
Maintenance dormant — 2,200 days since the last release
Last repo commit
First released
Downloads 115,120/month — #12,268 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pure-python-adb-0.3.0.dev0.tar.gz

Keywords: adb

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Topic :: Software Development :: Testing

Tags

adb client pythonandroid device controlpure python adbandroid emulator automationadb server communicationandroid shell commandsapk install uninstall
android-automationadb-clientdormant

More Testing packages