Hi everyone,
I run n8n for my own automations, and I kept running into the same question after something broke: what actually changed? Version history is short on the free self-hosted edition, and when I backed my workflows up to GitHub, the diffs were hundreds of lines of raw JSON: timestamps, IDs and canvas positions, with the real change buried somewhere in the middle.
So I built flowdiff, a free, open-source CLI that works with any n8n edition through the public API. It pulls your workflows into Git and shows every change as a readable line:
~ node "Set Defaults" renamed to "Prepare Request"
⚠ "Fetch Items" › url references "Set Defaults",
which is not a node in this workflow
~ param "Is Active?" › "active" → "enabled"
What it does
pull,diff,statusandpush, where push shows exactly what will change, asks first, backs up the current version and refuses if someone edited the workflow in the meantime- Line-by-line diffs for Code nodes and AI prompts
- Warnings when a rename breaks a node reference, or when a key looks hard-coded (values are redacted in the output)
- A GitHub Action that posts the readable diff as a pull request comment, so teammates can review workflow changes like code
- Pull, diff and status work with a read-only API key; push never activates a workflow on its own
A few things I learned about n8n along the way
- Saving in the editor removes parameters that match their defaults, so one rename showed up as seven changes. flowdiff now groups those separately as “possible defaults.”
- Updating an active workflow through the API publishes it immediately unless you pass
publishIfActive=false, which flowdiff always does.
Try it
npm install -g @akojif/flowdiff
flowdiff init
flowdiff pull
flowdiff diff
- GitHub: GitHub - akojif/flowdiff: Version control and readable diffs for n8n workflows, via the n8n public API. · GitHub
- Demo pull request with the Action’s comment: Sample changes: rename, IF branch, Code edit, pasted token by akojif · Pull Request #3 · akojif/flowdiff-demo · GitHub
- The story of how I built it: https://medium.com/@akfdev/my-n8n-workflow-broke-i-couldnt-tell-what-changed-44065b913a66
If you’re on Enterprise, n8n’s built-in Git source control may already cover what you need; flowdiff is aimed at readable review and checks for everyone else. It’s an independent project, not affiliated with n8n.
I’d really appreciate feedback, especially from teams with many workflows: what would make this useful in your setup? Next ideas are scheduled backups and an MCP mode.
