Inline Mermaid Diagrams for Jira
Setup and usage
Jira shows Mermaid source as plain text. This app draws it. Diagrams written in an issue description or a comment are rendered in a panel on the issue.
Install from the Atlassian Marketplace, choose your site, confirm.
The app recognises a diagram by how the source starts: graph TD, sequenceDiagram, gantt, and so on.
graph TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship]
B -->|No| ADiagrams panel, right-hand column of the issue.
Apps button on the issue, then Diagrams. Full width, better for wide diagrams.
The issue description first, then every comment, oldest first. Code blocks inside panels, expands, tables and lists are found too.
Click Fullscreen on any diagram. Zoom with the + and − buttons or the + and - keys. Reset with the button or the 0 key. Drag to pan. Close with the button or Esc.
PNG for pasting into a document or chat. SVG for vector editing, with the text still selectable.
Shows the Mermaid text behind a diagram, for copying it to another issue.
Re-reads the issue. Use it after editing the description in another tab. The time of the last refresh is shown.
Diagrams follow the Jira theme and redraw with dark colours.
A diagram with more than 300 connections or 500 lines is not drawn straight away. A Render it anyway button appears. This stops one enormous diagram from freezing the issue view.
A broken diagram shows the line number of the error and a toggle to view the source. Other diagrams on the issue still render.
Paste any of these into a Jira code block.
graph LR
A[Request] --> B(Validate)
B --> C{Valid?}
C -->|Yes| D[Process]
C -->|No| E[Reject]sequenceDiagram Customer->>API: POST /order API->>Database: INSERT Database-->>API: ok API-->>Customer: 201 Created
stateDiagram-v2 [*] --> Open Open --> InProgress: assign InProgress --> Review: submit Review --> Done: approve Review --> InProgress: reject Done --> [*]
gantt
title Release plan
dateFormat YYYY-MM-DD
section Build
Development :a1, 2026-01-06, 20d
Code freeze :milestone, after a1, 0d
section Ship
QA :a2, after a1, 10d
Release :after a2, 3derDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
PRODUCT ||--o{ LINE_ITEM : "appears in"pie title Time spent "Development" : 45 "Review" : 25 "Meetings" : 30
Every diagram type in Mermaid 11: architecture, block, C4, class, Cynefin, entity relationship, event modelling, flowchart, flowchart-elk, Gantt, gitGraph, info, Ishikawa, journey, kanban, mind map, packet, pie, quadrant chart, radar, railroad, requirement, sankey, sequence, state, swimlane, timeline, treemap, tree view, Venn, Wardley map and XY chart.
Up to 10 users: everything, free.
More than 10 users: everything, paid via Atlassian.
The app runs on Atlassian infrastructure, makes no outbound network requests and stores nothing. Its only permission is read:jira-work, which is read-only. It has no logging and no analytics.
The code block has to start with a diagram type. Blank lines above it are fine, other text is not. Then click Refresh.
Click Refresh, or reload the issue.
A block marked as JavaScript, Python or anything else is left alone on purpose. Set the language back to none or plain text.
Check the app is installed under Settings, Apps, Manage apps. Then reload the issue.
Your Jira account cannot view that issue. Ask the project administrator.
Bug reports and feature requests: [email protected]