malmeloo/FindMy.py: π + π― + π = Everything you need to query Apple’s FindMy network!
The all-in-one library that provides everything you need
to query Apple’s FindMy network!
The current “Find My-scene” is quite fragmented, with code
being all over the place across multiple repositories,
written by several authors. This project aims to
unify this scene, providing common building blocks for any
application wishing to integrate with the Find My network.
Important
This project is currently in Alpha. While existing functionality
will likely not change much, the API design is subject to change
without prior warning.
You are encouraged to report any issues you can find on the
issue tracker!
The package can be installed from PyPi:
For usage examples, see the examples directory. Documentation can be found here.
Want to contribute code? That’s great! For new features, please open an
issue first so we can discuss.
This project uses Ruff for linting and formatting.
Before opening a pull request, please ensure that your code adheres to these rules.
There are pre-commit hooks included to help you with this, which you can set up as follows:
pip install poetry
poetry install --with dev # this installs pre-commit into your environment
pre-commit install
After following the above steps, your code will be linted and formatted automatically
before committing it.
There are several other cool projects based on this library! Some of them have been listed below, make sure to check them out as well.
- OfflineFindRecovery – Set of scripts to be able to precisely locate your lost MacBook via Apple’s Offline Find through Bluetooth Low Energy.
- SwiftFindMy – Swift port of FindMy.py
While I designed the library, the vast majority of actual functionality
is made possible by the following wonderful people and organizations: