Следующий скрипт основан на комментарии Марка Сетчелла и печатает имена приложений и окон (с использованием Python 3.7):
import Quartz
windows = Quartz.CGWindowListCopyWindowInfo(Quartz.kCGWindowListExcludeDesktopElements|Quartz.kCGWindowListOptionOnScreenOnly,Quartz.kCGNullWindowID);
for window in windows:
print(f"{window[Quartz.kCGWindowOwnerName]}: {window.get(Quartz.kCGWindowName, '<no name>')}")
Обратите внимание, что окна могут не иметь имени, поэтому для доступа к имени окна используется метод "get".