Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Apps
  3. create-dmg

create-dmg

MITJavaScriptv8.1.0

A CLI tool to create polished DMG disk images for macOS app distribution in seconds.

GitHubGitHub
5.3k stars223 forks0 contributors

What is create-dmg?

create-dmg is a Node.js command-line tool that generates polished DMG (Apple Disk Image) files for distributing macOS applications. It solves the problem of manually creating visually appealing and properly formatted DMG files, which is often a cumbersome step in macOS app distribution outside the Mac App Store.

Target Audience

macOS app developers who need to distribute their applications as DMG files, particularly those looking for an automated, reliable alternative to manual scripting or paid GUI tools.

Value Proposition

Developers choose create-dmg for its simplicity, speed, and opinionated defaults that produce professional-looking DMGs without requiring design or scripting expertise, all while supporting code signing and license agreements.

Overview

Create a good-looking DMG for your macOS app in seconds

Use Cases

Best For

  • Automating DMG creation for macOS app releases
  • Generating code-signed DMGs for distribution
  • Adding software license agreements to DMG files
  • Simplifying DMG creation in CI/CD pipelines
  • Creating polished DMGs without manual design work
  • Distributing macOS apps outside the Mac App Store

Not Ideal For

  • Developers requiring highly customized DMG visuals or complex layouts beyond the tool's opinionated defaults
  • Projects distributing apps through the Mac App Store, as create-dmg is designed for external DMG distribution only
  • Teams without Node.js in their workflow, as it requires Node.js 20 or later installed globally

Pros & Cons

Pros

Automated Professional DMGs

Creates polished DMGs with proper window positioning and app placement from a single command, eliminating manual design work as shown in the screenshot and description.

Integrated Code Signing

Automatically attempts to code sign the DMG for security, with a --no-code-sign flag to skip if needed, simplifying distribution workflows.

License Agreement Support

Seamlessly adds software license agreements from license.txt or license.rtf files in the working directory, requiring user agreement before mounting.

Simple Command-Line Interface

Offers a straightforward CLI with sensible defaults and flags like --overwrite, making it easy to integrate into scripts and CI/CD pipelines.

Cons

Limited Customization

The tool is intentionally opinionated and simple, with the author stating no interest in adding many options, restricting advanced visual or layout tweaks.

No Notarization Automation

While it handles code signing, notarization is a separate manual step as highlighted in the README, adding complexity for secure distribution.

Node.js Dependency

Requires Node.js 20 or later installed globally, which can be a barrier for developers not already using Node.js in their macOS app workflow.

Frequently Asked Questions

Quick Stats

Stars5,271
Forks223
Contributors0
Open Issues0
Last commit1 month ago
CreatedSince 2017

Tags

#cli-app#developer-tools#cli-tool#app#nodejs#code-signing#cli#javascript#automation#macos

Built With

N
Node.js

Included in

Apps101.5k
Auto-fetched 1 day ago

Related Projects

React Native macOSReact Native macOS

[deprecated in favor of https://microsoft.github.io/react-native-windows/] React Native for macOS is an experimental fork for writing desktop apps using Cocoa

Stars11,204
Forks420
Last commit2 years ago
ElectrinoElectrino

Desktop runtime for apps built on web technologies, using the system's own web browser engine

Stars4,400
Forks97
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub