Skip to main content

Friday, 4 PM. A client asks for "just one more field" on the detail layout. You know the drill: define the field, copy the label, nudge every object below it, stretch the part… then do it all again on the next layout.

Patchwork lets your AI agent do those clicks for you. Just ask, in your own words, the way you would ask a colleague. Your agent adds the field and places it right where you said, writes scripts, creates value lists and restyles layouts, in a real .fmp12 file. Every change is checked, every change can be undone, and your original file is never touched.

Free and open source. Works with Claude Code, Cursor, Codex and Antigravity.

Watch the 90-second Patchwork intro on YouTube
▶ Watch the 90-second intro on YouTube · Version française

Quick start

Three commands, then you just talk to your agent.

pip install filemaker-patchwork
patchwork doctor          # finds the Claris command-line tools
patchwork init .          # wires this folder for Claude Code, Cursor, Codex and Antigravity

No install with uv: uvx filemaker-patchwork doctor, and uvx filemaker-patchwork mcp as the MCP server command.

Then ask your agent: "Open Invoice.fmp12 and add a Status field to Clients." That's it.

Good to know

  • It changes structure, not records. Fields, scripts, layouts, value lists, themes. For your data, use the Data API or OData.
  • It works on closed files, not hosted ones. Edit a copy, test it, then deploy it as you usually do.
  • It needs the Claris command-line tools (FMUpgradeTool and FMDeveloperTool). They come with the FileMaker Server installer, the free trial works, and no server has to run: install the Claris tools. Patchwork itself has no other dependency.

See it in action

Four real sessions on the free Claris Invoice solution. For each one: what was asked, what the agent did, and the file before and after. No mockups.

Prompt: add a Loyalty Tier field and a value list. The field and the value list appear in the file.

Prompt: write a Say Hello script. The agent copies a real dialog step and creates a two-step script.

Prompt: remove the Dev layouts. Six layouts are deleted and the agent warns about three scripts that pointed at them.

Prompt: rebrand for Maple and Oak. The blue Claris header becomes a forest green Maple and Oak header.

How it works

An AI agent stitches patches onto a FileMaker file, with a verified check and an undo arrow

Why can't your agent just do this on its own? A FileMaker file is a binary file, and its structure hides behind dialogs an agent cannot click. Claris does ship a command-line way in, FMUpgradeTool, but it is picky: every object is addressed by a UUID, and a patch that is slightly wrong is silently skipped, while the tool still prints Patch File Applied.

Patchwork is the careful assistant in between:

🧵 Writes the patch Reads the file's XML export and builds a patch with the right UUIDs, ids and catalog structure, so your agent doesn't have to
🔍 Checks the result Re-exports the file after every change and compares it with the previous version. If FileMaker skipped something, the change is refused, not silently lost
🧭 Warns before breaking Before a delete, it lists the scripts, layouts and calculations that use the object, and waits for your OK
🕐 Keeps every version Each change is a numbered version with its diff. Changed your mind? undo always works
🔒 Protects the original Everything happens on a working copy. save writes a new file and never overwrites yours

More in how it works.

Connect your agent

One command sets everything up. Run patchwork init . in your project folder, new or existing: it adds the rules, the skills and the MCP configuration for every agent, and keeps the files you already have.

Agent Configuration written by init Then
Claude Code .mcp.json · CLAUDE.md · .claude/skills/ Run claude in the folder and approve patchwork
Cursor .cursor/mcp.json · .cursor/skills/ Enable patchwork in Settings › MCP
⌨️ Codex .codex/config.toml · AGENTS.md · .agents/skills/ Trust the project when Codex asks
Antigravity .agents/mcp_config.json · AGENTS.md · .agents/skills/ Open the folder as a workspace

Every agent gets the same 21 tools through patchwork mcp, a stdio MCP server. Your file's password stays yours: set it once in your shell with PATCHWORK_PASSWORD, and agents never see it. Manual setup and the full tool list: AI agents.

What it can change

Fields, plain-text scripts, value lists, colors and fonts, even a full rebrand. Every operation below was tried on real files and confirmed by re-exporting them.

Add Edit Delete
Fields · text, number, date, time, timestamp, container, calculation, global ✅ ✅
Scripts, read and written as FileMaker text ✅ ✅ ✅
Value lists ✅ ✅ ✅
Custom functions ✅ ✅ ✅
Layouts · place a field with its label, whole layout, colors, fonts, swap a field ✅ field ✅ ✅
Themes · colors, fonts, name ✅
Tables, table occurrences 👁 read

What FMUpgradeTool cannot do (record data, a brand-new theme, a single layout object on its own) is listed in the field guide.

Use it without an agent

Prefer the terminal? Everything the agent does is a plain command you can run yourself:

