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.
Claude Code / Codex Skill available: For AI-assisted MindManager automation with Claude Code, see the mindm-skill repository.
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
- CLI export via
mindm-export(HTML or data-only outputs) - CLI mindmap operations via
mindm-mindmap(JSON, Mermaid, creation) - Sphinx documentation plus runnable snippets under
examples/
Project Layout
mindm/
├── mindm/ # Platform connectors (MindManager COM, AppleScript, etc.)
├── mindmap/ # MindmapDocument model + serialization helpers
├── mindmap/export.py # CLI export entrypoint (mindm-export)
├── mindmap/actions.py # CLI mindmap entrypoint (mindm-mindmap)
├── docs/ # Sphinx documentation (make docs → docs/_build/html)
├── examples/ # Usage snippets / sanity scripts
├── dist/ # Build artifacts (wheels/sdists)
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)
CLI export
Run the console script (installed via pip or uvx):
mindm-export --type mermaid_html --open
Run from source without installing the package:
python -m mindmap.export --type json --output /tmp/mindmap.json
CLI mindmap
Query the current map or serialize it:
mindm-mindmap get-mindmap --mode content
mindm-mindmap serialize-mermaid --id-only
Create a map from Mermaid:
mindm-mindmap create-from-mermaid --input /tmp/map.mmd
Round-trip test (serialize → create):
mindm-mindmap serialize-mermaid --mode full | mindm-mindmap create-from-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 buildto create wheels/sdists indist/(requiresbuild, included in.[dev])python -m buildto create wheels and sdists only (requiresbuild)make docsto rebuild the HTML documentation underdocs/_build/htmlpytestfor unit/integration coverage (add tests intests/orexamples/)MINDM_SMOKE=1 pytest -qfor 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.7.3.tar.gz.
File metadata
- Download URL: mindm-0.0.7.3.tar.gz
- Upload date:
- Size: 127.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7478f3c656b4fab67f0ae8e534f16a423f1055c6d23a9a73e05278ac36e2f9d
|
|
| MD5 |
f51661da5710e89d3a282358c5239cc6
|
|
| BLAKE2b-256 |
1316cf84e7854191400bfa43a60704760474f2bbd54c367a933f550d76b7ccc9
|
File details
Details for the file mindm-0.0.7.3-py3-none-any.whl.
File metadata
- Download URL: mindm-0.0.7.3-py3-none-any.whl
- Upload date:
- Size: 128.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 |
1e896d3b60e55432f2417f0d2a3ecaf8972a8b8ae94c952ba4ce58d2e648dfbf
|
|
| MD5 |
ec0108a7dfa4938967dac60ddd57a437
|
|
| BLAKE2b-256 |
343b5a3c89f2addc9ba480ac70f3ef547e082c5db31f7d709b708656674db79a
|