Skip to main content

Bulk-export all your MindMeister maps without a Business plan

Project description

MapSnatch

CI License: AGPL v3 Python 3.9+ Docs

MindMeister lets you export maps one at a time unless you pay for a Business plan. This tool gives you bulk export using their own public API — available on all plan types including free.

Hosted version (no CLI): mapsnatch.com — pay once, export in the browser.

Contributing Security
Support Docs
Code of Conduct Report a bug

If this CLI saves you time, tips are welcome (not required):

ko-fi

Install

PyPI: not published yet — there is no pip install mapsnatch on PyPI. First release needs PYPI_SETUP.md (trusted publisher + v0.1.0 tag).

From GitHub (works today):

git clone https://github.com/gavinc/mapsnatch
cd mapsnatch
pip install -e .
echo "MINDMEISTER_API_TOKEN=your_personal_access_token_here" > .env
mapsnatch

Create a personal access token at mindmeister.com/api

Supported formats

Flag Format Notes
mm FreeMind Recommended — best portability, opens in FreeMind and Freeplane
pdf PDF Good for sharing and archiving
mind MindMeister native For re-import back into MindMeister
xmind XMind For use in the XMind app
rtf Rich Text Format Text-based outline

Not supported: png and docx return empty responses from the API — these appear to require a Business plan subscription.

Usage

mapsnatch [OPTIONS]

Options:
  --format, -f    Export format: mm, pdf, mind, xmind, rtf  (default: mm)
  --output, -o    Output directory                           (default: ./exports)
  --token, -t     Personal access token (or MINDMEISTER_API_TOKEN in env / .env)
  --dry-run       List maps without downloading
  --list-formats  Show supported formats and exit

Examples

# Export all maps as FreeMind format (default)
mapsnatch

# Export as PDF into a custom directory
mapsnatch --format pdf --output ~/mindmaps

# List what maps would be exported without downloading
mapsnatch --dry-run

# Pass personal access token on the command line
mapsnatch --token YOUR_PERSONAL_ACCESS_TOKEN

How it works

MindMeister provides a public REST API (v1 + v2) that allows any authenticated user to list and export their maps. This tool:

  1. Fetches your full map list from GET /services/rest/oauth2?method=mm.maps.getList
  2. Downloads each map via GET /api/v2/maps/{id}.{format}
  3. Extracts the file from its zip container (for mm, mind, xmind formats)
  4. Saves it with a sanitised filename into your output directory

Auth uses your personal access token as a Bearer credential — no OAuth dance required.

Opening exported files

  • FreeMind (.mm) — Open with FreeMind or Freeplane (recommended — free, cross-platform)
  • XMind (.xmind) — Open with XMind
  • PDF — Any PDF viewer
  • RTF — Any word processor

Setup

Get your personal access token

  1. Log in to MindMeister
  2. Open mindmeister.com/api and create a personal access token
  3. Copy the token (not the same as MindMeister's separate "API keys" product)

Configure

Either:

# Option A: .env file (recommended)
echo "MINDMEISTER_API_TOKEN=your_token_here" > .env

# Option B: environment variable
export MINDMEISTER_API_TOKEN=your_token_here

# Option C: command line flag
mapsnatch --token your_token_here

Contributing

See CONTRIBUTING.md. Pull requests welcome — run python -m pytest -v before opening a PR.

License

AGPL-3.0-or-later

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

mapsnatch-0.1.0.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

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

mapsnatch-0.1.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file mapsnatch-0.1.0.tar.gz.

File metadata

  • Download URL: mapsnatch-0.1.0.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mapsnatch-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e7b0f39b13665ec12ad66f148a544b4a47af6f74e9a1a0b9bb2b47dbaaf7fc95
MD5 96d5298895452e478f12036fd23b2b2a
BLAKE2b-256 e923166bc65b21559e274989dd13a5ae53a7baa03feacf80602e91a2d49132bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for mapsnatch-0.1.0.tar.gz:

Publisher: release.yml on gavinc/mapsnatch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mapsnatch-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mapsnatch-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mapsnatch-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4045bf4cf19fde023e6fe57feb04efd12ae444cac1baecfa4fa02d9fac343d93
MD5 f26a91c3c4103926c0c9d178a77ae38e
BLAKE2b-256 8cb816f3dc8f009e3228a381ea248019a4a1c64ebbfc560cb4f9de183fa74ef3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mapsnatch-0.1.0-py3-none-any.whl:

Publisher: release.yml on gavinc/mapsnatch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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