Plist Viewer & Converter

Open any .plist file online - binary, XML or old-style - and read it as a clean tree of keys and values. See what is inside an app's Info.plist, unpack NSKeyedArchiver data and convert plist to JSON, YAML, XML or binary. Plain XML files open better in the XML Viewer, and JSON in the JSON Viewer.

Paste plist text instead
XML, old-style, JSON or Base64 - Ctrl + Enter
Try a sample
Binary & XML To JSON / YAML No upload

How to open a plist file online

  1. Open your plist. Drop a .plist, .strings or keyed archive file onto this page, click to browse, paste XML, JSON or Base64 text, or try a sample. Binary, XML and old-style plists are detected automatically.
  2. Browse the tree. Expand dictionaries and arrays, see the type of every value, and click any item to read its full value and copy its key path. App manifests also get an Info.plist summary.
  3. Search and decode. Search keys and values, open nested plists stored in data fields, and switch keyed archives to the Unarchived view to read NSKeyedArchiver objects as plain values.
  4. Convert and download. Switch the code view to XML, JSON or YAML, then download the plist as XML, binary, JSON or YAML - for example to turn a binary plist into readable XML.

Keyboard shortcuts

  • Search keys and valuesCtrl + F
  • Next / previous matchEnter / Shift + Enter
  • Move in the treeUp / Down
  • Collapse / expandLeft / Right

Plist viewer features

Every plist format

Binary bplist00, XML, old-style OpenStep, .strings files in UTF-8 or UTF-16, and JSON.

A real tree

Types, item counts, expand and collapse, smooth even with hundreds of thousands of values.

Info.plist summary

App name, bundle ID, version, minimum OS, URL schemes and every permission prompt - straight from an .ipa too.

NSKeyedArchiver

UID links resolved into readable objects with class names, with the raw archive one click away.

Search and paths

Find any key or value and copy its path in dot or PlistBuddy style for scripts.

Convert both ways

XML to binary, binary to XML, plus JSON and YAML that handle dates and data properly.

Nested plists

Data values that hold another plist open in place, with a breadcrumb back.

100% private

Preferences and archives stay on your device - nothing is uploaded.

What is a plist file?

A plist, or property list, is how Apple software stores settings and structured data.

It holds dictionaries, arrays, text, numbers, dates and raw data, nested as deep as needed.

Every Mac and iPhone app carries an Info.plist with its name, version and permissions. Preferences live in ~/Library/Preferences as plists, and so do launch agents, configuration profiles, Safari bookmarks and many backup files.

  • Binary plist - starts with bplist00; compact and fast, but unreadable in a text editor. Most preference files use it.
  • XML plist - readable XML with <key>, <string> and <dict> tags; Xcode writes Info.plist this way.
  • Old-style (OpenStep) plist - { key = value; } text from NeXTSTEP days, still used by .strings localisation files.

App icons named in Info.plist (CFBundleIconFile) are .icns files - look inside them with the ICNS Viewer or make one with PNG to ICNS.

How to open a plist file on Windows, Mac, iPhone and Android

Plists are Apple files, but you can read them anywhere.

This page works on every device with a modern browser.

Windows

Windows has no plist app, and Notepad shows binary plists as gibberish. Drop the file here in Edge or Chrome, then download it as XML or JSON if you need to edit it in Notepad or VS Code.

Mac

Xcode opens plists in its property list editor. In Terminal, plutil -p file.plist prints any plist readably and plutil -convert xml1 file.plist rewrites a binary plist as XML in place. For a quick look without tools, drop it here.

iPhone and iPad

The Files app cannot show what is inside a plist. Open this page in Safari, tap the drop area and choose the file - or an .ipa - from Files or iCloud Drive.

Android

Open this page in Chrome, tap the drop area and pick the plist from your downloads. Search, the tree and every export work on a phone.

How to convert plist to JSON, XML or binary

Open the plist and pick a format under Download as.

The big button converts to the other plist format: binary becomes XML, XML becomes binary.

  • Plist to JSON - dates turn into ISO 8601 text, data into Base64 and archive UIDs into {"CF$UID": n}. Apple's plutil -convert json stops with an error on dates and data; this converter does not. Check the result in the JSON Viewer.
  • Plist to YAML - readable and diff-friendly; data is written as !!binary and dates as YAML timestamps. Open it in the YAML Viewer.
  • Binary plist to XML - the standard Apple DTD format that Xcode, plutil and the XML Viewer read.
  • XML plist to binary - smaller and faster to load; values that appear many times are stored once.
  • JSON to plist - paste JSON or open a .json file and download it as an XML or binary plist.

