pyobjc-core
Python<->ObjC Interoperability Module
Decision gist · record as of 2026-08-14
Yes, if you are developing on macOS and need to call Objective-C frameworks or build native applications in Python. The active maintenance, permissive license, and lack of known vulnerabilities make it a solid choice. Not applicable on non-macOS platforms; installation will fail outside macOS.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- macOS only; requires Python 3.10 or later.
- Installation will fail on non-macOS systems.
- Medium install friction due to platform-specific wheels (macOS only, multiple Python versions and architectures).
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use this in commercial or proprietary projects with minimal restrictions, provided you include the license notice.
last release 2026-08-11 (3 days) · last repo commit 2026-08-14 · 803 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 3,326,223 downloads/mo, #2,658 on PyPI
Alternatives
Verify before relying
pip install pyobjc-core
import pyobjc_core- Whether pre-built wheels cover all intended Python versions and architectures on your target macOS versions.
- Performance characteristics when bridging frequent calls between Python and Objective-C code paths.
- Specific Objective-C classes and methods accessible through the bridge after installation.
What it is and what it does
PyObjC-core is the low-level bridge that connects Python to Objective-C on macOS. It handles the translation layer between Python's object model and Objective-C's runtime, allowing you to instantiate Objective-C classes, call methods, and access properties directly from Python code. This is the foundation package; most users will also install framework-specific bindings to access actual macOS APIs.
The package is actively maintained, supports modern Python versions from 3.10 through 3.15 including free-threading variants, and carries no known vulnerabilities. It's a production-stable tool for developers building native macOS applications in Python or integrating Python with existing Objective-C codebases. The medium install friction reflects that it's platform-specific and requires compiled wheels, but those are readily available.
Use it for
- Write full Cocoa desktop applications in pure Python with access to native macOS UI frameworks.
- Call Objective-C APIs and third-party frameworks from Python scripts running on macOS.
- Embed Python logic into Objective-C applications by bridging between the two languages.
- Prototype or automate macOS system tasks using Python with direct access to native APIs.
- Inspect and interact with Objective-C classes from the Python interactive interpreter.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are developing on macOS and need to call Objective-C frameworks or build native applications in Python.
The active maintenance, permissive license, and lack of known vulnerabilities make it a solid choice. Not applicable on non-macOS platforms; installation will fail outside macOS.
Install
pyobjc-core on PyPI
Before you install
Medium install friction due to platform-specific wheels (macOS only, multiple Python versions and architectures). Active maintenance with a recent release (3 days old) and steady repository activity suggest reliable upkeep.
macOS only; requires Python 3.10 or later. Installation will fail on non-macOS systems.
License in practice
MIT license is permissive; you can use this in commercial or proprietary projects with minimal restrictions, provided you include the license notice.
Quickstart
pip install pyobjc-core
import pyobjc_core
Verify before relying
- Whether pre-built wheels cover all intended Python versions and architectures on your target macOS versions.
- Performance characteristics when bridging frequent calls between Python and Objective-C code paths.
- Specific Objective-C classes and methods accessible through the bridge after installation.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 3 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,326,223 / month, #2,658 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: MacOS X :: CocoaIntended Audience :: DevelopersNatural Language :: EnglishOperating System :: MacOS :: MacOS XProgramming Language :: Objective CProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Programming Language :: Python :: Free Threading :: 3 - StableProgramming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: User Interfaces |
Evidence: pyobjc_core-12.2.2-cp310-cp310-macosx_10_9_universal2.whl; pyobjc_core-12.2.2-cp311-cp311-macosx_10_9_universal2.whl; pyobjc_core-12.2.2-cp312-cp312-macosx_10_13_universal2.whl; pyobjc_core-12.2.2-cp313-cp313-macosx_10_13_universal2.whl; pyobjc_core-12.2.2-cp313-cp313t-macosx_10_13_universal2.whl; pyobjc_core-12.2.2-cp314-cp314-macosx_10_15_universal2.whl; pyobjc_core-12.2.2-cp314-cp314t-macosx_10_15_universal2.whl; pyobjc_core-12.2.2-cp315-cp315-macosx_10_15_universal2.whl; pyobjc_core-12.2.2-cp315-cp315t-macosx_10_15_universal2.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “cocoa from python”
- pyobjc-corePyObjC-core provides the foundational bridge layer that lets Python…
- pyobjcPyObjC bridges Python and Objective-C, enabling you to write…
- pyobjc-framework-ExceptionHandlingProvides Python bindings to macOS's ExceptionHandling framework,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also pyobjc · pyobjc-framework-AppleScriptObjC · pyobjc-framework-SharedWithYouCore · pyobjc-framework-ClassKit · pyobjc-framework-Network · pyobjc-framework-Photos · pyobjc-framework-CoreAudioKit · Cython · rpy2-rinterface · rpy2-robjects