Generate license agreements for macOS .dmg files

Usage no npm install needed!

<script type="module">
  import dmgLicense from '';



A TypeScript/JavaScript library and command-line tool for attaching license agreements to macOS .dmg files, which the user must accept before mounting the disk image. Doing this correctly is surprisingly complicated, so this package is here to automate it.

Warning: Attaching license agreements to disk images may become impossible in future versions of macOS. It is done using the hdiutil udifrez command, which is deprecated as of macOS 12 with no apparent replacement. See issue #11 for details.



dmg-license itself is provided under the terms of the MIT license. You can find the text of the MIT license in the LICENSE file.

Command Line Usage

Although this package is mainly intended for use by .dmg-generating tools like node-appdmg, it can also be used by itself from the command line, to attach a license agreement to an existing .dmg file.


You can install this package and use the command-line tool by running npm install --global dmg-license. This will add a dmg-license command to your system.

Alternatively, you can run it without installing, using npx dmg-license. Note that running it this way is relatively slow.

Command Syntax

Usage: dmg-license [options…] json-path dmg-path


Path to a JSON license specification file.
Path to a disk image (`.dmg`) file.


-v, --verbose
Show stack traces for warnings and errors.
-q, --quiet
Don't show warnings at all.
-h, -?, --help
Show help, without doing anything else.
-V, --version
Show version.


API documentation is in the docs/api folder.