Weilanx Mind Map

unlisted

by Azure12355

XMind-style mind maps stored as plain JSON (.wmind): themes, structures, markers, notes, relationships, summaries and boundaries. Friendly to AI agents.

★ 2 starsUpdated 5d agoMIT
View on GitHub
🌐 Language

Weilanx Mind Map

English | 中文 | Official Site | For Agents | Quick Start | File Format | Agent CLI | Development | Feedback

🧠 Weilanx Mind Map

Weilanx Mind Map is an XMind-style mind map editor for VS Code (plus Cursor and Windsurf) and Obsidian. Both open the same files.

Each map is a single .wmind file containing plain JSON, structured as a nested tree. You drag and edit on a canvas. AI agents read and write the file directly, or use the bundled wm.mjs CLI. Changes on either side show up live.

❤️ If you like it, a star 🌟 helps a lot!

Weilanx Mind Map

🌟 Key Features

  1. Feels like XMind:
  • 🌈 Rainbow branches with tapered main curves; subtopics fan out on smooth curves into their underlines
  • 🎨 6 built-in themes (Classic, Fresh, Business, Night, Sketch, Mono), each with light and dark variants that follow your editor
  • 🧭 4 structures (mind map, logic chart, org chart, tree chart), for the whole map or a single branch
  1. Editing:
  • ⌨️ XMind shortcuts: Enter adds a sibling, Tab a child, Shift+Tab a parent. Space / F2 or just typing starts editing (IME supported)
  • 🖱 Drag to re-parent or reorder; drop on empty canvas to make a floating topic. Shift-drag to marquee select, Cmd-click to multi-select
  • ↩️ Undo / redo. Copy and paste whole subtrees, or paste Markdown / indented text
  • 🗒 Outline view: edit the whole map as an indented list
  1. Styling and content:
  • 🖌 Format panel: shape, fill, border, text (size, bold, italic, strike, color), branch line (color, width, curve / straight / elbow), applied to one topic or many
  • 🏷 Markers (priority, task progress, flags, stars, smileys, symbols), labels, notes, links
  • 🔗 Relationships (draggable control points, optional text), summaries, boundaries, floating topics
  1. Import and export:
  • 🖼 Export PNG (2x), SVG or a Markdown outline
  • 📝 Right-click a Markdown file to turn it into a map
  1. Agent-friendly:
  • 🤖 Nested-tree JSON that reads like an outline. Only non-default values are written, and new topics can omit id
  • 🧾 Fixed key order and indentation, so git diffs stay clean
  • 🛠 Ships with a skill and the zero-dependency CLI wm.mjs: token-cheap outlines, topics addressed by path (Product/MVP), validation
  • 🔄 Saves after every edit; open canvases refresh when the file changes on disk
Markers, labels, summary, boundary, relationshipDark mode
Markers, labels, notes, summary, boundary, relationshipFollows your editor's dark mode

🎨 Six themes

Themes

🧭 Four structures

Structures

🗒 Outline view

Outline view

🤖 Install with an AI agent

Paste this into Claude Code, Codex, Cursor or any agent with a terminal:

Install the Weilanx Mind Map plugin and its agent skill for me.
Follow https://github.com/Azure12355/weilanx-mind-map/blob/main/docs/install-for-agents.md,
verify the install, then tell me the result.

Or run the installer yourself (macOS / Linux). It finds VS Code, Cursor, Windsurf and Insiders, then installs into each one and verifies it:

curl -fsSL https://raw.githubusercontent.com/Azure12355/weilanx-mind-map/main/scripts/install.sh | bash

For Obsidian, pass your vault path. To install the agent skill, use --skill:

curl -fsSL https://raw.githubusercontent.com/Azure12355/weilanx-mind-map/main/scripts/install.sh | bash -s -- --obsidian "/path/to/vault"
curl -fsSL https://raw.githubusercontent.com/Azure12355/weilanx-mind-map/main/scripts/install.sh | bash -s -- --skill

Put WM_EDITOR=cursor before bash to install into one editor only. Full steps and checks for agents: docs/install-for-agents.md.

🚀 Quick Start

VS Code

  1. Download weilanx-mind-map.vsix from the latest release.
  2. In the Extensions view, choose ··· → Install from VSIX..., or run code --install-extension weilanx-mind-map.vsix --force.
  3. Open any .wmind file (try examples/AI应用开发路线.wmind), or right-click a folder → Create Mind Map (.wmind).

Obsidian

  1. Download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/weilanx-mind-map/. Or install it with BRAT using Azure12355/weilanx-mind-map.
  2. Enable Weilanx Mind Map under Settings → Community plugins.
  3. Open a .wmind file, or create one with the ribbon icon. Right-click a Markdown note to convert it. In Obsidian, links can also be [[note]].

