{"library":"pyobjc-framework-callkit","title":"PyObjC Framework CallKit","description":"PyObjC Framework CallKit provides Python wrappers for Apple's CallKit framework on macOS. It allows Python applications to interact with the system's call services, manage incoming and outgoing calls, and integrate with VoIP functionality. PyObjC frameworks typically follow the release cadence of macOS SDK updates, with frequent minor and patch releases to support new features and address compatibility.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pyobjc-framework-callkit"],"cli":null},"imports":["from CallKit import *","from CallKit import CXCallController"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import objc\nfrom CallKit import CXCallController\n\n# Instantiate a CallKit controller. \n# This action itself is valid, but for a CXCallController to be fully functional\n# and interact with the system, it must be part of a running macOS application\n# with appropriate CallKit entitlements.\ncontroller = CXCallController.alloc().init()\nprint(f\"Created CallKit controller instance: {controller}\")\nprint(f\"Class name: {controller.__class__.__name__}\")\n\n# In a real application, you would use this controller to create and request\n# `CXTransaction` objects containing actions like `CXStartCallAction` or `CXEndCallAction`.\n# Example of how you might start a call (requires full app context and entitlements):\n# import uuid\n# from CallKit import CXTransaction, CXStartCallAction, CXHandle\n# \n# handle = CXHandle.alloc().initWithType_value_(0, \"123-456-7890\") # CXHandleTypePhoneNumber = 0\n# call_uuid = objc.pyobjc_id(uuid.uuid4())\n# start_action = CXStartCallAction.alloc().initWithCallUUID_handle_(call_uuid, handle)\n# start_action.setOutgoing_connectionAddress_hasOutgoingProvider_ttyType_(\n#     True, None, True, 0 # CXTTYTypeNone = 0\n# )\n# transaction = CXTransaction.alloc().initWithActions_([start_action])\n# # controller.requestTransaction_completion_(transaction, lambda error: ...)","lang":"python","description":"This quickstart demonstrates how to import and instantiate a core CallKit class, `CXCallController`. While the instantiation itself is functional, a complete CallKit integration requires a full macOS application with proper entitlements and event loop management. The commented section shows how you would typically initiate a call action.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":null,"pypi_latest":"12.1","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.9,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.9,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.5,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pyobjc-framework-callkit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.5,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}