Binary vs XML vs old-style plist vs JSON

All four can hold the same settings.

They differ in size, readability and which value types survive.

FormatStarts withReadable in a text editorDates and dataTypical use
Binary plistbplist00NoYes, plus UIDs and setsPreferences, archives, caches
XML plist<?xml ... <plist>YesYes (Base64 data)Info.plist, entitlements, profiles
Old-style plist{ or "key" =YesData only, no dates.strings files, legacy configs
JSON{ or [YesNo - stored as textWeb APIs, sharing with non-Apple tools

Curious about the raw bytes? Open a binary plist in the Hex Viewer to see the bplist00 header, the object table and the trailer.

Reading NSKeyedArchiver files

Many apps save objects with NSKeyedArchiver.

The result is a binary plist that looks like a puzzle at first.

Instead of nesting values, an archive keeps every object in one flat $objects array and links them with UID numbers, starting from $top. The Unarchived view follows those links for you: strings, numbers, dates, URLs, UUIDs, arrays, sets and dictionaries come back as plain values, and custom objects keep their class name.

Objects that point back to themselves - like a layer that knows its document - are shown as a circular reference instead of looping forever.

Common plist problems

"The data couldn't be read because it isn't in the correct format"

Xcode and macOS show this for a plist with a syntax error. Open the file here: the error names the line and column, like an unclosed <string> or a missing </dict>.

Strange characters in Notepad

That is a binary plist, not a damaged file. It opens here as a tree; download it as XML to edit it in a text editor.

"The binary plist is damaged"

The offset table at the end of a binary plist points to every object, so a file cut off during copying cannot be read. Copy it again from the original device or backup.

My plist is inside an app or archive

Drop the .ipa and its Info.plist opens directly. For other archives, open them in the ZIP Viewer, save the plist and drop it here - or browse all file viewers.

Frequently Asked Questions

Drop the .plist file onto this page or click to browse. It opens as a tree of keys and values, whether it is a binary plist, an XML plist or an old-style text plist.

It works on Windows, Mac, Linux, iPhone and Android with nothing to install.

Yes. Windows has no plist app, and Notepad shows binary plists as garbled characters.

Open the file here in Edge, Chrome or Firefox and you get the readable tree right away, plus a download as XML or JSON that any Windows editor can open.

Open the plist, switch the code view to JSON and press Download, or Copy to paste it somewhere.

Dates become ISO 8601 text, data becomes Base64 and archive UIDs become {"CF$UID": n} objects, so even plists that plutil cannot convert to JSON work.

Open the binary plist and press XML plist under Download as. The result is the standard Apple XML format that Xcode, plutil and text editors read.

It works the other way round too: open an XML plist and choose Binary plist to get a compact bplist00 file.

It is the compact binary form of an Apple property list. The file starts with the text bplist00, stores each value once in an object table and ends with an offset table.

That makes it fast for apps but unreadable in a text editor. macOS and iOS save most preference files this way.

Open it here and the viewer switches to the Unarchived view. Archives store every object in a flat $objects list linked by UID numbers.

The viewer follows those links and rebuilds the strings, numbers, dates, arrays, dictionaries and custom objects with their class names. Raw shows the archive exactly as stored.

Drop the .ipa file onto this page. An IPA is a ZIP archive, and the viewer finds Payload/App.app/Info.plist inside it.

It opens with a summary of the app name, bundle ID, version, minimum iOS version, URL schemes and the permissions the app asks for.

No. The file is read by your own browser and never leaves your device, which matters for preference files and archives that can hold account names, paths and tokens.

Close the tab and it is gone.

Guides & Tutorials

All 14 guides
Guide How to Tell What Format an Image File Is (5 Easy Ways) Read the guide Guide How to Open ZIP, RAR, 7Z & TAR.GZ Files Online (Without Installing Anything) Read the guide Comparison PNG vs JPG: Which Image Format Should You Actually Use? Read the guide