⌨️ Shortcuts

ActionKeys
Add sibling / child / parentEnter / Tab / Shift+Tab
Insert sibling beforeShift+Enter
Edit textSpace, F2, double-click, or just start typing
New line / finish editingShift+Enter / Enter or Esc
DeleteDelete / Backspace
Navigate / swap with siblingArrow keys / Cmd+↑ Cmd+↓
Fold / unfoldCmd+/ or click the dot at the branch end
Undo / redoCmd+Z / Cmd+Shift+Z
Zoom in / out / fitCmd+= / Cmd+- / Cmd+0
Pan / zoomDrag background, Space + drag / Cmd + wheel, pinch
Multi-select / marqueeCmd-click / Shift-drag
New floating topicDouble-click the background

On Windows / Linux, use Ctrl instead of Cmd.

📄 File Format

{
  "version": 1,
  "theme": "fresh",
  "root": {
    "id": "a1b2c3",
    "text": "Product plan",
    "children": [
      {
        "id": "k9x2m1",
        "text": "Research",
        "markers": ["priority-1", "task-50"],
        "summaries": [{ "id": "s1", "from": "p0q9w8", "to": "p0q9w9", "text": "Two weeks" }],
        "children": [
          { "id": "p0q9w8", "text": "10 interviews", "labels": ["qualitative"] },
          { "id": "p0q9w9", "text": "500 surveys", "note": "Markdown note" }
        ]
      },
      { "id": "z7y6x5", "text": "MVP", "style": { "fill": "#FFE8A3" } }
    ]
  },
  "relationships": [{ "id": "r1", "from": "k9x2m1", "to": "z7y6x5", "text": "feeds" }]
}
  • Nested tree: the indentation is the hierarchy.
  • Only non-default values are written: no style means "follow the theme", and collapsed appears only when true.
  • New topics may omit id: the plugin fills it in.
  • Summaries and boundaries name their first and last child by id, so ranges stay correct when siblings are inserted.
  • Themes: classic · fresh · business · night · sketch · mono. Structures: map · logic · org · tree.

Every field is described in references/format.md, and the schema is schema/wmind.schema.json. In VS Code, Open as JSON Text (editor title bar) gives you schema completion and validation.

🛠 For Agents

skills/weilanx-mind-map is a ready-made skill: SKILL.md, a format reference, and the zero-dependency CLI wm.mjs (Node 18+). The plugin and wm.mjs share the same parser and serializer, so their output is byte-identical.

wm.mjs

WM="node skills/weilanx-mind-map/scripts/wm.mjs"
$WM outline plan.wmind --ids                         # indented outline, cheapest to read
$WM add plan.wmind --parent "Product plan/MVP" "Export" "Import"
$WM set plan.wmind "Product plan/MVP/Export" --marker priority-1 --style fill=#FFE8A3
$WM rel plan.wmind "Product plan/Research" "Product plan/MVP" --text feeds
$WM from-md notes.md -o notes.wmind                  # Markdown outline → map
$WM validate plan.wmind

If the file is open in the plugin, the canvas redraws after every agent edit.

⚙️ Settings

SettingDefaultDescription
wmind.autoSave (VS Code)trueSave right after every edit so agents always read the latest content
Save after every edit (Obsidian)onWhen off, Obsidian's 2-second delayed save is used

🔧 Development

npm install
npm run dev:web          # preview the canvas in a browser (localStorage stands in for the file)
npm test                 # core unit tests + wm.mjs integration tests
npm run typecheck

npm run package          # build weilanx-mind-map.vsix
npm run build:obsidian   # Obsidian plugin -> dist/obsidian/{main.js,manifest.json,styles.css}
npm run dev:obsidian -- --out "/path/to/vault/.obsidian/plugins/weilanx-mind-map"   # rebuild on change
FolderPurpose
src/coreFile format, edit operations, themes, layout engine, Markdown conversion (pure TS, shared)
webview/srcReact canvas, shared by VS Code and Obsidian
src/vscode · src/obsidianThe two host shells
src/cliThe wm.mjs CLI (built into skills/weilanx-mind-map/scripts/)

📝 Roadmap

  • 📥 Import / export XMind .xmind files
  • 🖼 Images inside topics
  • 📑 Multiple sheets per file
  • 📝 Embed maps in Obsidian notes with ![[map.wmind]]
  • 🏪 Publish to the VS Code Marketplace and Obsidian community plugins

🤝 Contributing

Issues and pull requests are welcome! Please make sure npm test and npm run typecheck pass first.

📜 License

MIT © Azure12355

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.