pyobjc-framework-Contacts
Wrappers for the framework Contacts on macOS
What it is and what it does
This package wraps Apple's native Contacts framework for macOS, allowing Python code to read, create, and modify contact records directly from the system address book. It depends on pyobjc-core and pyobjc-framework-Cocoa to translate between Python and native macOS APIs.
The package is production-stable and actively maintained, with wheels built for Python 3.10 through 3.15 on macOS 10.9 and later (with newer Python versions requiring macOS 10.13 or 10.15). It does not include its own documentation; users must refer to Apple's Contacts framework documentation and PyObjC's general translation guides to understand how to use the framework.
Use it for:
- Automate contact creation or bulk operations on the macOS address book from a Python script.
- Query and export contact data from the system for reporting or backup purposes.
- Build a macOS desktop application that integrates with the system Contacts app.
- Sync contact information between an external service and the local macOS Contacts database.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides Python bindings to macOS's Contacts framework, enabling programmatic access to contact data and management through native Objective-C APIs.
Yes, if you are developing on macOS and need programmatic access to the system Contacts framework. The package is actively maintained, has no known vulnerabilities, and offers a permissive MIT license. Install friction is moderate due to macOS-only wheels and compiled dependencies, but this is unavoidable for native framework bindings. Not applicable on non-macOS platforms.
Install
pyobjc-framework-contacts on PyPI
pip
pip install pyobjc-framework-contactsuv
uv add pyobjc-framework-contactspoetry
poetry add pyobjc-framework-contactsInstalling pyobjc-framework-Contacts
Before you install
Medium install friction due to macOS-only wheels and compiled dependencies (pyobjc-core, pyobjc-framework-Cocoa). Active maintenance with a release 3 days old and recent commits; supports Python 3.10–3.15.
License in practice
MIT license is permissive; you may use, modify, and distribute this package freely in commercial or private projects with minimal restrictions.
Quickstart
pip install pyobjc-framework-contacts
from Contacts import CNContactStore
store = CNContactStore()
macOS only; requires Python 3.10 or later and a Mac with the Contacts framework available.
Verify before relying
- Whether the Contacts framework is available on all supported macOS versions or has version-specific limitations.
- Performance characteristics when working with large contact databases.
- Whether free-threaded Python wheels have full parity with GIL-bound versions.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — pyobjc-core, pyobjc-framework-Cocoa |
| Maintenance | actively maintained — 3 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 692,107/month — #5,323 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyobjc_framework_contacts-12.2.2-cp310-cp310-macosx_10_9_universal2.whl; pyobjc_framework_contacts-12.2.2-cp311-cp311-macosx_10_9_universal2.whl; pyobjc_framework_contacts-12.2.2-cp312-cp312-macosx_10_13_universal2.whl; pyobjc_framework_contacts-12.2.2-cp313-cp313-macosx_10_13_universal2.whl; pyobjc_framework_contacts-12.2.2-cp313-cp313t-macosx_10_13_universal2.whl; pyobjc_framework_contacts-12.2.2-cp314-cp314-macosx_10_15_universal2.whl; pyobjc_framework_contacts-12.2.2-cp314-cp314t-macosx_10_15_universal2.whl; pyobjc_framework_contacts-12.2.2-cp315-cp315-macosx_10_15_universal2.whl; pyobjc_framework_contacts-12.2.2-cp315-cp315t-macosx_10_15_universal2.whl
Keywords: PyObjC, Contacts
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pyobjc-framework-AddressBookProvides Python bindings to macOS's AddressBook…
permissive · top 15,000 on PyPI
pyobjc-framework-ContactsUIProvides Python bindings to macOS's ContactsUI…
permissive · top 15,000 on PyPI
pyobjc-framework-InputMethodKitProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
pyobjc-framework-NetworkProvides Python bindings to Apple's Network…
permissive · top 15,000 on PyPI
pyobjc-framework-CallKitProvides Python bindings for Apple's CallKit…
permissive · top 15,000 on PyPI
pyobjc-framework-CocoaProvides Python bindings to macOS Cocoa…
permissive · top 5,000 on PyPI
pyobjc-framework-AccountsProvides Python bindings to macOS's Accounts…
permissive · top 15,000 on PyPI
pyobjc-framework-BusinessChatProvides Python bindings for Apple's…
permissive · top 15,000 on PyPI
pyobjc-framework-SafariServicesProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
pyobjc-framework-ThreadNetworkProvides Python bindings to Apple's…
permissive · top 15,000 on PyPI