findmy.py is a Python library that queries Apple's FindMy network to locate AirTags, iDevices, and custom tracking devices.
The library solves the problem of fragmented FindMy functionality scattered across multiple repositories by consolidating location-tracking capabilities into a single, easy-to-use Python package. It works by fetching and decrypting location reports from Apple's FindMy network, supporting both official accessories like AirTags and iDevices as well as custom DIY tags built with OpenHaystack. The tool handles Apple account authentication with SMS and Trusted Device two-factor authentication, and provides both synchronous and asynchronous APIs for integration flexibility.
Developers should choose this library if they need to build cross-platform FindMy functionality without requiring a Mac. It suits projects that track personal devices or custom tags and need programmatic access to location data. The tool includes a command-line interface accessible via `python -m findmy`, making it useful both as a library and standalone utility. It supports importing or creating custom accessory keys, and can scan for nearby FindMy devices to decode their public keys and status information.
The project uses Ruff for linting and formatting with pre-commit hooks available to contributors. The maintainers actively encourage community contributions through a structured process that requires opening issues before implementing new features.