A .mmd file is not Markdown. It is a plain-text file holding a single Mermaid diagram — no headings, no prose, no fences — and almost nothing on your machine knows what to do with it. Double-click one and you get a text editor showing diagram source, or a dialog asking which program to use. The .mermaid extension behaves the same way.
These files show up when a coding agent writes a diagram to disk, when a documentation pipeline extracts diagrams into separate assets, or when someone exports a single chart from a larger design document. To read one, you need a Mermaid renderer — not a file association.
A .mmd file contains diagram source and nothing else:
flowchart LR
Client --> API
API --> Queue
Queue --> Worker
Worker --> Store[(Database)]
That is the whole file. In a Markdown document the same text would sit inside a fenced block tagged mermaid, which is how a Markdown renderer knows to draw it instead of printing it. A standalone .mmd file has no fence and no tag, so a Markdown viewer will treat it as literal text. This is the single most common reason people conclude their tool "does not support Mermaid" when it actually does.
The fastest route needs no install. Open mdview.io, paste the file contents into the document, and wrap them in a fenced block labelled mermaid. The diagram renders immediately, with zoom, pan, fullscreen, and SVG or PNG export for dropping the result into a slide or a ticket.
This also lets you keep the diagram with its explanation. A standalone .mmd file is a diagram without context; pasting it into a document alongside the paragraphs that describe it usually produces something more useful than the file you started with.
VS Code renders Mermaid inside its Markdown preview — since version 1.121 that support is built in rather than supplied by the deprecated Markdown Preview Mermaid Support extension. The catch is the word Markdown: the preview command applies to .md files, so it does nothing for a bare .mmd file.
Two routes work:
.mmd and .mermaid as its own file types and provides a preview for them.mermaid and use the standard preview.If a preview pane opens blank or shows raw source, check which extensions the extension claims before assuming the diagram is broken. Full detail on the Markdown side of this is in preview Mermaid diagrams in VS Code.
Zed renders Mermaid inside its Markdown preview, which means the reliable path for a .mmd file is to paste its contents into a Markdown buffer inside a mermaid fence rather than previewing the .mmd file directly. The same trick applies to any editor whose Markdown preview supports Mermaid but whose file-type detection does not cover the bare extension.
| Route | Install needed | Renders .mmd directly | Export | Best for |
|---|---|---|---|---|
| mdview.io in a browser | None | Paste into a mermaid fence |
SVG, PNG, PDF | Reading, sharing, one-off diagrams |
| VS Code + Mermaid extension | Extension | Yes, with the right extension | Extension-dependent | Editing diagrams in a repo |
| Zed Markdown preview | None | Via a Markdown buffer | No | Quick local check while writing |
| Mermaid CLI | Node toolchain | Yes | SVG, PNG | Build pipelines and CI |
A .mmd file that fails to draw is usually a syntax problem, not a file-type problem. The usual causes are a diagram type your renderer's Mermaid version does not know, unescaped punctuation inside node labels, or an arrow style introduced in a later release.
If you land on the error branch, paste the diagram into a renderer that reports the failing line rather than swallowing it — see fixing a broken Mermaid diagram and why Mermaid charts fail across versions.
mdview.io renders Mermaid as part of the document rather than as a separate preview pane, so a diagram pulled out of a .mmd file can go straight back into the design doc that explains it — rendered, zoomable, exportable, and shareable as a link.