MainspringGuides › Edit plist files
macOS Guide

How to Edit plist Files on Mac (plutil & More)

Updated July 2026 · 3 min read

Property list files — plists — are where macOS and its apps store settings: preferences, launch agents, app configuration. Most are binary, so they look like garbage in a text editor. The right tools are plutil for inspecting and converting, defaults for changing live preferences, and a backup before you touch anything by hand.

What plists are and where they live

A plist is a structured file of keys and values — booleans, numbers, strings, arrays, dictionaries. The ones you'll care about most sit in ~/Library/Preferences (your per-user app settings, named by domain, like com.apple.dock.plist) and /Library/Preferences (system-wide settings). Launch agents and daemons keep theirs in ~/Library/LaunchAgents, /Library/LaunchAgents, and /Library/LaunchDaemons.

Plists come in two formats: XML (human-readable) and binary (compact, unreadable in a plain editor). macOS reads both interchangeably; nearly all preference files ship as binary. That's why double-clicking one into a text editor shows gibberish — the file isn't corrupt, it's just binary.

View any plist with plutil -p

plutil ships with macOS and pretty-prints any plist, binary or XML, without changing it:

# pretty-print a plist, safe and read-only
plutil -p ~/Library/Preferences/com.apple.dock.plist

# check whether a plist is valid
plutil -lint ~/Library/Preferences/com.apple.dock.plist

For preference files, defaults read com.apple.dock shows the same data — and has the advantage of reading through the system's preference cache, so it always reflects the current values.

Edit live preferences with defaults, not a text editor

Here's the trap: macOS caches preference files through a daemon called cfprefsd. If you hand-edit a plist in ~/Library/Preferences while the owning app is running, the cache doesn't know, and your edit is likely to be ignored or silently overwritten. For preference plists, always go through defaults instead — it updates the cache and the file together:

# change a value the safe way
defaults write com.apple.dock tilesize -int 48
killall Dock

# undo: remove the override
defaults delete com.apple.dock tilesize
killall Dock

This applies on macOS 13 Ventura, 14 Sonoma, and 15 Sequoia alike.

Editing other plists by hand — back up first

For plists that aren't live preferences — a launch agent you're writing, a config file an app asks you to edit — direct editing is fine. Convert binary to XML first, and always keep a copy:

# 1. back up the original
cp ~/Library/LaunchAgents/com.example.task.plist ~/Library/LaunchAgents/com.example.task.plist.bak

# 2. convert binary to readable XML (edits in place)
plutil -convert xml1 ~/Library/LaunchAgents/com.example.task.plist

# 3. edit in any text editor, then validate
plutil -lint ~/Library/LaunchAgents/com.example.task.plist

# undo: restore the backup
cp ~/Library/LaunchAgents/com.example.task.plist.bak ~/Library/LaunchAgents/com.example.task.plist

You can convert back with plutil -convert binary1, but you don't need to — macOS reads XML plists fine. If you have Xcode installed, it opens plists in a structured editor that prevents syntax errors, which beats hand-editing XML; the cfprefsd caveat about live preference files still applies. Never edit plists inside an app's bundle in /Applications — that breaks the app's code signature and macOS may refuse to launch it.

Not sure which plist an app uses? Its preference domain is usually the bundle identifier, which you can read straight from the app itself:

# find an app's preference domain (bundle identifier)
osascript -e 'id of app "Safari"'

# then list what it stores
defaults read com.apple.Safari
No hand-editing required

The plist tweaks worth making — Dock, Finder, keyboard, screenshots — are exactly what Mainspring turns into labelled, reversible toggles. 90+ hidden settings changed the safe way, through the preference system, with undo built in.

Try Mainspring free →

Signed & notarized by Apple · 1-day free trial · $29 once

Learn the defaults side

Since defaults is the right tool for nearly every preference plist, it's worth knowing properly — the type flags, the read-first habit, and the undo. Start with our guide to defaults write on Mac.