A curated collection of free InDesign scripts updated for Adobe InDesign 2024-2026+ compatibility.
This project maintains compatibility fixes for popular InDesign scripts that would otherwise crash on modern versions of Adobe InDesign.
Many excellent InDesign scripts use the exit() function which causes the following error in InDesign 2024 and later:
JavaScript Error 89867: default engine cannot be deleted
This collection fixes that issue and provides a centralized, maintained repository of working scripts.
This project is made possible by:
- Kids on the Yard - Homeschool Coaching and Educational Resources
- KOTY Mart - Educational Materials and Publishing
Their support enables the time and resources needed to maintain these scripts for the InDesign community.
- Download the latest release from the Releases page
- Unzip the downloaded file
- Copy the
scriptsfolder contents to your InDesign Scripts Panel folder:
macOS:
~/Library/Preferences/Adobe InDesign/Version [X]/en_US/Scripts/Scripts Panel/
Windows:
C:\Users\[Username]\AppData\Roaming\Adobe\InDesign\Version [X]\en_US\Scripts\Scripts Panel\
Replace [X] with your InDesign version number (e.g., 21.0 for InDesign 2026).
- Clone this repository:
git clone https://github.com/101sam/indesign-scripts-2026.git
- Copy the contents of the
scriptsfolder to your InDesign Scripts Panel folder
- Open Adobe InDesign
- Go to Window > Utilities > Scripts
- Expand the User folder
- You should see the organized script folders
- Open the Scripts panel: Window > Utilities > Scripts
- Navigate to the script you want to run
- Double-click to execute
| Folder | Description |
|---|---|
01-Layout-Guides |
Alignment, guides, margins |
02-Text-Frames |
Frame threading, splitting |
03-Text-Formatting |
Text manipulation, formatting |
04-Tables-Charts |
Table sorting, formatting |
05-Images |
Image management |
06-Color |
Color conversion, swatches |
07-Styles |
Style management |
08-Footnotes-Endnotes |
Notes and references |
09-Variables-Hyperlinks |
Variables and links |
10-Sort |
Sorting utilities |
11-Index |
Index generation |
12-Find-Replace-GREP |
Search and GREP tools |
13-Import-Export |
File import/export |
14-Fonts |
Font management |
15-Book |
Book panel operations |
16-Utilities |
General utilities |
| Script | Description | Original Author |
|---|---|---|
compose.jsx |
Creates diacritics shortcuts | Peter Kahrel |
missing_glyphs.jsx |
Lists/fixes missing glyphs | Peter Kahrel |
price_adjuster.jsx |
Adjusts prices and formats | Peter Kahrel |
swap_thousands_decimals.jsx |
Swaps number separators | Peter Kahrel |
| Script | Description | Original Author |
|---|---|---|
tablesort.jsx |
Sorts table contents | Peter Kahrel |
| Script | Description | Original Author |
|---|---|---|
unembed_images.jsx |
Extracts embedded images | Peter Kahrel |
| Script | Description | Original Author |
|---|---|---|
clearOverrides.jsx |
Clears style overrides | Grefel |
| Script | Description | Original Author |
|---|---|---|
dynamic_endnotes.jsx |
Dynamic endnote conversion | Peter Kahrel |
endnotes.jsx |
Footnote to endnote conversion | Grefel |
foot_to_column.jsx |
Footnotes in columns | Peter Kahrel |
foot_to_endnote.jsx |
Converts footnotes to endnotes | Peter Kahrel |
sidenotes.jsx |
Dynamic side notes | Peter Kahrel |
| Script | Description | Original Author |
|---|---|---|
createHyperlinks.jsx |
Auto-creates hyperlinks from URLs | Grefel |
variables.jsx |
Text variable management | Peter Kahrel |
| Script | Description | Original Author |
|---|---|---|
sort.jsx |
Advanced paragraph sorting | Peter Kahrel |
sort_via_index.jsx |
Language-aware sorting | Peter Kahrel |
| Script | Description | Original Author |
|---|---|---|
index_charstyles.jsx |
Index from character styles | Peter Kahrel |
index_independent.jsx |
Index from word lists | Peter Kahrel |
index_pagerefs_from_topics.jsx |
Page references for index | Peter Kahrel |
| Script | Description | Original Author |
|---|---|---|
grep_editor.jsx |
GREP editing interface | Peter Kahrel |
grep_query_manager.jsx |
GREP query management | Peter Kahrel |
Migrate_GREP_Styles.jsx |
Transfer GREP styles | Rick Gordon |
| Script | Description | Original Author |
|---|---|---|
batch_convert.jsx |
Batch file conversion | Peter Kahrel |
mass-combine.jsx |
Merge InDesign documents | Simon Wiscombe |
MultiPageImporter.jsx |
Import multi-page PDFs (v2.7.0) | Scott Zanelli, Mike Edel |
pdf_individuals.jsx |
Export chapters as PDFs | Peter Kahrel |
press2id.jsx |
WordPress to InDesign | Grefel |
| Script | Description | Original Author |
|---|---|---|
addScriptFolderToMenu.jsx |
Add scripts to menu | Grefel |
runscript.jsx |
Script launcher with search | Peter Kahrel |
All scripts in this collection have been updated with the following fix:
Before (causes crash in InDesign 2024+):
exit();After (compatible with all versions):
return;This change prevents the "JavaScript Error 89867: default engine cannot be deleted" error.
| InDesign Version | Status |
|---|---|
| CC 2024 (v19.x) | Tested |
| CC 2025 (v20.x) | Tested |
| CC 2026 (v21.x) | Tested |
| Earlier versions | Should work |
- Go to Issues
- Click New Issue
- Select the appropriate template:
- Bug Report - Script not working
- Compatibility Issue - InDesign version problem
- Feature Request - Suggest improvements
- Provide:
- Script name
- InDesign version
- Operating system
- Steps to reproduce
- Error message (if any)
Check open issues for current known problems and workarounds.
We welcome contributions. Please read CONTRIBUTING.md for guidelines.
- Report bugs
- Submit fixes
- Add new scripts (with proper attribution)
- Improve documentation
- Test on different InDesign versions
Scripts in this collection retain their original licenses. Most are released under GPL v2 or similar open-source licenses. See LICENSE for details.
See CREDITS.md for full attribution to original script authors.
- Original Scripts Reference - Comprehensive list of InDesign scripts
- Peter Kahrel's Scripts - Many scripts from this collection
- Adobe InDesign Scripting Guide
See CHANGELOG.md for version history and changes.
Maintained by 101sam
Sponsored by Kids on the Yard and KOTY Mart