MindZJ
pendingby SuperJohn
An interactive mind map plugin with rainbow connections, drag & drop, custom styles, and 19 languages.
πΊοΈ
MindZJ β Mind Map Plugin for Obsidian
A feature-rich, fully customizable mind mapping plugin built natively for Obsidian.
Features β’ Installation β’ Quick Start β’ Shortcuts β’ Customization β’ Development β’ License
π README available in: English | δΈζ | ζ₯ζ¬θͺ | FranΓ§ais | Deutsch EspaΓ±ol
If you find MindZJ useful, consider supporting the project
Preview
Creating nodes, editing text, drag & drop, and rainbow connections in action
MindZJ main interface β create, edit, and style mind maps directly inside Obsidian
Global Style Panel β fine-tune every visual detail of your mind map
Features
Core
- Native
.mindzjfile format β files live in your vault and sync with Obsidian's file system - Unlimited root nodes β create multiple independent trees on a single canvas
- Bidirectional layout β place child nodes to the right, left, or both sides of a root
- Markdown mode β toggle between visual map view and raw Markdown text editing
- Undo / Redo β full history stack for safe experimentation
Editing
- Inline text editing β double-click or press Space to edit a node in place
- Type-to-edit β start typing while a node is selected to enter edit mode directly
- Multi-line support β Shift+Enter for line breaks within a single node
- Keyboard-driven workflow β Enter to add a sibling, Tab to add a child, arrow keys to navigate
- Multi-select β Shift/Ctrl-click or box-select to operate on multiple nodes at once
- Copy / Cut / Paste β full clipboard support for node trees, including cross-map paste
- Edit on create β optionally enter edit mode immediately when creating new nodes
Visual
- 6 connection line styles β Bezier, Straight, Curved, Step, Bracket, and Loose
- 9 built-in rainbow palettes β Classic, Pastel, Neon, Earth, Ocean, Sunset, Forest, Candy, Monochrome
- Custom rainbow palettes β define your own color sequences for connection lines
- Per-node style overrides β change background, text color, font, border, and border radius on individual nodes
- Per-node connection color & width β override the global connection color for any branch
- 10 font choices β including system fonts, serif, sans-serif, and monospace
- 5 border styles β solid, dashed, dotted, double, none
- Canvas background color β match your theme or set a custom background
Interaction
- Drag & drop β reorder siblings and reparent nodes by dragging
- Root node dragging β freely reposition root nodes on the canvas
- Zoom & pan β scroll to pan, Shift+scroll or pinch to zoom, with configurable inversion
- Focus node β press
Fto center the selected node in the viewport - Search β Ctrl+F to search all nodes by text, with result highlighting and navigation
Toolbar & Style Panel
- Customizable toolbar β position (top / bottom), padding, background, button colors, and border style
- Dedicated Style Panel β a right-side panel with every style setting organized into collapsible sections
- In-map style modal β right-click the canvas β Global Style for quick adjustments without leaving the map
- Show / hide toolbar β toggle from settings, right-click menu, or the style panel
Internationalization
- 19 languages β English, δΈζ, ζ₯ζ¬θͺ, FranΓ§ais, Deutsch, EspaΓ±ol, Π ΡΡΡΠΊΠΈΠΉ, Svenska, ΰ€Ήΰ€Ώΰ€¨ΰ₯ΰ€¦ΰ₯, νκ΅μ΄, PortuguΓͺs, Suomi, Norsk, Nederlands, Liechtensteinisch, Dansk, Χ’ΧΧ¨ΧΧͺ, Italiano, Ψ§ΩΨΉΨ±Ψ¨ΩΨ©
- Custom node names β rename the default "Root" and "Child" labels per language
Settings
- Fully customizable keyboard shortcuts β rebind every action with a visual key recorder
- Scroll & zoom inversion β independent toggles for vertical scroll, horizontal scroll, and zoom direction
- Developer mode β overlay showing internal state (selection, pan, zoom, node count)
Installation
From Obsidian Community Plugins (Recommended)
Coming soon β the plugin is currently in development.
- Open Settings β Community Plugins β Browse
- Search for MindZJ
- Click Install, then Enable
Manual Installation
- Download the latest release (
main.js,manifest.json) from GitHub Releases - Create a folder in your vault:
.obsidian/plugins/mindzj/ - Copy
main.jsandmanifest.jsoninto that folder - Restart Obsidian, then enable MindZJ in Settings β Community Plugins
Quick Start
- Click the πΊοΈ network icon in the left ribbon, or run the command "New MindZJ"
- A new
.mindzjfile is created and opened in map view - Double-click a node or press Space to edit its text
- Press Tab to add a child node, Enter to add a sibling
- Right-click the canvas to access the global style modal, or click π¨ Style in the toolbar to open the style panel
From zero to a styled mind map in under 30 seconds
Keyboard Shortcuts
All shortcuts are rebindable in Settings β MindZJ β Keyboard Shortcuts.
| Action | Default Shortcut |
|---|---|
| Edit node | Space or Ctrl + Enter |
| Add sibling | Enter |
| Add child | Tab |
| Add left child | Shift+Tab |
| Focus / center node | F |
| Undo | Ctrl + Z |
| Redo | Ctrl + Shift + Z |
| Search nodes | Ctrl + F |
| Copy node | Ctrl + C |
| Cut node | Ctrl + X |
| Paste node | Ctrl + V |
| Delete node | Delete / Backspace |
| Navigate | β β β β |
| Line break (in edit) | Shift + Enter |
| Zoom in | Shift + = |
| Zoom out | Shift + - |
| Reset zoom | Shift + 0 |
| Pan canvas | Hold Space + mouse drag |
Customization
Global Style
The Global Style panel controls the default appearance of all nodes and connections. Access it via:
- Toolbar β π¨ Style button β opens the right-side panel
- Right-click canvas β π¨ Global Style β opens an in-map modal
- Settings β MindZJ β basic style options (canvas background, theme)
Available style options include:
| Category | Properties |
|---|---|
| Child Node | Background, text color, font size, font family, border (style/color/width/radius), min width, min height |
| Root Node | Same as child node, with independent defaults |
| Connection | Style (6 types), color, width, length, direction, rainbow toggle & palette |
| Selection | Selection outline color, width, offset; edit outline color & width |
| Text | Alignment (left/center/right), padding, line height |
| Canvas | Background color |
| Toolbar | Position, padding (top/right/bottom/left), background, button background/border/text colors |
Per-Node Style
Right-click any node β π¨ Style to override its individual appearance:
- Background color, text color, font size, font family
- Border style, color, width, radius
- Connection line color and width (for the branch leading to this node)
Rainbow Connections
Enable rainbow mode to automatically color each branch with a distinct hue. Choose from 9 built-in palettes or define a custom one with up to 12 colors.
File Format
MindZJ uses a custom .mindzj file extension. The file content is plain JSON:
{
"rootNodes": [
{
"id": "uuid",
"text": "Root",
"x": 0,
"y": 0,
"width": 100,
"height": 44,
"children": [
{
"id": "uuid",
"text": "Child",
"x": 0,
"y": 0,
"width": 80,
"height": 32,
"children": []
}
],
"isRoot": true
}
]
}
Files are human-readable and version-control friendly. They sync seamlessly across devices via Obsidian Sync, iCloud, Git, or any file-based sync tool.
Development
Prerequisites
- Node.js 16+
- npm
Setup
git clone https://github.com/zjok/mindzj.git
cd mindzj
npm install
Build
# Development (watch mode β auto-rebuilds on file changes)
npm run dev
# Production (single build, no sourcemap, tree-shaken)
npm run build
Project Structure
mindzj/
βββ src/
β βββ main.ts # Plugin entry point, commands, lifecycle
β βββ MindMapView.ts # Core mind map view: rendering, editing, interaction
β βββ StylePanelView.ts # Right-side style panel view
β βββ SettingsTab.ts # Plugin settings tab
β βββ types.ts # TypeScript interfaces, defaults, constants
β βββ i18n.ts # 19-language translation system
βββ manifest.json # Obsidian plugin manifest
βββ package.json # npm dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ esbuild.config.mjs # Build configuration
βββ main.js # Compiled output (generated)
Technology Stack
- TypeScript β strict typing for reliability
- esbuild β fast bundling with tree-shaking
- Obsidian API β native plugin integration (views, settings, commands, file system)
- SVG + foreignObject β hardware-accelerated rendering with HTML content inside SVG nodes
Support
If you find MindZJ useful, consider supporting the project:
License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-or-later).
Made with β€οΈ by SuperJohn 2026.03
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.