notion2md
Notion Markdown Exporter with Python Cli
Decision gist · record as of 2026-08-14
Yes, if you need to export Notion content to Markdown and can accept dormant maintenance. The package is stable, has low install friction, no known vulnerabilities, and works with Python 3.7 through 3.12. However, the last release was 2024-01-10; if you encounter bugs or need support for newer Notion API features, you may need to fork or patch it yourself.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a valid Notion integration token set via NOTION_TOKEN environment variable or passed via --token CLI option.
- Low install friction with only two runtime dependencies (notion-client and cleo).
- Maintenance is dormant—last release was 2024-01-10—so expect no active bug fixes or feature updates, though the repository remains public and unarchived.
License · maintenance · safety
MIT (permissive) — MIT license is permissive, allowing free use, modification, and distribution with minimal restrictions; suitable for both personal and commercial projects.
last release 2024-01-10 (947 days) · last repo commit 2024-01-10 · 757 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 257,728 downloads/mo, #8,436 on PyPI
Alternatives
Verify before relying
pip install notion2md
from notion2md.exporter.block import MarkdownExporter
MarkdownExporter(block_id='your_block_id', output_path='./output', download=True).export()- Completeness of Markdown conversion for all Notion block types (to-do list shows synced blocks and tables are supported, but page and column blocks are not yet implemented).
- Behavior and reliability when exporting large Notion workspaces or deeply nested block structures.
- Compatibility with recent Notion API changes since the last release in January 2024.
What it is and what it does
Notion2md is a command-line tool and Python library that converts Notion pages and blocks into Markdown format using the official Notion API. It can export content as standalone Markdown files or return it as a string, and optionally download embedded images and files to a local directory. The tool is built on notion-client (the official Notion SDK for Python) and cleo for CLI functionality.
You use it either as a shell command with options like --download and --unzipped, or programmatically by instantiating MarkdownExporter or StringExporter with a block ID and output path. It's designed for workflows where you want to extract Notion content for use in static site generators, blogs, or local documentation systems.
Use it for
- Export Notion documentation or wiki pages to Markdown for use in static site generators like Hugo or Jekyll.
- Batch convert Notion blog drafts to Markdown for publishing to platforms that accept Markdown input.
- Back up Notion content as local Markdown files with embedded images and attachments downloaded.
- Integrate Notion as a content source in a CI/CD pipeline that processes Markdown.
- Extract structured Notion data (tables, synced blocks) into Markdown for version control or archival.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to export Notion content to Markdown and can accept dormant maintenance.
The package is stable, has low install friction, no known vulnerabilities, and works with Python 3.7 through 3.12. However, the last release was 2024-01-10; if you encounter bugs or need support for newer Notion API features, you may need to fork or patch it yourself.
Install
notion2md on PyPI
Before you install
Low install friction with only two runtime dependencies (notion-client and cleo). Maintenance is dormant—last release was 2024-01-10—so expect no active bug fixes or feature updates, though the repository remains public and unarchived.
Requires a valid Notion integration token set via NOTION_TOKEN environment variable or passed via --token CLI option.
License in practice
MIT license is permissive, allowing free use, modification, and distribution with minimal restrictions; suitable for both personal and commercial projects.
Quickstart
pip install notion2md
from notion2md.exporter.block import MarkdownExporter
MarkdownExporter(block_id='your_block_id', output_path='./output', download=True).export()
Verify before relying
- Completeness of Markdown conversion for all Notion block types (to-do list shows synced blocks and tables are supported, but page and column blocks are not yet implemented).
- Behavior and reliability when exporting large Notion workspaces or deeply nested block structures.
- Compatibility with recent Notion API changes since the last release in January 2024.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.7,<4 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesnotion-clientcleo |
| Maintenance | Dormant 947 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 257,728 / month, #8,436 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: notion2md-2.9.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “notion to markdown exporter”
- notion2mdExports Notion pages and blocks to Markdown files or strings using…
- notion-to-md-pyConverts Notion pages to Markdown files via the Notion API,…
- notionUnofficial Python client for Notion.so API v3 that maps Notion…
Give your agent the search over MCP, or paste the wish link into any chat.
More Markup packages
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
A Python markdown parser that converts markdown to HTML following the CommonMark specification, with support for plugins and custom syntax rules.
Install it if you need reliable markdown-to-HTML conversion.
Beautiful Soup parses HTML and XML documents into a navigable tree, providing Pythonic methods to search, iterate, and modify the parsed content.
Install it if you need to parse or extract data from markup documents.
et_xmlfile writes large XML files with minimal memory overhead by serializing elements to disk as they are created, rather than holding the entire tree in memory.
Install it if incremental XML writing fits your use case; skip it if your XML documents are small or you already use lxml.
Parses and edits TOML files while preserving formatting, comments, and structure, then serializes them back with layout intact.
Install it if you're building tools that touch TOML files and user readability of the source matters.
Parses Python docstrings in ReST, Google, Numpydoc, and Epydoc formats, extracting structured information like descriptions, parameters, return types, and exceptions.
Install it if you need to programmatically read and extract structured data from Python docstrings.
See also notion · notion-to-md-py · md2pdf · notion-client · md-click-2 · m2r2 · markdownify · pptx2md · sphinx_mdinclude · mdformat-black