pypush is a Python APNs and iMessage client library built through reverse-engineering of Apple's internal APIs.
The project addresses the challenge of programmatically interacting with Apple's push notification and messaging systems by implementing client-side support for Apple's internal APNs API. This allows applications to activate as Apple devices and receive push notifications. The tool is platform-independent, though some APIs may require device identifiers to function.
The project is currently undergoing a major rewrite and is explicitly unstable. Developers should understand that many features have been temporarily removed and the tool should not be expected to work reliably until a later release. This makes it suitable primarily for developers interested in experimenting with Apple's internal APIs or contributing to the reverse-engineering effort, rather than for production use. The library aims to eventually provide comprehensive coverage of Apple's internal API surface, with plans to restore iMessage functionality and add additional capabilities.
Development activity shows active work on the rewrite with ongoing commits to the main codebase. The project maintains a Discord community channel for discussion and coordination. The codebase reflects the exploratory nature of reverse-engineering work, with the library being relicensed under the SSPL and acquired by another organization, indicating shifts in the project's governance and direction.