A cross-platform utility to automatically open .indd files with the correct version of Adobe InDesign.
When you have multiple versions of Adobe InDesign installed (e.g., 2023, 2024, and 2025), Windows and macOS will only set one of them as the default application for .indd files.
This means if InDesign 2025 is your default, double-clicking a file saved in 2023 will try to open it in 2025. This forces an unnecessary conversion, may update file formats, and can cause compatibility warnings.
InDesign Launcher acts as a lightweight dispatcher. When you open a file, it performs three steps:
-
Reads the file header to detect the specific version required.
-
Scans the system to identify installed InDesign versions.
-
Launches the correct version immediately.
It handles the complexity invisibly, ensuring you always work in the correct environment.
-
Cross-Platform: Works on both Windows and macOS.
-
Version Detection: Reads the binary header of
.inddfiles to detect the exact version they were saved with (e.g., CS6, CC 2019, 2024, etc.). -
System Scan: Automatically finds all installed InDesign versions on your system.
-
Filters Unwanted Apps: Ignores special versions like "Server", "Debug", "Prerelease", and "Beta".
-
Smart Selection:
-
It will always try to launch the oldest compatible version.
-
Example: A file saved in 2023 will be opened by InDesign 2023 if you have it. If not, it will try 2024, then 2025.
-
-
Intelligent Fallback:
- If you try to open a 2025 file but only have 2024 installed, the launcher will launch 2024 (your newest version) and let InDesign display its own "cannot open a newer file" error.
-
"Polite" Integration:
-
On Windows, it adds itself to the "Open With..." menu, letting you choose to set it as the default.
-
On macOS, it guides you through a simple, one-time manual setup.
-
You can get the tool in two ways:
-
Go to the Releases page of this project.
-
Download the latest
indesign-launcher.exe(for Windows) orindesign-launcher(for macOS). -
Place this file in a permanent, convenient location, for example:
-
Windows:
C:\Tools\ -
macOS:
/usr/local/bin/(or your user's~/binfolder)
-
-
On macOS, you must make the file executable:
Bash
chmod +x /path/to/indesign-launcher
You must have the Go toolchain (v1.20 or later) installed.
Bash
# 1. Clone the repository
git clone https://github.com/your-repo/indesign-launcher.git
# 2. Navigate into the directory
cd indesign-launcher
# 3. Build the binary
go build
A utility to automatically open Adobe InDesign (.indd) files with the correct version of the application.
Installing multiple versions of Adobe InDesign (e.g., 2023, 2024, and 2025) creates a conflict. Operating systems allow only one default application for a file type.
If InDesign 2025 is your default, opening a file saved in 2023 forces an unnecessary conversion. This alters the file format and triggers compatibility warnings.
InDesign Launcher acts as a lightweight dispatcher. When you open a file, it performs three steps:
-
Reads the file header to detect the specific version required.
-
Scans the system to identify installed InDesign versions.
-
Launches the correct version immediately.
It handles the complexity invisibly, ensuring you always work in the correct environment.
-
Cross-Platform: Native support for both Windows and macOS.
-
Binary Detection: Parses the
.inddbinary header to detect the exact creation version (CS6 through CC 2025+). -
Smart Fallback: If the exact version is missing, it launches the oldest compatible version to minimize file conversion issues.
-
Clean Integration:
-
Windows: Registers as a valid "Open With" handler.
-
macOS: Generates a native
.appbundle for standard Finder integration.
-
-
User-Level Operation: Requires no administrative privileges.
-
Navigate to the Releases page.
-
Download the executable for your system:
-
Windows:
indesign-launcher.exe -
macOS:
indesign-launcher
-
-
Move the file to a permanent location (e.g.,
C:\Tools\on Windows or/usr/local/bin/on macOS).
Ensure the Go toolchain (v1.20+) is installed.
Bash
# Clone and build
git clone https://github.com/krommatine/indesign-launcher.git
cd indesign-launcher
go build
The launcher must be registered with the operating system to function as a default handler.
-
Open Command Prompt or PowerShell.
-
Navigate to the tool's directory.
-
Run the registration flag:
PowerShell
.\indesign-launcher.exe --register -
Set as Default:
-
Right-click any
.inddfile. -
Select Open with > Choose another app.
-
Select InDesign Launcher.
-
Check "Always use this app to open .indd files".
-
Previous versions required AppleScript. The tool now generates a native application bundle.
-
Open Terminal and navigate to the directory containing the
indesign-launcherbinary. -
Run the registration command:
Bash
chmod +x indesign-launcher ./indesign-launcher --register -
The tool will create a valid
indesign-launcher.appin your current directory (or Desktop). -
Install the App:
- Move
indesign-launcher.appto your/Applicationsfolder.
- Move
-
Set as Default:
-
Right-click any
.inddfile in Finder. -
Select Get Info.
-
Under "Open with:", select InDesign Launcher.
-
Click Change All....
-
Note on Gatekeeper: Because this tool is open-source and not notarized by Apple, you may need to bypass security checks on the first run.
-
Option A: Right-click the app and select Open, then confirm in the dialog.
-
Option B: Remove the quarantine attribute via Terminal:
Bash
xattr -d com.apple.quarantine /Applications/indesign-launcher.app
After you've completed the one-time setup, you're done!
Just double-click any .indd file on your system. The launcher will run invisibly, find the correct InDesign, and open your file in a fraction of a second.
This project is open-source and contributions are highly welcome! Here are some details to help you get started.
The launcher's logic is split into three phases:
-
Parse Flags: The
main()function first checks for--registeror--unregisterflags and routes to the appropriate OS-specific functions. -
Read File Header (if opening): If no flags are present, the
openFile()function callsgetInDesignVersion().-
This reads the first 37 bytes of the
.inddfile. -
It validates bytes 0-15 against a "magic number."
-
It checks byte 24 (index 24) to determine the endianness (byte order).
-
It reads bytes 29-32 (a 4-byte integer) to get the raw major version (e.g.,
19).
-
-
Discover & Decide:
openFile()then callsfindAllInstalledVersions().-
This OS-specific function (see below) queries the system to find all installed InDesign applications.
-
It returns a map of
majorVersion -> appPath. -
The
selectVersionToLaunch()function compares the file's needed version to the map of installed versions and selects the best one.
-
-
Launch: The chosen
appPathand thefilePathare passed tolaunchApp(), which executes the application.
The project is structured using Go's build constraints to keep the logic for each OS separate.
-
main.go: The main entry point. Handles flag parsing, high-level logic, and file-opening orchestration. -
versions.go: A "database" file holding theversionMap(e.g.,19->"2024"),reverseVersionMap, and theignoreKeywordslist. -
parse_file.go: ContainsgetInDesignVersion(), the cross-platform logic for reading and parsing the.inddfile header. -
find_app_windows.go: (//go:build windows) Windows-only code.findAllInstalledVersions()First searches the default paths for InDesign installations on disk. If a version is not found, it then tries to scanHKEY_CLASSES_ROOTfor Adobe'sInDesign.Application.XX\CLSIDkeys to findLocalServer32paths. For old version of InDesign this might fail as the registry paths and setup has changed over time. -
find_app_darwin.go: (//go:build darwin) macOS-only code.findAllInstalledVersions()scans the/Applicationsfolder forAdobe InDesign *bundles. -
register_win.go: (//go:build windows) Windows-only code for the--registerand--unregistercommands. Modifies theHKEY_CURRENT_USERregistry, adding a new ProgID and an entry inOpenWithProgids. -
register_mac.go: (//go:build darwin) macOS-only code for the registration flags.
You must have the Go toolchain installed.
Bash
# Build for your current system
go build
# --- Cross-Compiling ---
# Build for Windows (from Mac/Linux)
# 64-bit:
GOOS=windows GOARCH=amd64 go build -ldflags="-H=windowsgui" -o indesign-launcher.exe
# Build for macOS (from Windows/Linux)
# Apple Silicon:
env GOOS=darwin GOARCH=arm64 go build -o indesign-launcher
# Intel:
envGOOS=darwin GOARCH=amd64 go build -o indesign-launcher
- Handle more File Types:
.indband.indtfiles are also Adobe InDesign formats. The launcher could be extended to support these as well.
This project is open-source and available under the MIT License.
Copyright (c) 2025 Vlad Vladila (Krommatine Systems: https://krommatine.eu)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOTS LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.