Python library for interacting with local installed MindManager(tm) on Windows and MacOS platform.
Project description
mindm
Python library for interacting with locally installed MindManager™ on Windows and macOS platforms.
Features
- Direct automation hooks for MindManager via platform-specific connectors in
mindm/ - High-level document model, serialization helpers, and exporters in
mindmap/ - YAML, JSON, and Mermaid serialization/deserialization helpers for round-tripping maps
- Sphinx documentation plus runnable snippets under
examples/
Project Layout
mindm/
├── mindm/ # Platform connectors (MindManager COM, AppleScript, etc.)
├── mindmap/ # MindmapDocument model + serialization helpers
├── docs/ # Sphinx documentation (make docs → docs/_build/html)
├── examples/ # Usage snippets / sanity scripts
├── dist/ # Build artifacts generated by python -m build
└── Makefile # Build/packaging helpers (make help for summary)
Installation
PyPI
pip install mindm
Local development
git clone https://github.com/robertZaufall/mindm
cd mindm
pip install -e ".[dev]"
Getting Started
Low-level example
Example for iterating over all topics in a mindmap and changing the topic text to uppercase:
import mindm.mindmanager
def iterate_topics(topic):
text = m.get_text_from_topic(topic)
m.set_text_to_topic(topic, text.upper())
subtopics = m.get_subtopics_from_topic(topic)
for subtopic in subtopics:
iterate_topics(subtopic)
m = mindm.mindmanager.Mindmanager()
central_topic = m.get_central_topic()
iterate_topics(central_topic)
High-level examples
Example for loading a mindmap from an open mindmap document and cloning it to a new document:
import mindmap.mindmap as mm
document = mm.MindmapDocument()
document.get_mindmap()
document.create_mindmap()
Example for serializing a mindmap to YAML format:
import yaml
import mindmap.mindmap as mm
import mindmap.serialization as mms
document = mm.MindmapDocument()
document.get_mindmap()
guid_mapping = {}
mms.build_mapping(document.mindmap, guid_mapping)
yaml_data = mms.serialize_object(document.mindmap, guid_mapping)
print(yaml.dump(yaml_data, sort_keys=False))
Example for serializing / deserializing a mindmap to / from Mermaid format including all attributes:
import json
import mindmap.mindmap as mm
import mindmap.serialization as mms
document = mm.MindmapDocument()
document.get_mindmap()
guid_mapping = {}
mms.build_mapping(document.mindmap, guid_mapping)
serialized = mms.serialize_mindmap(document.mindmap, guid_mapping, id_only=False)
print(serialized)
deserialized = mms.deserialize_mermaid_full(serialized, guid_mapping)
print(json.dumps(mms.serialize_object_simple(deserialized), indent=1))
document_new = mm.MindmapDocument()
document_new.mindmap = deserialized
document_new.create_mindmap()
Example for serializing / deserializing a simplified Mermaid mindmap (text and indentation only):
import mindmap.mindmap as mm
import mindmap.serialization as mms
document = mm.MindmapDocument()
document.get_mindmap()
simple_mermaid = mms.serialize_mindmap_simple(document.mindmap)
print(simple_mermaid)
simple_root = mms.deserialize_mermaid_simple(simple_mermaid)
Example for deserializing a simplified Mermaid mindmap (text and indentation only):
import mindmap.serialization as mms
mermaid = """
mindmap
Creating an AI startup
Vision & Strategy
Mission and Value
Problem statement
Value proposition
Long term goals
"""
mindmap_root = mms.deserialize_mermaid_simple(mermaid)
Platform Specific Functionality
| Platform | Supported | Not Supported |
|---|---|---|
| Windows | topics, subtopics, notes, icons, images, tags, external/topic links, relationships, RTF | floating topics, callouts, colors, lines, boundaries |
| macOS | topics, subtopics, notes, relationships | icons, images, tags, links, RTF, floating topics, callouts, colors, lines, boundaries |
Development Workflow
pip install -e ".[dev]"to get linting, testing, and docs dependenciesmake build(orpython -m build) to create wheels and sdists indist/make docsto rebuild the HTML documentation underdocs/_build/htmlpytestfor unit/integration coverage (add tests intests/orexamples/)python examples/test.pyfor a live smoke run against a connected MindManager instance
See make help for additional automation such as version bumps (make update-version) or GitHub releases.
Documentation
Generated docs publish to GitHub Pages: https://robertzaufall.github.io/mindm/.
Run make docs locally to validate new API additions before contributing changes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mindm-0.0.5.2.tar.gz.
File metadata
- Download URL: mindm-0.0.5.2.tar.gz
- Upload date:
- Size: 99.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ed030fb9ed489a78ca02ca0c636163310eed8d435dfc665682c8e614c6df1fe
|
|
| MD5 |
c0c5df0c077be57e251a0e8c08c50902
|
|
| BLAKE2b-256 |
7edd11834b509eab13f98f9eea70603e86de3ff7aebbceda8bbe3cff598c29b0
|
File details
Details for the file mindm-0.0.5.2-py3-none-any.whl.
File metadata
- Download URL: mindm-0.0.5.2-py3-none-any.whl
- Upload date:
- Size: 99.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daa58c3c89638ef475a054596f3a7b3ff61151eb9bf8dfcb84455f66ee1a8b1f
|
|
| MD5 |
70808dd285548b1d23b233a2304cac44
|
|
| BLAKE2b-256 |
0855eef80b1cd441f1c9e1aa5f05f67a8efed915589035bc84d6e302503c55a4
|