GIT Source Control for FileMaker? Meet DDRparser.
🔍 Intro:
FileMaker has always been a powerful platform for building business apps. But when it comes to understanding how a solution changes over time — which script was edited? what field was added? what layout changed? — things get murky fast.
That’s where DDRparser comes in: a free, command-line tool that splits FileMaker’s Database Design Report (DDR) into clean, searchable, text-based files. Combine it with tools like BBEdit, Sublime, and Git-auto-commit, and suddenly your FileMaker app behaves as a Git-tracked project.
If you are working on huge FileMaker solutions, the more important is to have tracking and searching available. For a huge implementation with lots of tables, layouts and script – The DDR report becomes quite big.
❌ I tested this with a customer solution where the DDR XML export was over 1 GB across four files. No browser could open the HTML version — not Safari, Chrome, or Firefox. Then our new DDRparser tool come to rescue – parsed the whole file in only 18 seconds, and searching become blistering fast.
🛠️ What It Does:
- Parses FileMaker’s DDR (XML version)
- Splits it into folders:
Scripts/,Layouts/,ValueLists/,MenuSets/, etc.- Each item is a readable
.txtfile — ready for search, comparison, or version control - Optional: Automatically creat GIT repo and commit to it for each run. Making it a true version control tool.
- Works beautifully with:
- BBEdit’s Multi-File Search
- BBEdit or Kaleidoscope Find Differences
- Shell tools like
difforgit diff
| Name | Platform | Description | Download | Docs | More |
|---|---|---|---|---|---|
| DDRparser 1.4.1 | Mac (Intel+Arm) | FileMaker tool for GIT integration, searching, and translations. | Download | Documentation | |
![]() DDRparser 1.4.1 – Split FileMaker DDR (Database Design Report) XML or “Save a copy as XML” files into readable, multilingual filesDDRparser is a free, fast, and fully native command-line tool that parses FileMaker Database Design Report (DDR) XML exports — or “Save a copy as XML” exports — and splits them into structured, readable text files. Perfect for developers who want to search, diff, and version-control FileMaker solutions using Git and modern tools. This release also demonstrates the new translation concept built with DDRparser 1.4.1 and ACF-plugin 1.7.6.4.(or higher)
✨ Key Features💡 Handles even multi-gigabyte DDR files in seconds 💡 Includes translation workflow tools 🔍 Makes your solution searchable with BBEdit, VS Code, or any text editor 🗂️ Extracts Scripts, Layouts, Custom Functions, Menus, Tables, and more 🧼 Optional cleanup removes outdated files 🔁 Git auto-commit support for effortless version control 🧰 Includes an optional FileMaker GUI tool powered by the ACF plugin ✅ Free to use — no license required, no plugin dependencies for the core tool 🍎 Runs on macOS 10.13+ (Intel + Apple Silicon) Built by Ole Kristian Ek Hornnes @ HORNEKS ANS 👉 Visit the blog article for full details. SHA-256: 5e48954dd9c381b43c519daf20ce91b28ccd35f153a933861abec6574ffa395cThis checksum is automatically verified at download time. | |||||
| DDRparser 1.4.1 | Windows | FileMaker tool for GIT integration, searching, and translations. | Download | Documentation | |
![]() DDRparser 1.4.1 – Split FileMaker DDR (Database Design Report) XML or “Save a copy as XML” files into readable, multilingual filesDDRparser is a free, fast, and fully native command-line tool that parses FileMaker Database Design Report (DDR) XML exports — or “Save a copy as XML” exports — and splits them into structured, readable text files. Perfect for developers who want to search, diff, and version-control FileMaker solutions using Git and modern tools. This release also demonstrates the new translation concept built with DDRparser 1.4.1 and ACF-plugin 1.7.6.4.(or higher)
✨ Key Features💡 Handles even multi-gigabyte DDR files in seconds 💡 Includes translation workflow tools 🔍 Makes your solution searchable with BBEdit, VS Code, or any text editor 🗂️ Extracts Scripts, Layouts, Custom Functions, Menus, Tables, and more 🧼 Optional cleanup removes outdated files 🔁 Git auto-commit support for effortless version control 🧰 Includes an optional FileMaker GUI tool powered by the ACF plugin ✅ Free to use — no license required, no plugin dependencies for the core tool 🍎 Runs on macOS 10.13+ (Intel + Apple Silicon) Built by Ole Kristian Ek Hornnes @ HORNEKS ANS 👉 Visit the blog article for full details. SHA-256: 13baeb05e3f30c5d92fba71e8bec05e8d3b5e84d45c0b30f7a4954bc6fba673eThis checksum is automatically verified at download time. | |||||
🎁 What’s Included
- MacOS: DDRparser CLI tool for macOS (signed, notarized)
- Windows: DDRparser CLI tool for Windows (Code-signed)
- A free license for all users
- Optional GUI FileMaker APP to select paths and set options. Generates command to paste into a terminal window.
Read MeandLicenseincluded
📸 Screenshots:
FileMaker DDR export dialog (showing “XML” selected)
Note this version is not yet compatible with “Save a Copy as XML…”, but we plan for that in the next major version. This version uses DDR XML format.


