Skip to main content

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.

PyPI version Documentation

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)
  • Codex skills in skills/mindm-export and skills/mindm-mindmap (package with make skills or make build)
  • 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)
├── skills/       # Codex skills (mindm-export, mindm-mindmap)
├── docs/         # Sphinx documentation (make docs → docs/_build/html)
├── examples/     # Usage snippets / sanity scripts
├── dist/         # Build artifacts (wheels/sdists)
├── mindm/skills/ # Packaged skill bundles included in distributions

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

Codex skills

Skill packages live under skills/ and are packaged into .skill files under mindm/skills/ so they are included in wheels and sdists. Run make skills (or python package_skills.py) to generate the bundles. Current skills:

  • skills/mindm-exportmindm/skills/mindm-export.skill
  • skills/mindm-mindmapmindm/skills/mindm-mindmap.skill

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 dependencies
  • make build to create wheels/sdists in dist/ and .skill bundles in mindm/skills/
  • python -m build to create wheels and sdists only
  • make docs to rebuild the HTML documentation under docs/_build/html
  • pytest for unit/integration coverage (add tests in tests/ or examples/)
  • MINDM_SMOKE=1 pytest -q for 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mindm-0.0.7.2.tar.gz (127.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mindm-0.0.7.2-py3-none-any.whl (128.7 kB view details)

Uploaded Python 3

File details

Details for the file mindm-0.0.7.2.tar.gz.

File metadata

  • Download URL: mindm-0.0.7.2.tar.gz
  • Upload date:
  • Size: 127.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for mindm-0.0.7.2.tar.gz
Algorithm Hash digest
SHA256 8d314bd9ff4e4c9d4a76fbd7d10f64bed5585a148c2de5ac81eb944086fa43fa
MD5 945ff71ed9a70b9f680c54b97c7e589a
BLAKE2b-256 8db65fbcd7bb90013cb2f83946a37e845128443e65fc2f78dcd9ed4a3a1fd1fd

See more details on using hashes here.

File details

Details for the file mindm-0.0.7.2-py3-none-any.whl.

File metadata

  • Download URL: mindm-0.0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 128.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for mindm-0.0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 39532eaf9e0a067c61d45635b85384918b29e34c2a9c4cf1d1ac829f93a005e5
MD5 14c5d9fb686380f294f3454ea07f778e
BLAKE2b-256 e93aa9c3e9fc4d460a6ea2342bc42a57c28858b97f3af82f568cc48840e9c8b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page