Delete all contact images via AppleScript

One of the more frustrating features in iOS/iPadOS/macOS is the automatic insertion of unwanted photos and images into contact records, made even worse with the introduction of Contact Posters. There is currently no way to disable this anti-feature, and manually deleting images becomes an endless game of whack-a-mole. The situation is especially vexing in macOS Tahoe, where Contacts already suffers from extremely low information density.

These two simple scripts were tested in Tahoe on a local contacts database (back up before running, proceed at your own risk (and joy), etc.); the first lists contacts with images attached and the second deletes images from contacts:

1. List contacts containing images

tell application "Contacts"
    set contactsWithPhotos to {}
    set allPeople to every person
    
    repeat with aPerson in allPeople
        if image of aPerson is not missing value then
            set end of contactsWithPhotos to name of aPerson
        end if
    end repeat
    
    return contactsWithPhotos
end tell

2. Delete images from contacts

tell application "Contacts"
    set contactsWithPhotosRemoved to {}
    set allPeople to every person
    
    repeat with aPerson in allPeople
        if image of aPerson is not missing value then
            set image of aPerson to missing value
            set end of contactsWithPhotosRemoved to name of aPerson
        end if
    end repeat
    save
    
    return contactsWithPhotosRemoved
end tell

This trimmed a ~2,800‑entry Contacts database from 32.7MB to 24.3MB, restoring a fleeting sense of order.

❧ 2025-11-25