skillfed

plyer

Platform-independent wrapper for platform-dependent APIs

plyer v2.1.0 287.7K downloads/30d#8,029 on PyPI
Permissive license MIT Abandoned released

What it is and what it does

Plyer is a Python wrapper that abstracts platform-specific APIs into a single, cross-platform interface. Instead of writing separate code for Android, iOS, Windows, macOS, and Linux, you call Plyer's unified API and it delegates to the appropriate backend—pyjnius on Android, pyobjus on iOS, and native system libraries on desktop platforms. It covers a broad range of device capabilities: motion sensors (accelerometer, gyroscope, compass), environmental sensors (barometer, temperature, humidity), hardware controls (vibrator, brightness, flash), communication (SMS, email, calls), location (GPS), storage, notifications, file choosers, and more.

The package has no runtime dependencies and installs easily, but it is no longer actively maintained. The last release was in November 2022, and the project shows signs of abandonment with many unresolved issues and pull requests. Platform-specific implementations may be outdated or incompatible with current OS versions, particularly on Android (API 30+), iOS, and macOS where APIs have evolved. If you need to access device features in a cross-platform Python application, Plyer can still work for basic use cases, but you should expect to encounter platform-specific bugs and may need to fork or patch the code for modern OS support.

Use it for:

  • Build a cross-platform mobile app using Kivy that reads accelerometer and GPS data without platform-specific code branches.
  • Send notifications and access file choosers from a desktop Python application on Windows, macOS, and Linux with a single API.
  • Access device sensors (battery, brightness, orientation) in a Python-for-Android or Kivy-iOS application.
  • Implement text-to-speech or speech-to-text features across multiple platforms with a unified interface.
  • Retrieve device metadata (unique ID, device name, CPU count) in a platform-agnostic way.

Worth the install?

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

Plyer provides a platform-independent Python API to access device features like sensors, notifications, file choosers, and hardware capabilities across Android, iOS, Windows, macOS, and Linux.

No. Plyer is abandoned (last release 1371 days ago) with unresolved issues on modern OS versions. While it has no install friction and a permissive license, the lack of maintenance means platform-specific backends are likely broken or incompatible with current Android, iOS, Windows, and macOS APIs. Use only if you are maintaining legacy code or willing to fork and patch it yourself; for new projects, prefer actively maintained alternatives.

Install

plyer on PyPI

pip

pip install plyer

uv

uv add plyer

poetry

poetry add plyer

Installing plyer

Before you install

Installation is straightforward with no runtime dependencies, but the project is abandoned as of 1371 days since its last release (2022-11-12). Active maintenance has stalled; many open issues and pull requests remain unresolved, and platform-specific implementations may be outdated or broken on current OS versions.

License in practice

MIT license permits commercial and private use with minimal restrictions, requiring only attribution and inclusion of the license text.

Quickstart

pip install plyer

from plyer import accelerometer
accel = accelerometer.acceleration

Platform-specific backends (pyjnius for Android, pyobjus for iOS, system libraries for desktop) must be available; not all APIs are supported on all platforms—check the supported APIs table in the documentation.

Verify before relying

  • Current compatibility with Python 3.10+ and 3.11+ on modern OS versions (last tested in 2022)
  • Whether platform-specific backends (pyjnius, pyobjus) remain functional with current versions
  • Status of known issues documented in the changelog (e.g., Android 10+ vibrator permissions, macOS deprecated APIs)

Package facts

License MIT (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance abandoned — 1,371 days since the last release
First released
Downloads 287,715/month — #8,029 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: plyer-2.1.0-py2.py3-none-any.whl

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

cross-platform device apimobile sensor access pythonplatform-independent hardware featuresandroid ios python wrapperdevice notifications file chooseraccelerometer gps battery apinative platform features python
cross-platformmobile-developmenthardware-access

More Application Frameworks packages