A lightweight, minimal, and customizable mind map
- Lightweight — Tauri 2 on the system WebView: 10 MB on macOS, ~70 MB RAM idle.
- Local-first — documents are plain
.xmindfiles on disk. Nothing is uploaded unless you turn on optional GitHub sync and explicitly push a map. - Real folders — organise documents in folders under
~/Documents/Mind, so the file manager and the app always agree. - Two views of one document — a classic mind map, or a Mermaid
mindmapsource with live preview. - Full editor — 14 layouts, 50+ themes, dark mode, rich text, notes, tags, images, formulas and an outline view.
- AI assisted — generate a diagram from a prompt through your own OpenAI-compatible endpoint.
Prebuilt builds are on Releases.
| System | File |
|---|---|
| Windows 10 / 11 (x64) | Mind_<version>_x64-setup.exe |
| Ubuntu 22.04+ / Debian 12+ (x64) | Mind_<version>_amd64.deb |
| Any distro with WebKitGTK 4.1 | Mind_<version>_amd64.AppImage |
The Windows build is unsigned, so the first launch needs More info → Run anyway. Linux builds use the system WebKitGTK 4.1 (Ubuntu 20.04 will not start), and the AppImage also needs libfuse2.
macOS — no prebuilt binary, build it locally:
makeInstalled builds update themselves in place; builds from before 0.1.3 need one manual reinstall first. The .deb package is the exception — download a newer one from Releases.
| Item | Detail |
|---|---|
| Requires | Xcode Command Line Tools — xcode-select --install |
| Toolchain | scripts/bootstrap.sh installs Node, Bun and Rust if missing |
| Install | make; Mind.app ends up in ~/Applications |
| Documents | ~/Documents/Mind |
make open # launch the installed app
make desktop # build only
make dev # run against the local dev server
make bootstrap # toolchain onlyAI generation reads baseUrl, model and apiKey from ai.json in the app config folder.
The desktop app can push the open map to a secret GitHub Gist. This is off until you sign in and choose Push. A fresh install, and the browser build, stay local-only: nothing is uploaded in the background, and ~/Documents/Mind remains the source of truth.
Sync uses GitHub's OAuth Device Flow (gist and read:user). The app embeds or reads a public Client ID only. There is no client_secret in the client. The access token is stored next to ai.json in github.json (mode 0600 on Unix). Sign out deletes that token.
Push writes the open map as JSON (the full document) or, if you choose it, Markdown (an outline). The file is text, not a .xmind zip. GitHub Gists are about 1 MB; a larger map is refused with an error instead of being truncated. Pull asks before it replaces a local file. Gists created here are secret: they are not listed on your profile, but anyone with the link can open them.
| System | Config folder |
|---|---|
| macOS | ~/Library/Application Support/com.huanyuli.mindmap/ |
| Linux | ~/.local/share/com.huanyuli.mindmap/ |
| Windows | %APPDATA%\com.huanyuli.mindmap\ |
These steps are for the maintainer. They are not done by the app.
- Create an OAuth App at https://github.com/settings/developers.
- Homepage URL can be this repository. The form requires an authorization callback URL; Device Flow does not use it.
http://127.0.0.1is enough. - On the app's settings page, enable Device Flow.
- Copy the Client ID. Do not generate a client secret for this flow. If GitHub shows one, do not put it in the app, the repo, or CI.
- Provide the Client ID in one of these ways, with no production placeholder checked in:
- Runtime or compile time:
MIND_GITHUB_CLIENT_ID=YOUR_CLIENT_ID.make devandmake desktopboth see it. A value set while compiling the desktop crate is embedded withoption_env!; a value set when the app starts overrides it. - Or set
clientIdingithub.jsonin the config folder above. LeaveaccessTokenempty; the sign-in flow fills it in.
- Runtime or compile time:
MIND_GITHUB_CLIENT_ID=YOUR_CLIENT_ID make devTo apply for the GitHub Developer Program, use https://github.com/developer/register with this integration (Gists API via OAuth Device Flow) and a support email you monitor. A development build is enough to apply. This repository does not publish a support address.
Issues and pull requests follow CONTRIBUTING.md: use the issue forms, keep one concern per change, and run the checks listed there. Security problems should go through SECURITY.md rather than the public tracker.
- Built on SimpleMindMap by wanglin2 — MIT, notice kept in LICENSE.
- From upstream: the editor, the
simple-mind-map/engine, the themes and most icons. - Added by this fork: the Tauri shell, dark mode, Mermaid authoring, AI generation, a local file library, and optional GitHub Gist sync.