patchwork open "Invoice.fmp12" --account Admin     # working copy, version v000
patchwork add-field Clients "Loyalty Tier"
patchwork add-value-list "Loyalty Tiers" Bronze Silver Gold
patchwork log                                       # every version and what changed
patchwork undo
patchwork save "Invoice v2.fmp12"
All commands
Command What it does
open SRC --account NAME Starts a working copy in .patchwork/ (version v000). The source is never modified
status, log Current version, and every version with what changed
ls [KIND] [TABLE] Lists layouts, scripts, value lists, custom functions, themes, tables, fields
show KIND NAME Prints a script as FileMaker text (--xml for XML), anything else as XML. show step NAME prints a real example of a step
add-field TABLE NAME Adds a field: --type, --calc, --global, --image logo.png
add-value-list NAME VALUES... Adds a custom value list
add-custom-function NAME --calc Adds a custom function, with --param
add-script NAME STEPS.txt Creates a script from FileMaker script text (or <Step> XML)
set-steps, append-steps Rewrites a script with edited text from show, or adds steps at the end
place-field LAYOUT TO::FIELD --near FIELD Puts a field on a layout below another one, with a copy of its look and label. --side right, --label
replace KIND NAME FILE.xml Replaces an object with your edited version of show
uses KIND NAME Lists what references an object, and where its name appears in calculations
delete KIND NAME Deletes a script, layout, value list, custom function or field. Refused while other objects reference it, unless --force
retheme, recolor-layouts Rewrites colors and fonts of a theme, or of the layouts' local styles
push PATCH.xml Applies a hand-written FMUpgradeTool patch, with the same checks
undo Drops the last version
save DEST Writes the current version to a new .fmp12
rebrand SRC DEST --brand brand.json One shot: colors, fonts, logo and theme name on a whole solution
mcp The MCP server for agents
init DIR Wires a folder for Claude Code, Cursor, Codex and Antigravity
doctor Shows which Claris tools Patchwork found

Every editing command takes -m "note" for the log and --dry-run to write the patch without applying it. More in examples and recipes.

The FMUpgradeTool field guide

The field guide collects every trap FMUpgradeTool sets without telling you, found the hard way on real files. Useful even if you never use Patchwork. A taste:

  • without --generateGUIDs, theme and field patches are skipped;
  • a layout's UUID is not the first <UUID> inside it;
  • replacing one layout object is skipped, replacing the whole layout works;
  • deleting a script step needs a ScriptReference inside each ScriptStepReference.

Found another one? Add it.

FAQ

Does it work on hosted files?
It works on closed .fmp12 files on disk. Take a copy of the hosted file, edit it, test it, then deploy it as you usually do, or move the data with the Claris Data Migration Tool.
Can the agent change records?
No, FMUpgradeTool changes structure only. For records, use the Data API or OData. The fm-data skill explains how.
Which FileMaker versions?
Developed and verified with FileMaker 2026 (26.0.3). Earlier versions that ship FMUpgradeTool and FMDeveloperTool --saveAsXML should work but are untested. A report either way is very welcome.
macOS and Linux?
Wherever the Claris tools run. CI runs on Windows, macOS and Linux.
Is my password safe with an agent?
Yes. It is read from the PATCHWORK_PASSWORD environment variable, passed to the Claris tools, and printed as ***. It is never written in a configuration file or shown to the agent.

Contributing

Found a new FMUpgradeTool trap, wrote a recipe, or want a new operation? Everything is welcome: start with CONTRIBUTING.md. And if Patchwork gives you your Friday afternoon back, a ⭐ helps other FileMaker developers find it.

Star history

License

MIT. Patchwork is a community project, not affiliated with or endorsed by Claris International Inc. FileMaker and Claris are trademarks of Claris International Inc. Other product names and logos belong to their owners.

Metadata

Release files for filemaker-patchwork 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for filemaker-patchwork 0.1.0
File Size Uploaded Provenance Actions
filemaker_patchwork-0.1.0.tar.gz 63.2 kB With provenance Details for filemaker_patchwork-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for filemaker-patchwork 0.1.0
File Interpreter ABI Platform Actions
filemaker_patchwork-0.1.0-py3-none-any.whl Python 3 none any Details for filemaker_patchwork-0.1.0-py3-none-any.whl

Total release size: 122.4 kB

Release files / filemaker_patchwork-0.1.0.tar.gz

Download URL filemaker_patchwork-0.1.0.tar.gz
Size 63.2 kB
Tags Source
SHA-256 checksum
How to use checksums
74ccc642f94b6a5d480b7784e4785cecabf5798182802b85447ce6059fd81022
BLAKE2b-256 checksum
How to use checksums
9ef46e88b5dbfb4e488f2c9b3e8998a69deaa4293ac0f9adfb95c2d0bfbc72db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Release files / filemaker_patchwork-0.1.0-py3-none-any.whl

Download URL filemaker_patchwork-0.1.0-py3-none-any.whl
Size 59.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57d660d7310983732e004f4db7f9f45dac6e9f0ba1e8c919f666c9a23cf8c089
BLAKE2b-256 checksum
How to use checksums
708148945bb64411fb35756178b4e3d41aa618e5e17a89de217fa71748c6d7a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Security for filemaker-patchwork 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for filemaker_patchwork-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page