
MilkMind
Release notes
- 0.5.15Latest
Radial mindmap, React Flow becomes the default engine
A new radial mindmap spreads bubbles around your central topic. React Flow is now the default mindmap engine, with the full set of keyboard shortcuts for building structure.
🧠 Mindmap
- New radial layout. The central topic sits in the middle, the main branches spread out all around it, and each branch’s items cluster around it as round bubbles — a good fit for brainstorming or an at-a-glance overview. Pick it with the sixth icon in the layout switcher at the top left of the map, with
RadialunderSettings › Mindmap › Mindmap direction, or withFile › New document › Radial; addmindmap_type: radialto the front matter to pin a document to it. WithNode fillset toSoft tint, the centre and the main branches are filled and everything else is lightly washed; withSolid fill, every bubble takes its branch colour. It also renders inside```mindmap radialcode blocks. - React Flow is now the default mindmap engine. If you explicitly chose mind-elixir in settings, that choice is kept. mind-elixir is the previous engine; it stays for now but will be removed soon.
- Build structure from the keyboard in React Flow maps, too. The shortcuts that only mind-elixir had are now here —
Shift+Enteradds a sibling above,Ctrl+Enterinserts a parent,F2renames,Alt+↑/↓orPgUp/PgDnreorders siblings,Ctrl+K→0–9/=collapses or expands by level,F1fits the whole map, andCtrl+=/Ctrl+-/Ctrl+0zooms. - Heading marks on list items now look like headings. Write
- #### Titleor- [ ] ### Taskand it shows at that heading’s size and weight in both the editor and the mindmap node. Previously- #### Titlecame out as an empty node in the map.
🐞 Bug fixes
- Dragging a heading node under a heading of the same level no longer makes it jump back out after saving and reopening. Its heading level now steps down to match where you moved it (
##→###).
- New radial layout. The central topic sits in the middle, the main branches spread out all around it, and each branch’s items cluster around it as round bubbles — a good fit for brainstorming or an at-a-glance overview. Pick it with the sixth icon in the layout switcher at the top left of the map, with
Print with Ctrl+P, link from the clipboard with Ctrl+K
Print the document or mindmap you are looking at with Ctrl+P. Copy an address, select some text, press Ctrl+K, and the link is done in one step.
✨ Features
Ctrl(⌘)+Pprints what you are looking at. In the editor and the split view the document goes out in a paper layout — headings, lists, task checkboxes, tables, code, quotes and images are laid out for print, andcsvtables andmermaiddiagrams come out exactly as in the preview. With only the mindmap open, the whole map prints as an image. The print header shows the document title instead of the app name, and the body uses the fonts of your editor theme. There is aPrint…item in the File menu, too. It goes straight to the OS print dialog with nothing extra to install — pick a PDF printer there if you want a PDF.Ctrl(⌘)+Kpicks up an address from the clipboard. Copy a URL in your browser, select some text, pressCtrl+K, and the[text](url)link is complete on the spot. With nothing selected, the link text placeholder comes in already selected so you can just type; in docs mode the link dialog opens with its address field filled in. Only addresses starting withhttps://…,mailto:orwww.are recognised — file paths and ordinary text are left alone, so with anything else on the clipboardCtrl+Kbehaves exactly as before. Turn it off under Settings › General ›Link from clipboardif you prefer.
A bare address is clickable now
A pasted https:// address only looked like a link — clicking it did nothing. Bare addresses now open on Ctrl+click like any other link.
✨ Features
- A plain address opens on
Ctrl(⌘)+click, with no link syntax around it. Until now only[text](url)links opened; anhttps://…pasted straight into the text was coloured like a link but did nothing when clicked. Bare addresses now count, and so do<https://…>, addresses starting withwww., and email addresses. Awww.address opens in the browser, an email address in your mail app. - Those addresses look like links, too. They pick up the theme’s link colour and underline, and the cursor turns into a pointer over them, so it is visible that there is something to click.
- A plain address opens on
The window material now shows through the page you write on
Acrylic and Mica left the text column as an opaque band down the middle. The whole window now goes translucent at one opacity, page included.
✨ Features
- Acrylic, Mica and the other window materials now reach the page you write on. Until now only the menu, tab and status bars and the margins beside the text went translucent, while the text column kept painting its theme background — an opaque band down the middle of an otherwise see-through window. The whole window now shares one opacity.
Window opacitygoes down to 0%. The floor used to be 20%. At 0 the app paints no background of its own, so Windows’ material comes through exactly as the OS draws it. The setting is now calledWindow opacityrather thanFrame opacity, since it covers the text page too.
Note: on Windows 11
Mica,AcrylicandTabbedare drawn by the OS from your desktop wallpaper only — other windows behind yours never show through. PickBlurif you want to see what is actually behind the window.Mindmaps exported in dark mode are readable again
Exporting a mindmap to PNG or SVG in dark mode put light text on a white sheet, so nothing showed. The image now uses the canvas colour you see on screen.
🐞 Fixes
- Fixed mindmap PNG/SVG export in dark mode showing nothing but a white sheet. The export always painted a white background, and a dark theme’s light text disappeared on top of it. The image now takes the canvas colour you see on screen.
The license screen steps aside for the beta
There is no key to enter and nothing to buy yet, so the License tab in Settings and the Help entry are hidden for the duration of the beta. When the beta ends they come back on their own — no reinstall needed.
✨ No license screen during the beta
The
Licensetab in Settings andHelp ▸ Licenseare gone from the menus for now. There is no key to enter and nothing to buy yet, so the screen had nothing to offer. Anyone who has already registered a key still sees it.When the beta ends, the tab comes back without a reinstall. Once a day the app checks the site for the beta status; when the end is announced, every installed copy — this one included — shows the License tab again. A failed check changes nothing: if you are offline or the site is briefly down, the beta simply stays open.
🐞 Fixes
- Fixed a version-range mismatch in the auto-update plugin that stalled release builds. It also stops future plugin releases from blocking a build.
- The band behind the writing column is no longer painted by the scroll container. It looks the same, and the column, the properties panel and the banner now take their band width from a single value.
The frame you can actually see through
Last release's acrylic reached only the menu bar. Now everything but the column your words sit in goes translucent — the margins either side of the text and the status bar along the bottom. Behind the text itself, nothing changed.
✨ The material now covers the whole frame
Last release, only the menu bar and the tab bar turned translucent. But the tab bar appears only when documents open as tabs, and the default is a new window — so for most people a single strip of menu bar was all that showed. Turning the material on barely looked like anything.
Now everything outside the column you write in comes through.
- The margins either side of the text and the status bar along the bottom let the desktop through. The wider the window, the more of it you see.
- Behind the text, nothing changed. The theme background still sits under every line, so reading is exactly as before.
- The writing column no longer shifts sideways when a document grows long enough to scroll.
- The mindmap view stays opaque, as it was.
- The setting was renamed —
Chrome opacity▸Frame opacity.
Acrylic shows the backdrop only while the window is active. Windows freezes it to a flat colour whenever you are working elsewhere; that is the operating system’s own behaviour, not MilkMind’s.
🐞 Fixes
- Fixed two Korean typos in Settings —
츽 재질▸창 재질,안 씨음▸안 씀.
The window frame turns translucent
Your desktop now shows faintly through the menu bar and tab bar. Windows draws the material itself, so the backdrop follows as you move the window — while the writing surface keeps its theme background, so the text never mixes with your wallpaper.
✨ Acrylic window materials
Your desktop shows faintly through the menu bar and the tab bar. Windows draws the material itself, so the backdrop follows along as you move the window. Pick one under
Settings ▸ Appearance ▸ Window material.- Mica / Acrylic / Blur / Tabbed — four materials. Mica needs Windows 11; the rest work on Windows 10 too.
- A menu and tab bar opacity slider controls how much of the desktop comes through.
- The writing surface is untouched. The editor body keeps its theme background, so your text never mixes with the wallpaper behind it. The twenty themes are tuned for flat colour — put a photograph underneath and the contrast falls apart.
- Only turning a material on needs a restart. Switching or turning it off applies immediately. A transparent window loses subpixel text rendering, so MilkMind does not make the window transparent while you are not using the effect.
Windows only for now. macOS needs an API Apple restricts, and on Linux the blur is up to the desktop environment.
🎨 Also
- The theme gallery descriptions are now written in English too — previously only the names appeared when reading in English.
Twenty themes
Twenty editor themes you can download and try on straight away, sorted by colour harmony, contrast and saturation. And the three theme-import buttons have become one, so you no longer need to know which app a theme came from.
🎨 Twenty themes
Twenty ready-made editor themes are now available to download. Each file carries both a light and a dark look, so once imported you switch between them with
Themes ▸ Light/Dark. The palette dresses the mindmap view as well as the editor.They are sorted along three axes — colour harmony, contrast and saturation — so you can find the one you are after.
Analogous (12)
Neighbouring hues only — quiet, and of a piece.
- Paper Lane · high contrast · muted — Faded newsprint with an old-style serif. For long reading and writing where the type does the work.
- Cobalt Study · high contrast · muted — Deep cobalt on white paper, with headings, quotes and links all tied to one blue family.
- Pine Hollow · high contrast · muted — Desaturated forest green on off-white. Easier to sit with for hours.
- Frost Slate · high contrast · muted — Cool blue-grey neutrals. Nothing shouts, which suits documents full of tables and code.
- Mulberry Ink · high contrast · muted — A plum accent over the faintest lilac ground: calm, with one bright note.
- Terracotta Desk · high contrast · muted — Fired-clay orange on cream, with a tinted background behind blockquotes so paragraphs break cleanly.
- Mint Ledger · high contrast · muted — Clear teal on a cool white. Checklists and tables read crisply.
- Sepia Study · high contrast · muted — Deep sepia with the blue light taken out. For polishing a draft late at night.
- Ultramarine Bloom · high contrast · vivid — Blue crossing into violet, at full strength. Ink bleeding into white paper.
- Peach Chalk · high contrast · pastel — Pastel peach shading to rose, under jet-black type. Soft colour, sharp letters.
- Emerald Dusk · soft contrast · vivid — Greens and teals held close in value, so the bright green glows rather than shouts.
- Lilac Haze · soft contrast · pastel — Lilac and pale blue packed into a very narrow value range. The whole screen behind one layer of mist.
Complementary (5)
The two opposite hues are split by role: the accent takes links, bullets and checkboxes, its opposite takes headings and the blockquote rule.
- Midnight Neon · high contrast · vivid — Dark-first and high contrast, with a cyan accent and magenta headings lifting off the black.
- Signal Flare · high contrast · vivid — Orange and sky blue, exactly opposite on the wheel. Links go orange, headings go blue.
- Sherbet Press · high contrast · pastel — Mint and rose, a complementary pastel pair, with a rose-tinted panel behind blockquotes.
- Ochre Plum · soft contrast · vivid — Ochre yellow against plum violet, on a mid-tone ground that keeps both from shouting.
- Sage Rosewater · soft contrast · pastel — Sage green facing dusty pink, both with the volume turned down. The softest screen here.
Triadic (2)
Three points evenly spaced around the wheel, one each for the accent, the headings and the links.
- Prism Bright · high contrast · vivid — Crimson, sky and amber: three points of the wheel, one each for accent, heading and link.
- Macaron Tray · soft contrast · pastel — Pistachio, blueberry and raspberry, all pulled down to pastel. Sweet, but quiet.
Monochrome (1)
Movement within a single hue.
- Graphite Mono · high contrast · muted — Achromatic minimalism. Even the accent is grey, so only the words are left.
Every colour and font stays editable after import — pick the one closest to what you want and make it yours. A theme takes its name from the filename, so rename the file before importing, or rename it in the editor afterwards.
The soft-contrast themes are still comfortable to read: all forty variants are checked against WCAG AA (4.5:1) before they ship.
✨ One import button
- Three buttons became one —
⤓ Import theme,⤓ Import Typora themeand⤓ Import Obsidian themeare now a single⤓ Import theme. - The format is read from the file itself — MilkMind tells Typora, Obsidian and MilkMind themes apart by their internal structure, not by name or extension. A renamed file, or one whose origin you have forgotten, just works.
- It tells you what it recognised — after an import you see something like “Imported as a Typora theme”, so you can confirm it read the file correctly.
- Files that are not themes are refused, with a reason — pick a fragment stylesheet that only carries syntax highlighting, or the wrong
.json, and MilkMind says what is wrong instead of quietly creating an empty theme.
Automatic updates
MilkMind now notices new versions on its own. Until now a new build meant downloading the installer from the site again; now it's a notification and a restart.
✨ Automatic updates
- You get told when a new version is out — MilkMind checks quietly a moment after launch, and once a day after that. When it finds something, a small pill appears in the bottom right corner and nothing else interrupts you. A failed check (offline, say) passes in silence.
- Downloading and installing are separate —
Downloaddoes not install anything. Keep working while it downloads, and the new build is installed only when you pressRestart now. The app never quits on you mid-sentence. - You can also check yourself —
Help ▸ Check for updatesorSettings ▸ About. A manual check tells you the answer either way, including “you’re on the latest”. What's new— takes you straight to that version’s release notes.
Automatic updates work from 0.5.6 onwards. If you’re on an older build, this one download is still a manual one.
The document remembers what you folded
Folded branches stay folded when you reopen the file. The fold state is written into the document's frontmatter as anchors, so it travels with the file.
✨ Remember fold state
- What you folded comes back folded — turn on
Settings ▸ Mind map ▸ Remember fold stateand folded headings, list items and nodes are recorded in the document’s frontmatter underfolded:, then restored when you open the file again. Folding in the editor and folding in the mind map are recorded the same way. - Anchors are added for you — if a folded line has no name, a short anchor (
^93cra4) is appended to it. Lines that already carry a^idkeep theirs. These are ordinary line anchors, so[[^id]]links work with them too. - Off means untouched — it is off by default, and while it’s off nothing reads or writes
folded:. Unfold everything and the line disappears cleanly.
- What you folded comes back folded — turn on
Line anchors and node numbers
You can now name a specific line in a document and jump to it. Mind map nodes can show numbers, and Docs mode got a link dialog.
⚓ Line anchors — name a line, jump to it
- Write
^idat the end of a line to name it — non-Latin ids work too. Paragraph, list item, heading, it doesn’t matter. - Write
[[^id]]and you have a link to that line —Ctrl(⌘on Mac) + click jumps there, and the line flashes briefly so you can see where you landed.[[^id|shown text]]sets the label, and the Obsidian-style[[#^id]]and plain markdown links behave the same. - Hover to preview the line — check what a link points at without leaving your place. If nothing matches, the link is dimmed, so typos show up immediately.
- The same syntax works in the mind map —
Ctrl+click a[[^id]]inside a node to jump to the node carrying that anchor. If it sits inside a folded branch, the branch unfolds and the node is brought to the centre.
🧠 Node numbers in the mind map
- Each node can show a
6(12)badge — the first number is its position among its siblings, the one in brackets is how many direct children it has. Branch width at a glance. - Folded branches still count — numbers don’t shift as you fold and unfold.
- Toggle it in
View ▸ Node numbersorSettings ▸ Mind map ▸ Node numbers(off by default).
🔗 Link and image dialog in Docs mode
Ctrl+Kinserts and edits links in Docs mode — hiding the URL is the point of Docs mode, but it also meant you couldn’t fix a URL once it was in. Now the label and the URL go into a dialog.- Double-click an existing link to open the same dialog — change the URL, or remove the link and keep the text.
- Images come with a file picker and a size — browse for an image on your PC and give a width/height in pixels (leave them empty for the original size).
🐞 Fixes
- A link whose text was the URL itself vanished entirely. Fixed.
- Write
Mind map engine, tidied up
A release with nothing new to see. The mind map moved out into a standalone module — the way you use it, and everything on screen, is unchanged.
Under the hood
- The mind map is its own module now — Markdown ⇄ mind map conversion, the five layouts, fold syncing, markdown inside nodes, and image export are one piece separate from the app. Future mind map work continues there.
- Nothing changed in how you use it — switching layouts, folding and unfolding, checkboxes, renaming, adding nodes with
TabandEnter, drag to rearrange, PNG/SVG export, mind map code fence previews, and editor theme colours all behave exactly as before.
Guide and release notes, straight from the app
Settings has an About section now. Check your version and open the user guide, release notes, and the ProDuckCity page without leaving the app.
About and documentation links
- An About section in Settings — alongside the version you’re running, there are buttons for the User guide, Release notes, and About ProDuckCity.
Help ▸ About MilkMindnow opens this section too (the old two-line dialog has been folded into it). - Open the docs from the Help menu —
Help ▸ User guide / Release notes / About ProDuckCityopens the page in your default browser. If the app language is Korean you get the Korean page; otherwise English. - The Buy button goes to the checkout page — Buy in
Settings ▸ Licencenow opens the MilkMind checkout.
During the beta everything is unlocked whether you register or not.
- An About section in Settings — alongside the version you’re running, there are buttons for the User guide, Release notes, and About ProDuckCity.
Register a licence in Settings
Settings has a licence section now. Everything stays unlocked during the beta, whether you register a key or not.
Licences
- A licence section in Settings — go to
Settings ▸ Licence(orHelp ▸ Licence…) to enter and activate a key you’ve bought. Once it’s registered you’ll see your current tier, how many machines are in use, and when it was last checked. A PC you no longer use can be freed up with Deactivate this device. - Your key never lands in a document or a settings backup — on Windows it goes into the operating system’s credential manager, and elsewhere into a file in the app’s settings folder that only you can read. Copy your settings to another PC and the licence stays behind.
- It keeps working when the internet doesn’t — a check every six days is enough, and it runs for 14 days without reaching the server at all. Server maintenance or a network problem will never lock you out mid-work.
- Register once, however many windows you have open — activating in one window takes effect in all of them immediately.
- The wording is available in Korean, English, Japanese, and Chinese.
For now, everything is unlocked during the beta whether you register or not. Registering early simply carries over when the full release arrives.
- A licence section in Settings — go to
Docs mode and the highlighter
A mode you can write in without knowing Markdown at all — plus a highlighter.
Editor
- Docs mode — turn on
View ▸ Docs modeand Markdown syntax (**,#,[](...)) never shows itself, not even under the cursor. The old WYSIWYG revealed the raw source wherever the cursor landed; in docs mode the document stays finished-looking from the first line to the last. It’s the mode for people coming from Word or Google Docs, and for anyone who finds Markdown symbols distracting. The setting survives a restart. - A formatting toolbar for docs mode — with the symbols hidden, formatting goes in through buttons. A pill-shaped toolbar sits above the editor with undo/redo, paragraph styles, bold, italic, strikethrough, highlight, code, link, image, checklist/bullet/numbered lists, indentation, and zoom. Pressing a button leaves your cursor and selection exactly where they were.
- The cursor steps over hidden syntax — docs mode treats each invisible symbol run as a single unit, so the arrow keys,
Home, andEndjump across it instead of falling inside.Backspaceremoves the matching pair together, so you never end up with a half-open**bold*. - Highlighting with
==highlight==— the same syntax Obsidian and Typora use. It paints yellow in the editor and exports as<mark>. You can also reach it fromFormat ▸ Highlightor the docs toolbar. - Select text and press
=to wrap it — the same behaviour as pressing[for brackets. Once gives you=text=; press it again and you get the==text==highlight. With nothing selected,=types a plain=as usual.
Mind map
- Up and down arrows now move the way the map looks — they used to walk only through nodes at the same depth, so a node sitting directly above you would be skipped in favour of a same-depth node far across the canvas. Now they move to whichever node is visually above or below on the same side, whatever its depth. Going to a parent or child is still the job of the left and right keys, so nothing gets ambiguous. Moving into children sideways also picks the vertically closest one. (Top-down and fishbone layouts, where up/down placement carries no meaning, behave as before.)
- Docs mode — turn on