idmlkit
The AI-native toolkit for Adobe InDesign files (IDML) — parse, summarize, and safely write back. No InDesign required.
Works directly on .idml files (InDesign's open, XML-based interchange format), so it runs anywhere Node.js runs — servers, CI pipelines, Linux — with nothing from Adobe installed.
Design philosophy: the AI never touches the XML
LLMs are great at deciding what should change in a document, and terrible at hand-editing thousands of lines of layout XML without breaking it. So idmlkit splits the work:
- Deterministic code parses the package and produces a compact, LLM-friendly summary (pages, frames, stories as indexed text runs, image links, styles).
- Write-back is surgical: replacing a text run or relinking an image rewrites only that one element via targeted string surgery. Everything else — geometry, styles, the XML formatting itself — is preserved byte-for-byte (enforced by tests).
Install
npm install idmlkit
Library
import { IdmlDocument, summarizeDocument, setStoryRunText } from "idmlkit";
const doc = await IdmlDocument.open("catalog.idml");
console.log(summarizeDocument(doc)); // LLM-friendly JSON
setStoryRunText(doc, "u123", 0, "New headline");
await doc.save("catalog-updated.idml");
CLI
$ idmlkit summary catalog.idml
Pages: 1 Spreads: 1
Story u123 (11 words, 2 runs): Spring Catalog 2026 Fresh arrivals for the new season…
Image link u202: file:/images/hero.jpg
Paragraph styles: $ID/NormalParagraphStyle, Headline, Body
$ idmlkit set-text catalog.idml u123 0 "Summer Sale 2026" -o out.idml
$ idmlkit relink out.idml u202 "file:/images/summer.jpg"
Use cases
- Database publishing: fill a designed template with product data without opening InDesign once.
- Localization: extract every text run with its styles, translate, write back safely.
- Agent workflows: pair with
idml-mcpto let Claude or any MCP-capable agent read and edit layouts.
License
MIT. Not affiliated with or endorsed by Adobe. "Adobe" and "InDesign" are trademarks of Adobe Inc., used here only to describe compatibility.