The GUI tool

- Terminal running The
DDRparser command with parameters.

- The Folder structure after parsing

📁 Folder and File Structure – What’s Inside?
If your solution contains more than one FileMaker file, the output will include a folder for each file. These are named after each FileMaker file (without the .fmp12 extension). For example, in the screenshot above, Kimai is one such file, and underneath it are subfolders grouped by object type.
Here’s what each folder contains:
🧩 CustomMenus
Contains one file per custom menu. Each file lists the defined menu items, including associated actions and relevant parameters.
🧾 MenuSets
One file per menu set. A menu set is a collection of CustomMenus, so all related menus are included here. At the bottom of each file is a list of layouts that use the menu set.
🔣 CustomFunctions
One file per custom function, named after the function itself. Each file includes the function name, parameters, and full source code.
📜 Scripts
One file for each script in the solution. At the top of each file is a comment block with the script name and its group. All script steps are shown, with proper indentation for nested If, Loop, etc. Any calculations are shown in full for easy inspection.
📋 ValueLists
A single file: ValueLists.txt. This file lists all value lists in the solution, their contents, and relevant options or configurations.
🧱 Layouts
One file per layout. These files list all layout objects and their properties. The files are not intended to replicate the visual layout (use FileMaker’s layout editor for that), but they are extremely useful when searching for field names, text strings, or script references using multi-file search tools.
🔗 Relationships
A single file that lists all relationships in the graph, including source and destination tables, base table names, and join predicates. Especially useful for large, complex relationship graphs — instead of scrolling and zooming in FileMaker, you can search directly by name.
📂 BaseTables
One file per base table. Each file lists the fields within the table along with their properties. Calculated fields include the full calculation formula. It’s a great way to understand the data model and see what dependencies and calculations exist.
More Screenshots – Using the parser result
- BBEdit with a multi-file search (e.g. searching for “ChatResult” across scripts)



- BBEdit’s “Find Differences” between two exported DDR snapshots

- GIT (Using GitHub GUI tool):


📂 Where to Get It:
✅ Use the download boxes near the top of the article for Mac or Windows version.
❤️ Why It’s Free:
This is a personal contribution from me, Ole Kristian Ek Hornnes at HORNEKS ANS, to the FileMaker community. It’s fast, native, and requires no plugins, no licensing, and no server to run.
The accompanying DDR-GUI FileMaker app uses the ACF plugin only for selecting files and folders. No ACF scripts are used—just built-in Plugin functions. A free license for the plugin is included, valid until September 1, 2025. After that, the plugin will still work for 30 minutes per FileMaker session, which is more than enough for this tool.
✍️ Closing:
If you’re working in FileMaker professionally, this will save you time, help with QA, and make team collaboration more transparent.
Feel free to share, send feedback, or contribute improvement ideas.
— Ole Kristian Ek Hornnes


