Skip to content

Convert diff to Markdown.

Drop a .diff or .patch and get Markdown that keeps the unified diff intact. It runs entirely in your browser, so your file never leaves your device.

Instant & offlineFree, no accounts

Drag & drop your files

or

WordExcelPowerPointPDFEPUBCSVJSONCode
+135 file formats supported
Batch convertMany files at once
100% privateStays on your device
Works offlineNo connection needed
Preset

Optimize for AI & RAG

Extra cleanup for LLM ingestion: strip HTML, fix smart quotes, tidy Unicode and spacing.

Add YAML front matter

Prepend a metadata block (title, source, date, word & token counts) for knowledge bases and RAG.

Add table of contents

Build a linked index from the headings. Handy for long documents.

Export RAG chunks (.json)

Split the result into retrieval-ready chunks. Download per file from the result panel.

Most converters quietly upload your documents to a server. This one physically can't.

01Why

A record of
what changed.

A unified diff captures the exact lines added and removed between two file versions. Pasting one into a note often mangles the alignment and colours. Converting wraps it in a fenced diff block that renders cleanly.

DIFFchanges.diff

--- a/app.js

+++ b/app.js

@@ -1,3 +1,3 @@

-const x = 1

+const x = 2

console.log(x)

MDchanges.md

```diff

--- a/app.js

+++ b/app.js

@@ -1,3 +1,3 @@

-const x = 1

+const x = 2

console.log(x)

```

02Features

Everything you
actually need.

Diff and patch files in, a clean fenced block out, with no server and no account anywhere.

It never leaves your browser

Your .diff or .patch is read on your own device. Nothing is uploaded to any server, ever.

local
DIFFchanges.diff

# Heading

- point one

3 chunks

AI & RAG ready

Optional cleanup, YAML front matter, a table of contents and RAG chunk export.

Works offline

Once the page has loaded you can switch off your connection and it keeps converting.

```diff

+const x = 2

-const x = 1

```

Diff, preserved

The diff is kept verbatim in a fenced code block, so nothing is lost and the plus and minus changes stay readable.

éñü

Unicode safe

Accents, symbols and non-Latin scripts come through intact as UTF-8.

Free, and unlimited

No sign-up, no quotas, no watermarks. Convert one file or a thousand; it all runs the same way, on your own device.

03Fidelity

Nothing is
lost.

Honest about what comes through, and what stays put. These are the same notes the Formats list shows for diff, so the page never drifts from what the converter really does.

Kept

2
  • The full diff content
  • Wrapped in a fenced code block tagged diff

Preserved

2
  • Every line and hunk header
  • The plus and minus change markers
DIFFchanges.diff
@@ -1,3 +1,3 @@
kept

--- a/app.js

+++ b/app.js

console.log(x)

kept

-const x = 1

+const x = 2

kept
Wrapped in a fenced code block tagged diff
kept
04FAQ

Diff questions,
answered.

Everything worth knowing before you drop in a diff or patch.

05More

Other converters.

Working with more than diffs? These convert the same way: privately, in your browser.

Perl POD to Markdown

.pod

Perl inline documentation.

Convert

scdoc to Markdown

.scd

scdoc man-page source.

Convert

Gemtext to Markdown

.gmi

Gemini protocol pages.

Convert

txt2tags to Markdown

.t2t

txt2tags markup.

Convert

Djot to Markdown

.dj

Djot lightweight markup.

Convert

JSON to Markdown

.json · .jsonc · .json5 · .ndjson

JavaScript Object Notation data.

Convert

XML to Markdown

.xml

Extensible markup data.

Convert

YAML to Markdown

.yaml · .yml

Human-friendly config data.

Convert