mindmap-toolkit
Explore mind maps as Python trees.
mindmap-toolkit is a lightweight Python library for reading, navigating and analysing mind maps.
Instead of exposing the underlying file format, the library provides a clean and consistent tree API based on MindMap and Node objects.
The goal is to make mind maps easy to manipulate from Python, regardless of the original file format.
Currently, XMind is supported. Additional formats will be added in future releases through compatible parsers.
Features
- 🌳 Parse mind maps into a tree of
Nodeobjects - 📍 Navigate directly to any node using its path
- 🏷️ Explore labels
- 🚩 Explore markers
- 🔗 Read hyperlinks
- 📝 Read notes
- 🧭 Build breadcrumbs
- 🌲 Work on complete maps or subtrees
Installation
pip install mindmap-toolkit
Quick start
Load a mind map:
from mindmap_toolkit import MindMap
mm = MindMap.load("roadmap.xmind")
Navigate to a node:
backend = mm.at("1-0")
print(backend.title)
theme01
Every node is identified by its path.
example
├── domain01 (1)
│ ├── theme01 (1-0)
│ └── theme02 (1-1)
└── domain02 (2)
Working on a subtree
A Node is itself the entry point to a subtree.
backend = mm.at("1")
backend.get_labels()
backend.get_markers()
This allows the same API to be used on the whole mind map or on a specific branch.
Labels
List every label present in the map.
labels = mm.get_labels()
Result:
{
"important": [
(1, 0),
(2, 1, 3),
]
}
The same operation is available from any node.
backend.get_labels()
Markers
List every marker used in the map.
markers = mm.get_markers()
or
backend.get_markers()
Breadcrumbs
Retrieve the titles leading to a node.
mm.breadcrumb("2-0-1")
returns
[
{"title": "domain02", "path": (2,)},
{"title": "themeOne", "path": (2, 0)},
{"title": "subject_b", "path": (2, 0, 1)},
]
Philosophy
mindmap-toolkit is designed around three principles.
- Simple – a small and easy-to-learn API.
- Lightweight – minimal dependencies.
- Extensible – every parser exposes the same tree API.
The parser should be transparent to the user.
mm = MindMap.load("roadmap.xmind")
Tomorrow, the same API should work with other mind map formats without changing user code.
Roadmap
Current version:
- ✅ XMind parser
- ✅ Tree navigation
- ✅ Labels
- ✅ Markers
- ✅ Notes
- ✅ Links
- ✅ Breadcrumbs
Future versions:
- Search nodes
- Compare mind maps
- Export
- FreeMind support
- OPML support
- Markdown outline support
Documentation
The complete documentation is available in the docs/ directory.
Examples are available in the examples/ directory.
Contributing
Contributions, bug reports and feature requests are welcome.
Please open an issue before proposing significant changes.
License
MIT License.
Metadata
Release files for mindmap-toolkit 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mindmap_toolkit-0.1.1.tar.gz | 5.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mindmap_toolkit-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.0 kB
Release files / mindmap_toolkit-0.1.1.tar.gz
| Download URL | mindmap_toolkit-0.1.1.tar.gz |
|---|---|
| Size | 5.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c43b501995f74a56bc6b16950a324e7670d9b076faa8e9ce6ade2d474492150
|
|
BLAKE2b-256 checksum How to use checksums |
1f832cdd9447c2b095214033f87c0617ad74a965963487feaecabc79ef5465e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / mindmap_toolkit-0.1.1-py3-none-any.whl
| Download URL | mindmap_toolkit-0.1.1-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0635ef834d66d86f98006b8de76899bc1eff635b7a7733870585427a413119ef
|
|
BLAKE2b-256 checksum How to use checksums |
246e11312f9090c0bbc6793e22f8c45aca25d66ce3d14b3b99dfc4d90da1e23f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|