Changelog
All notable changes to Mermaid Code are documented here.
[v0.8.2] - 2026-09-20
Fixed
- Windows updates no longer fail when the MCP server is enabled: if the built-in MCP server was turned on, updating on Windows could stop with an "Error opening file for writing" error because the MCP background process was still running and holding a lock on its own file. The updater now shuts that process down before installing — and the installer clears any leftover instance as a safeguard — so updates complete cleanly. The MCP server restarts automatically after the update if it was enabled.
[v0.8.1] - 2026-09-19
Fixed
- Faster startup when reopening multiple tabs: restoring a folder with several open tabs no longer renders every tab's diagram one after another — only the active diagram renders on launch, so the app becomes responsive noticeably sooner when many diagrams were left open
[v0.8.0] - 2026-09-17
Changed
- Updated to Mermaid 12, changing default diagram appearance: diagrams that don't set
theme,look, orlayoutexplicitly now render with Mermaid 12's new defaults — a refreshed theme/look and the ELK layout engine (previously Dagre). See the Mermaid 12.0.0 release notes for details and the full list of affected types. To keep the previous appearance, settheme: default,look: classic, andlayout: dagrein the diagram config (front matter or the Config panel). - Dark mode covers the new theme: switching between light and dark now maps the new
redux-colortheme to its dark variant (redux-dark-color), alongside the existing theme pairings.
Removed
- ZenUML support: the ZenUML diagram type is no longer supported
[v0.7.5] - 2026-09-13
Changed
- Faster, more reliable auto-updates: the in-app updater now fetches updates from a global CDN (Cloudflare R2) instead of GitHub, so checking for and downloading updates is quicker and more dependable worldwide
[v0.7.4] - 2026-09-12
Added
- Fira Code editor font with ligatures: the code editor now ships with Fira Code (self-hosted, works offline), so link syntax like
-->,->>, and==>renders as connected arrow glyphs; moving the caret onto an arrow temporarily reveals its raw characters for precise editing - Localized code editor in Chinese: with the app language set to Simplified Chinese, the editor's own menus (context menu, command palette, tooltips) are now translated as well — applied on the next launch
Changed
- Language-switch hint: after changing the app language, a short note explains that some parts of the interface (the editor and the native menu) finish updating after a restart, so the lag doesn't look like a bug
- Small UI refinements: minor polish in the file sidebar and thumbnail grid
[v0.7.3] - 2026-09-10
Added
- Syntax highlighting for every diagram type: newer diagram types that previously had little or no highlighting — mindmap, timeline, block-beta, and others — now get accurate coloring
- Color preview swatches: inline color chips for
styleandclassDefcolors, with a click-to-edit color picker
Changed
- Tree-sitter powered highlighting: the editor's syntax highlighting is now driven by the tree-sitter Mermaid grammar (@mermanjs/tree-sitter-mermaid) for semantically accurate coloring, with the previous tokenizer kept as a fallback so highlighting still works while the grammar loads; light and dark theme colors were unified across both layers to avoid any color flicker
- File sidebar search: added a button to quickly clear the current file search query
- Small UI refinements: various minor polish across the interface
[v0.7.2] - 2026-09-06
Added
- Custom download folder: the Actions panel now lets you pick a folder for PNG/SVG exports and remembers it across restarts. Exports write straight to the chosen folder, ask before overwriting an existing file, and surface an error if the save fails; a reset button restores the default download folder
Changed
- Share dialog consolidation: the Kroki link and Markdown embed code moved out of the Actions panel into the Share dialog, each with a note that the diagram is sent to an external rendering service (kroki.io / mermaid.ink)
- Gist loading removed: the app no longer loads diagrams from GitHub Gist URLs
Fixed
- Share privacy note: corrected the wording to accurately describe that a shareable link encodes the diagram in the link itself rather than uploading it to a server
[v0.7.1] - 2026-09-02
Fixed
- Tab zoom & position preserved: switching between open tabs no longer resets the diagram's zoom and pan — each tab keeps its own viewport
- Thumbnail refresh on save: saving changes to a diagram now updates its thumbnail in the file grid, instead of showing the previously rendered version
[v0.7.0] - 2026-09-01
Added
- Internationalization (English & Simplified Chinese): the entire interface is now localized, including the native menu bar and system dialogs. A language switcher in the menu changes the app language instantly — UI text updates live without a reload, while the native menu picks up the change on the next launch. On first launch the app follows your system language and falls back to English
[v0.6.2] - 2026-08-30
Changed
- Mermaid.js updated to 11.17.2 (from 11.16.1), along with other dependency updates
[v0.6.1] - 2026-08-27
Fixed
- Preview refresh on external writes: files saved via an atomic write (temp file + rename) — how AI agents (Claude Code/Codex) and many editors save — now reload the open tab and refresh the live preview, instead of being mistaken for a rename and ignored
[v0.6.0] - 2026-08-23
Added
- Codex agent (experimental): a second built-in AI agent alongside Claude Code, backed by a single persistent
codex app-serverprocess that starts when Codex is selected and lives until the app exits. Chat, multi-turn conversations, tool-use visibility, token usage, and permission modes work like Claude Code - Codex session management: list, resume, and archive Codex sessions per folder through the app-server, sorted by most recently updated; explicit session names are shown when set
- Permission modes for Codex: Manual, Edit automatically, Plan, and Auto map to Codex's approval policy and sandbox, and can be switched mid-session
- Agent selector: switch between Claude Code and Codex from the Agent panel header
Changed
- MCP server rejects requests that carry an
Originheader, guarding against cross-site (browser-originated) access
Fixed
- Folder rename focus: renaming a folder in the file tree sidebar no longer mishandles focus
[v0.5.1] - 2026-08-16
Changed
- MCP server now binds to
127.0.0.1(local loopback only) instead of all network interfaces
Fixed
- Editor tabs react to external file changes: deleting or renaming an open
.mmdfile outside the app now closes or updates its tab (including macOS "move to Trash"); deleting the last open file falls back to the Draft tab
[v0.5.0] - 2026-08-14
Added
- AI Agent panel: built-in Claude Code integration — chat with Claude Code directly inside the app without switching to a terminal; supports multi-turn conversations, session history, and resuming previous sessions per folder
- Tool use visibility: tool calls and their results are displayed inline in the conversation as collapsible items, showing the tool name, input, and output
- Token usage and cost: output token count and cumulative USD cost are shown per session
- Permission mode selector: choose between Manual, Edit automatically, Plan, and Auto modes for each session; dynamically switchable mid-session
- Permission request UI: Claude pauses before executing potentially dangerous operations and shows an inline permission request; users can allow or deny each action, with an optional message to guide Claude on what to do instead
- Recent agent working directories: folder picker in the Agent panel remembers recently used directories for quick switching
- Active file name in Navbar: displays the current diagram file name (without extension) in the top navigation bar
Changed
- Presentation mode: all toolbar overlays are now hidden in presentation mode for a clean fullscreen view
[v0.4.7] - 2026-08-10
Fixed
- Copy/paste on macOS: added the Edit menu (Cut, Copy, Paste, Select All, Undo, Redo) to the macOS menu bar, restoring keyboard shortcuts that were previously non-functional
[v0.4.6] - 2026-08-09
Added
- View in Finder/Explorer after export: a toast notification with a View button appears after exporting PNG or SVG, opening the file's location in Finder (macOS) or Explorer (Windows) via
tauri-plugin-opener
Fixed
- Save draft via Ctrl+S: pressing Ctrl+S (or ⌘S on macOS) in the Monaco editor on the Draft tab now correctly triggers Save As instead of doing nothing
[v0.4.5] - 2026-08-08
Added
- Sidebar toggle in macOS title bar: a sidebar toggle button is now embedded in the custom macOS title bar area for quick access without reaching the main toolbar
Changed
- macOS title bar style: adjusted spacing and layout of the custom macOS title bar
[v0.4.4] - 2026-08-07
Added
- Open Recent: File menu now lists recently opened folders and files; selecting an item reopens it directly
Changed
- Skip duplicate folder open: opening a folder that is already open no longer reloads it
[v0.4.3] - 2026-08-04
Added
- Custom title bar on Windows: native title bar replaced with a custom one; includes File/View/Window/Help menu buttons, sidebar toggle, drag region, and window controls (minimize/maximize/close) using Segoe MDL2 Assets icons
- Help menu: GitHub Repository, Report an Issue, and What's New links accessible from the menu bar
[v0.4.2] - 2026-08-03
Added
- Native menu bar: custom File, View, and Window menus with keyboard shortcuts; menu actions wired to frontend (Open File, Open Folder, Save, Save As, Close Tab, Toggle File Explorer, Toggle Editor, Toggle Presentation Mode)
[v0.4.1] - 2026-08-03
Added
- MCP token authentication: MCP bridge server now generates a random per-session token passed to the sidecar via environment variable; all bridge requests require
Authorization: Bearer <token>
Removed
- Unused tests: removed DOM-dependent test files that were no longer maintained
[v0.4.0] - 2026-08-02
Added
- MCP Server Integration: built-in MCP server (port 37079) exposes
preview_diagramandlist_diagramstools; AI agents can preview diagrams in the Draft tab and list all open.mmdfiles; enable via the main menu toggle - MCP HTTP bridge: internal axum server (port 37078) bridges MCP requests to the Tauri frontend
Changed
- Linux packages:
.AppImageis no longer provided due to a compatibility issue between Bun's statically-linked sidecar binary andlinuxdeploy;.deband.rpmpackages are still available
[v0.3.13] - 2026-07-27
Fixed
- Navigation guard on Windows: allow
tauri://,http://tauri.localhost,https://tauri.localhost, anddata:URLs in addition to blob URLs so the app loads correctly on Windows - Save race condition: take a snapshot of the code before writing to disk so that rapid edits no longer cause
isDirtyto be incorrectly cleared - YAML frontmatter parsing on Windows: regex now handles
\r\nline endings in frontmatter blocks - Path parsing: file name extraction now uses a cross-platform regex (
/[/\\]/) instead of splitting on/then\
[v0.3.12] - 2026-07-27
Added
- Content Security Policy (CSP): configured CSP for the WebView to restrict resource loading
- External link confirmation: clicking a diagram link now shows a "Do you trust this link?" dialog before opening in the system browser
Fixed
- PNG export with external links: diagrams containing
click hreflinks can now be exported as PNG; external hrefs are stripped from the canvas SVG to prevent canvas taint - External link navigation: links in diagrams no longer navigate inside the app; they open in the system browser instead
- Vim
:w/:q/:wqon Draft tab: correctly triggers Save As when the Draft tab is active instead of doing nothing - Thumbnail security level: thumbnail rendering now uses
strictsecurity level instead ofloose - Unsaved changes on folder switch: switching to a different folder with unsaved changes now prompts to save instead of silently discarding them
- Delete directory on Windows: deleting a directory now correctly closes all tabs whose files are inside it (fixed path separator mismatch on Windows)
- Rename directory: renaming a directory now correctly updates paths of all open tabs inside it and re-registers file watchers
[v0.3.11] - 2026-07-25
Added
- Window state persistence: window size and position are now saved and restored on next launch
Fixed
- "Open with" tab activation: opening a file via "Open with Mermaid Code" now correctly activates the corresponding tab instead of staying on the previously active tab
[v0.3.10] - 2026-07-21
Fixed
- "Open with" on macOS: fixed file association so that double-clicking or using "Open with Mermaid Code" in Finder correctly opens the file on first launch
- "Open with" on Windows: fixed file association for first launch when the app is not already running
[v0.3.8] - 2026-07-20
Added
- Syntax error display: syntax error message now appears above the VIM status bar, integrated into the editor
Fixed
- Editor undo loop: fixed undo/redo cycling between the last two states when typing
- Auto-save false alarm: auto-saving a file no longer triggers "modified externally but has unsaved changes" notification
Changed
- Build output directory: changed from
docs/todist/ - Removed web support: app is now desktop-only; CodeMirror removed
- Removed analytics: Plausible Analytics and all usage statistics removed
[v0.3.7] - 2026-07-20
Added
- Draft tab: always-visible "Draft" tab for unsaved work; prompts to save before quitting if draft has content
- Editor expand button: when the editor pane is collapsed, a button appears on the left edge of the preview to expand it
Changed
- TabBar: always visible; shows a "+" button when no files are open; standalone style (rounded, bordered) when sidebar is collapsed
[v0.3.6] - 2026-07-17
Added
- Sub-directory file watching: clicking a file from a sub-directory in grid view now registers a file watcher for that directory
Fixed
- Sub-directory watching: fixed file change detection for files outside the root directory
[v0.3.5] - 2026-07-14
Changed
- Presentation mode: full-screen now hides the editor pane; ESC or macOS green button exits correctly
[v0.3.4] - 2026-07-13
Added
- Config reset button: added a Reset button in the Config tab to restore default Mermaid config
Changed
- Homebrew tap auto-update: GitHub Actions workflow now automatically updates the Homebrew tap on release
[v0.3.3] - 2026-07-13
Added
- Homebrew tap: available via
brew tap m8524769/tap && brew install --cask mermaid-code
Fixed
- macOS relaunch after update: app now correctly relaunches after installing an update
[v0.3.2] - 2026-07-13
Changed
- Update flow: download and install are now separate steps; "Install & Restart" button appears after download completes
[v0.3.1] - 2026-07-13
Added
- Update progress: download progress shown inline next to the version badge
- ✓ latest badge: shown next to version number when the app is confirmed up to date
[v0.3.0] - 2026-07-12
Added
- Auto-update: app checks for updates on launch and prompts the user to install; a version badge appears next to the title when an update is available, clicking it triggers the install
[v0.2.5] - 2026-07-12
Added
- Version info: app version is now displayed next to the title in the navbar
- Single instance: launching a second instance focuses the existing window instead of opening a new one
- File associations:
.mmdand.mermaidfiles are now associated with Mermaid Code on Windows
[v0.2.4] - 2026-07-11
Added
- Vim mode:
:qcloses the current tab (exits the app when no tabs are open);:wqsaves and closes;H/Lmapped to^/$;jkmapped to<Esc>in insert mode - Export filename: PNG and SVG exports now use the current file's name instead of a timestamp
- Download notification: a toast shows the download folder path after exporting PNG or SVG
- Rename warning: renaming a file to an unsupported extension now prompts for confirmation
Fixed
:qpermission: addedcore:window:allow-closecapability so:qcan close the window
[v0.2.3] - 2026-07-10
Added
- Drag and drop: drag
.mmd/.mermaidfiles or folders onto the app window to open them
[v0.2.2] - 2026-07-10
Added
lookconfig field: Config tab now includes a Look selector (classic/neo)- Thumbnail stale tracking: changing the config immediately re-renders the current file's thumbnail; other files' thumbnails are refreshed on next click
Changed
- Default mermaid config changed from
{"theme": "default"}to{}(same behavior, cleaner)
[v0.2.1] - 2026-07-10
Added
- Sidebar search bar: filter files by filename in both tree and grid views; search auto-clears when switching folders
- Dirty indicator in thumbnail view: unsaved files now show the orange dot in the thumbnail grid, matching the tree view
Fixed
- Thumbnail rename sorting: renaming a file no longer incorrectly pins it to the top of the grid
[v0.2.0] - 2026-07-10
Added
- Thumbnail grid view: sidebar now supports a thumbnail grid view showing SVG previews of all
.mmd/.mermaidfiles in the opened folder (including subdirectories); switch between tree and grid view with the toggle buttons in the sidebar header; view preference is persisted - Onboarding tooltip: first-time users see a tooltip pointing to the File Explorer button after 3 seconds, which disappears once the sidebar is opened
Fixed
- Editor horizontal scrollbar: VIM status bar no longer overlaps the Monaco editor's horizontal scrollbar
- Ignored files:
.DS_Store,Thumbs.db, anddesktop.iniare now excluded from the file tree
[v0.1.13] - 2026-07-09
Added
- Relative line numbers in Vim mode: editor switches to
lineNumbers: 'relative'when Vim mode is enabled, restores to absolute on disable
Fixed
- ZenUML infinite reload loop: switching away from ZenUML no longer triggers repeated page reloads
- Pin to code preserves existing frontmatter: other fields (e.g.
title, nestedflowchartconfig) are no longer overwritten when pinning theme/layout/fontFamily
Changed
- ZenUML removed from Sample Diagrams: due to global style injection side effects that cannot be cleaned up without a page reload
[v0.1.12] - 2026-07-09
Added
- Pin to code: Config tab now has a "Pin to code" button that inserts the current config as YAML frontmatter into the diagram code
Changed
@mermaid-js/layout-elkupgraded to 0.2.2
[v0.1.11] - 2026-07-09
Added
- Config form: theme, layout, and font family can now be set via a visual form at the top of the Config tab, synchronized with the JSON editor below
[v0.1.10] - 2026-07-09
Added
- Theme hint in Config tab: available mermaid theme names are now listed as badges at the top of the Config editor
Fixed
- Config tab empty on first open: switching to the Config tab now correctly populates the editor with the current mermaid config
- Dirty indicator dot: replaced Unicode
●with a CSSrounded-fullelement for consistent cross-platform sizing
[v0.1.9] - 2026-07-08
Fixed
- Deleted folder closes tabs: deleting a folder now automatically closes all tabs whose files were inside it
- UI polish: muted icon colors on inactive states for sidebar buttons, file tree action buttons, tab bar close button, and New File button; hover states now use consistent foreground color
Changed
- Zoom scroll sensitivity increased from
0.1(library default) to0.2 - Sidebar title tooltip now shows the full folder path on hover
[v0.1.8] - 2026-07-08
Fixed
- Copy Image: works correctly in Tauri desktop mode via a custom Rust command; the PNG is decoded on the Rust side and written to the system clipboard using
arboard, bypassing WKWebView's restriction onnavigator.clipboard.write
[v0.1.7] - 2026-07-08
Fixed
- Per-tab undo isolation: each tab now uses its own Monaco model; switching tabs no longer leaks undo history from other files
- Vim clipboard:
y/d/coperations now correctly write to the system clipboard via unnamed register override - Per-tab pan/zoom state: viewport position is saved and restored per tab; panning/zooming in one tab no longer affects others
- File tree actions: replaced context menu (broken in Tauri) with inline hover action buttons
[v0.1.6] - 2026-07-08
Fixed
- File rename: extension is preserved automatically when the user omits it; text selection excludes the extension so only the stem is selected
[v0.1.5] - 2026-07-08
Fixed
- Sidebar now shows "This folder is empty." when the opened folder has no supported files
- Tab tooltip shows the full file path
- File watcher no longer causes UI lag when opening large directories
[v0.1.4] - 2026-07-08
Changed
- Bumped GitHub Actions versions
- Minor release workflow configuration fixes
[v0.1.3] - 2026-07-07
Changed
- Release workflow now uses GitHub's native auto-generated release notes
[v0.1.2] - 2026-07-07
Added
- Save / Save As buttons: toolbar Save button in Tauri desktop mode; Save As dialog when no tab is active
- File type association:
.mmdand.mermaidregistered viaInfo.plist - Date-stamped default names: new files default to
Diagram YYYY-MM-DD at HH.MM.SS.mmd; new folders toNew Folder YYYY-MM-DD at HH.MM.SS - Auto-expand on new file: creating a file inside a collapsed directory now expands that directory automatically
Fixed
- Tab persistence no longer overwrites the current folder's tab list when opening an individual file from a different directory
[v0.1.1] - 2026-07-07
Added
- Vim mode: Monaco editor supports Vim keybindings (
monaco-vim);:wtriggers file save - Full-screen preview: new "Full Screen" button opens the diagram preview in a separate Tauri WebviewWindow (or new browser tab on web)
[v0.1.0] - 2026-07-07
Initial release of Mermaid Code, forked from mermaid-live-editor.
Added
- Tauri desktop app: packaged as a native app for macOS, Windows, and Linux using Tauri v2
- File manager sidebar: open a local folder and browse, create, rename, and delete
.mmdand.mermaidfiles - Multi-tab editing: open multiple files simultaneously with independent undo history per tab; drag to reorder tabs
- Per-folder tab persistence: reopening a folder restores the previously open tabs and active tab
- Auto-save: sidebar toggle enables auto-save with a 2-second idle delay
- Keyword autocomplete: Monaco editor provides diagram-type-aware keyword completions
- Mermaid upgraded to 11.16.0; pako upgraded to 3.0.0
- Performance improvements: pan/zoom change throttle set to 200 ms; editor update debounce set to 100 ms
- Shareable links: domain changed to
mermaid.live(no longer showslocalhost) - Multi-platform release workflow: GitHub Actions builds and publishes installers for macOS, Windows, and Linux