A small portable C library to handle Apple Property List files in binary or XML format.


The project provides an interface to read and write plist files in binary or XML format alongside a command-line utility named plistutil.

Some key features are:

  • Formats: Supports binary and XML format
  • Utility: Provides a plistutil utility for the command-line
  • Python: Provides Cython based bindings for Python
  • Tested: Uses fuzzing and data compliance tests
  • Efficient: Lean library with performance and resources in mind

Installation / Getting started

Debian / Ubuntu Linux

First install all required dependencies and build tools:

sudo apt-get install \
	build-essential \
	checkinstall \
	git \
	autoconf \
	automake \

If you want to optionally build the documentation or Python bindings use:

sudo apt-get install \
	doxygen \

Then clone the actual project repository:

git clone
cd libplist

Now you can build and install it:

sudo make install


Then simply run:

plistutil -i foobar.plist -o output.plist

This converts the foobar.plist file to the opposite format, e.g. binary to XML or vice versa, and outputs it to the output.plist file.

Please consult the usage information or manual page for a full documentation of available command line options:

plistutil --help
man plistutil



This project is licensed under the GNU Lesser General Public License v2.1, also included in the repository in the COPYING file.


Apple, iPhone, iPad, iPod, iPod Touch, Apple TV, Apple Watch, Mac, iOS, iPadOS, tvOS, watchOS, and macOS are trademarks of Apple Inc.

This project is an independent software library and has not been authorized, sponsored, or otherwise approved by Apple Inc.

README Updated on: 2020-06-12