Development happens at github: bug tracker. Feel free to submit bug reports or pull requests. Attaching an erroneous PSD file makes the debugging process faster. Such PSD file might be added to the test suite.

The license is MIT.

Package design

The package consists of two major subpackages:

  1. psd_tools.psd: subpackage that reads/writes low-level binary
    structure of the PSD/PSB file. The core data structures are built around attrs class that all implement read and write methods. Each data object tries to resemble the structure described in the specification. Although documented, the specification is far from complete and some are even inaccurate. When psd-tools finds unknown data structure, the package keeps such data as bytes in the parsed result.
  1. psd_tools.api: User-facing API that implements various
    easy-to-use methods that manipulate low-level psd_tools.psd data structures.


In order to run tests, make sure PIL/Pillow is built with LittleCMS or LittleCMS2 support, install tox and type:


from the source checkout. Or, it is a good idea to install and run detox for parallel execution:



Install Sphinx to generate documents:

pip install sphinx sphinx_rtd_theme

Once installed, use Makefile:

make docs


Great thanks to all the contributors.