Skip to main content

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 Node objects
  • 📍 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)

Source distribution for mindmap-toolkit 0.1.1
File Size Uploaded
mindmap_toolkit-0.1.1.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mindmap-toolkit 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page