Create and read XMind mind map files (.xmind), supporting both modern (XMind Zen/2020+) and legacy (XMind 8) formats. Use this skill whenever the user mentions mind maps, brain maps, XMind, brainstorming diagrams, flowcharts, Gantt charts, project planning with visual maps, or wants to analyze/search existing .xmind files. Trigger on both English and Chinese expressions: "思维导图", "脑图", "脑图文件", "xmind", "mind map", "mindmap", "画个脑图", "做个思维导图", "创建脑图", "打开脑图", "分析思维导图", "看看这个xmind", "甘特图", "流程图", "逻辑图", "项目计划图", "鱼骨图", "时间线". Also trigger when the user asks to read, open, search, compare, or extract nodes from .xmind files, even if they don't explicitly say "XMind" — e.g. "帮我看看这个文件", "找一下脑图", "哪些任务没完成", "对比这几个文件".
Create and read XMind mind map files (.xmind), supporting both modern (XMind Zen/2020+) and legacy (XMind 8) formats. Use this skill whenever the user mentions mind maps, brain maps, XMind, brainstorming diagrams, flowcharts, Gantt charts, project planning with visual maps, or wants to analyze/search existing .xmind files. Trigger on both English and Chinese expressions: "思维导图", "脑图", "脑图文件", "xmind", "mind map", "mindmap", "画个脑图", "做个思维导图", "创建脑图", "打开脑图", "分析思维导图", "看看这个xmind", "甘特图", "流程图", "逻辑图", "项目计划图", "鱼骨图", "时间线". Also trigger when the user asks to read, open, search, compare, or extract nodes from .xmind files, even if they don't explicitly say "XMind" — e.g. "帮我看看这个文件", "找一下脑图", "哪些任务没完成", "对比这几个文件".
XMind Mind Map Skill
Create, read, and analyze .xmind mind map files. Supports natural Chinese and English interaction.
Natural language routing
This skill supports both Chinese and English. When the user makes a request, identify the intent and route to the correct script and action. Respond in the same language the user uses.
Creation intents → create_xmind.mjs
User says (Chinese)
User says (English)
Route to
"帮我做个思维导图" / "创建脑图" / "画个脑图" / "生成xmind" / "做个脑图"
"create a mind map" / "make an xmind" / "build a brainstorm"
Where <skill-dir> is the directory containing this SKILL.md file.
Updating an existing file (theme/style preservation)
If path points to a file that already exists (e.g. you're adding/editing a branch in a mind map someone already styled), create_xmind.mjs automatically preserves that file's visual theme, layout extensions, and embedded resources (like Thumbnails/thumbnail.png) — matched per-sheet by title. You do NOT need to read the old theme, back up the file, or manually merge anything yourself; just include the unchanged sheets/branches in your input JSON (with the same sheet titles) alongside the new/edited content, and the script carries the styling forward.
This only applies to the modern zen format. If you rewrite a sheet under a different title than it had before, it's treated as a brand-new sheet and gets a fresh default theme — keep sheet titles stable across updates when you want styling preserved.
Format compatibility
Both scripts handle two XMind format families:
Format
Files inside ZIP
XMind version
Default
zen (modern)
content.json, metadata.json, manifest.json
XMind Zen, XMind 2020+
Yes
legacy (XML)
content.xml, meta.xml, META-INF/manifest.xml
XMind 3–8 (2008–2019)
No
Reading: Auto-detects format — no configuration needed. Checks for content.json first (zen), then content.xml (legacy). All 8 actions work identically on both formats.
Creating: Add "format" to the input JSON. Accepts many version aliases:
When the user says "兼容旧版" / "XMind 8格式" / "旧版本格式" / "old format" / "XMind 8 compatible" / "兼容其他编辑器", use "format": "legacy". Otherwise use the default zen format.
JSON Input Format
{"path":"/Users/user/Desktop/my_mindmap.xmind","sheets":[{"title":"Sheet 1","rootTopic":{"title":"Central Topic","children":[{"title":"Branch 1","notes":"Plain text note","children":[{"title":"Sub-topic A"},{"title":"Sub-topic B"}]}]},"relationships":[{"sourceTitle":"Sub-topic A","targetTitle":"Sub-topic B","title":"related"}]}]}
Topic Properties
Each topic object supports:
Field
Type
Description
title
string (required)
Topic title
children
array of topics
Child topics
notes
string or {plain?, html?}
Notes. HTML supports: <strong>, <u>, <ul>, <ol>, <li>, <br>. NOT <code>.
href
string
External URL link
attachment
string
Absolute path to a file to attach (embedded in the .xmind). Mutually exclusive with href.
linkToTopic
string
Title of another topic to link to (internal xmind:#id link, works across sheets)
labels
string[]
Tags/labels
markers
string[]
Marker IDs: task-done, task-start, priority-1 to priority-9
callouts
string[]
Callout text bubbles
boundaries
{range, title?}[]
Visual grouping of children. Range: "(start,end)"
summaryTopics
{range, title}[]
Summary topics spanning children ranges
structureClass
string
Layout (see below)
shape
string
Topic shape (see shapes below)
position
{x, y}
Absolute position (only for detached topics in free-positioning sheets)
org.xmind.topicShape.diamond — diamond (use for conditions/decisions)
org.xmind.topicShape.ellipserect — ellipse (use for start/end)
org.xmind.topicShape.rect — rectangle
org.xmind.topicShape.underline — underline only
org.xmind.topicShape.circle — circle
org.xmind.topicShape.parallelogram — parallelogram (use for I/O)
Layout structures
org.xmind.ui.map.clockwise — balanced map
org.xmind.ui.map.unbalanced — unbalanced map
org.xmind.ui.logic.right — logic chart (right)
org.xmind.ui.org-chart.down — org chart (down)
org.xmind.ui.tree.right — tree (right)
org.xmind.ui.fishbone.leftHeaded — fishbone
org.xmind.ui.timeline.horizontal — timeline
Task properties
Simple checkbox (no dates needed):
taskStatus: "todo" or "done"
Planned tasks (for Gantt/timeline view in XMind):
Field
Type
Description
progress
number 0.0-1.0
Completion progress
priority
number 1-9
Priority (1=highest)
startDate
ISO 8601 string
Start date, e.g. "2026-02-01T00:00:00Z"
dueDate
ISO 8601 string
Due date
durationDays
number
Duration in days (preferred for relative planning)
dependencies
array
{targetTitle, type, lag?} — type: FS, FF, SS, SF
Two approaches for planned tasks:
Relative (preferred): Use durationDays + dependencies. XMind auto-calculates dates.
Absolute: Use startDate + dueDate for fixed dates.
When the user mentions "planning", "schedule", "timeline", "Gantt", "project", "phases", "排期", "甘特图", "项目计划", "时间线", "里程碑", use RELATIVE planned tasks unless specific dates are given.
Sheet properties
Field
Type
Description
title
string (required)
Sheet title
rootTopic
topic (required)
Root topic
relationships
array
{sourceTitle, targetTitle, title?, shape?} — connects topics by title. shape: "org.xmind.relationshipShape.curved" (default) or "org.xmind.relationshipShape.straight"
detachedTopics
array of topics
Free-floating topics (require freePositioning: true and position on each topic)
For flowcharts, logic diagrams, or algorithmic diagrams, use free positioning with detached topics and straight relationships:
{"path":"/tmp/flowchart.xmind","sheets":[{"title":"Algorithm","freePositioning":true,"rootTopic":{"title":"START","shape":"org.xmind.topicShape.ellipserect","structureClass":"org.xmind.ui.map.clockwise"},"detachedTopics":[{"title":"IS X > 0?","position":{"x":0,"y":130},"shape":"org.xmind.topicShape.diamond"},{"title":"PRINT YES","position":{"x":200,"y":130}},{"title":"PRINT NO","position":{"x":-200,"y":130}},{"title":"END","position":{"x":0,"y":260},"shape":"org.xmind.topicShape.ellipserect"}],"relationships":[{"sourceTitle":"START","targetTitle":"IS X > 0?","shape":"org.xmind.relationshipShape.straight"},{"sourceTitle":"IS X > 0?","targetTitle":"PRINT YES","title":"YES","shape":"org.xmind.relationshipShape.straight"},{"sourceTitle":"IS X > 0?","targetTitle":"PRINT NO","title":"NO","shape":"org.xmind.relationshipShape.straight"},{"sourceTitle":"PRINT YES","targetTitle":"END","shape":"org.xmind.relationshipShape.straight"},{"sourceTitle":"PRINT NO","targetTitle":"END","shape":"org.xmind.relationshipShape.straight"}]}]}
Conventions: Use ellipse for start/end, diamond for conditions, rectangle (default) for actions, parallelogram for I/O. Use "org.xmind.relationshipShape.straight" for all connectors. Position topics on a grid (y increments of ~130px, x offsets of ~200px for branches).
When the user mentions "flowchart", "algorithm", "logic diagram", "流程图", "逻辑图", "算法图", "程序流程", use this pattern.
Working with large files
When reading a PDF or other large file fails (e.g. "PDF too large"), extract text using CLI tools before building the mind map:
Returns an array of sheets, each with a root topic containing the full tree structure including notes, labels, markers, task status, relationships, etc.
searchIn options: title, notes, labels, callouts, tasks. Default: all fields.
When to use each action
Browsing/understanding a map: Use read to get the full structure
Finding .xmind files: Use list or search_files
Navigating to a specific topic: Use extract_node (fuzzy) or extract_node_by_id (exact)
Finding content across a map: Use search_nodes with appropriate searchIn filters
Filtering tasks: Use search_nodes with taskStatus: "todo" or "done"
Comparing maps: Use read_multiple to load several files at once
Important rules
NEVER use unzip, zipinfo, or any external ZIP tool on .xmind files. Both scripts handle ZIP internally — create_xmind.mjs writes ZIP with built-in code, read_xmind.mjs reads ZIP with built-in code. Just pipe JSON to the script and it handles everything. There is no need to extract, decompress, or inspect the .xmind file yourself.
When editing/adding to an existing .xmind file, always include every sheet with its original title — even sheets you aren't changing — so create_xmind.mjs can match them up and preserve their theme/styling/thumbnail (see "Updating an existing file" above). Only omit or retitle a sheet when you intentionally want it reset to default styling.
The output path MUST end with .xmind
Always write the file where the user requests (e.g. ~/Downloads, ~/Desktop)
IDs are generated automatically
Topic references in relationships and dependencies are resolved by title
HTML notes: only <strong>, <u>, <ul>, <ol>, <li>, <br> are supported. <code> is NOT supported by XMind.
Internal links (linkToTopic) work across sheets
Notes should be substantial and detailed — don't just repeat the topic title. Use notes to add explanations, context, definitions, examples, key points, or reasoning. Aim for 2-5 sentences minimum per note. Use HTML notes with <strong>, <ul>/<li>, <br> for well-structured content. Most topics should have notes unless they are self-explanatory leaf nodes.
The read script outputs JSON to stdout — pipe or redirect as needed
All read actions require the action field in the input JSON