Apple Notes Exporter

Apple Notes Exporter

MacOS app written in Swift that bulk exports Apple Notes (including iCloud Notes) to a multitude of formats preserving note folder structure.

401 Stars
GitHub

Apple Notes Exporter (apple-notes-exporter)

License: GPL v3 macOS 11.0+ Latest Release GitHub Downloads GitHub Stars GitHub Issues Last Commit Swift

MacOS app written in Swift that bulk exports Apple Notes (including iCloud Notes) to a multitude of formats preserving note folder structure.

Built by Konstantin Zaremski

Screenshot of version 1.1 of the Apple Notes Exporter

Purpose & Rationale

Many choose to do all of their note taking and planning through Apple Notes because of the simplicity and convenience that it offers. Unfortunately, there is no good workflow or mechanism built into Apple Notes that allows you to export all your notes or a group of your notes at once. This app provides a fast, efficient way to export your entire notes library while maintaining the folder hierarchy and preserving formatting.

What's New in v2.0

  • Command-line interface (notes-export) with subcommands for listing accounts, folders, and notes, plus full export support. JSON output for scripting.
  • Model Context Protocol server (notes-export-mcp) exposes the exporter as MCP tools for AI assistants like Claude Desktop.
  • Apple Shortcuts support via App Intents: Export Notes, List Accounts, and List Folders actions.
  • 12 new export formats in addition to the original 6 (18 total).
  • New app icon designed by Sascha Schneppmuller.
  • Gallery attachment fixes for On My Mac notes, handwritten note title resolution on macOS 15+, and correct file extensions for attachments without a database filename.

Export Formats

Rich / document formats

  • HTML - Native format returned by the Apple Notes database. Images included inline via base64 embed syntax. Configurable: font family, font size, margins.
  • PDF - Generated from HTML, preserves all formatting and images. Configurable: font family, font size, margins, page size (Letter, A4, A5, Legal, Tabloid).
  • TEX - LaTeX format for typesetting. Notes can be compiled individually or combined. Configurable: custom template with placeholders for title, dates, author, and content.
  • MD - Markdown format. Useful for moving to other Markdown-based apps like Obsidian. Images included inline via base64 embed syntax.
  • RTF - Rich text format. Opens in WordPad (Windows) or TextEdit (macOS). Configurable: font family and font size.
  • TXT - Plain text, no formatting or images.
  • DOCX - Microsoft Word format for Office and Google Docs.
  • ODT - OpenDocument text for LibreOffice and other open-source editors.
  • EPUB - E-book format for Kindle, Apple Books, and other e-readers.

Structured / data formats

  • JSON - Structured note data for APIs and data processing.
  • JSONL - One JSON object per line; ideal for LLM and RAG pipelines.
  • XML - Structured note data in XML for interoperability.
  • CSV - Flat table format for spreadsheets and databases.

Outline / documentation formats

  • OPML - Outline format for RSS readers and outliners.
  • ORG - Emacs Org-mode format for notes and task management.
  • RST - reStructuredText for Sphinx and Python documentation.
  • ADOC - AsciiDoc format for technical documentation.

Interchange formats

  • ENEX - Evernote export format for import into Evernote, Joplin, and similar apps.

Attachments are always saved in a folder corresponding to the name/title of the note that they are associated with.

Scripting & Automation

In addition to the GUI app, v2.0 ships three ways to drive the exporter from other tools:

Command-line interface (notes-export)

notes-export list-accounts
notes-export list-folders --account iCloud
notes-export list-notes --folder Work
notes-export export --output ~/Desktop/notes --format markdown --account iCloud

Built with Swift ArgumentParser. JSON output on stdout for piping into other tools, progress and errors on stderr. Supports filtering by account, folder, title, and modification date, plus incremental sync.

Apple Shortcuts (App Intents)

Three actions are available in the Shortcuts app under "Apple Notes Exporter":

  • Export Notes - Export selected notes to a chosen format and folder.
  • List Accounts - Returns a list of available note accounts.
  • List Folders - Returns a list of folders, optionally filtered by account.

Run them from Siri, automations, or any Shortcuts flow.

Model Context Protocol server (notes-export-mcp)

An MCP server exposing five tools (list_accounts, list_folders, list_notes, get_note, export_note) so AI assistants like Claude Desktop can read and export your notes directly. See PR #30 for details.

All three require Full Disk Access (same as the GUI app) to read the local Notes database.

Incremental Sync

Re-exporting an entire Notes library on every backup is wasteful when only a handful of notes have changed. Incremental sync tracks which notes have already been exported and, on subsequent runs, writes only notes that are new or have been modified since the last export.

On first run with --incremental, the CLI writes a AppleNotesExportSyncWatermark.json manifest to the output directory recording each note's ID, modification date, and exported path. On subsequent runs against the same directory, notes whose modification date has not changed are skipped, and existing files are left in place.

# First run: full export
notes-export export --output ~/backups/notes --format markdown --incremental

# Second run: only new/changed notes get re-written
notes-export export --output ~/backups/notes --format markdown --incremental

# Force a full re-export, wiping the manifest
notes-export export --output ~/backups/notes --format markdown --incremental --reset-sync

# Inspect manifest state without touching the database
notes-export sync-status --output ~/backups/notes

The GUI also exposes incremental sync as a toggle in the export options. Incremental sync and concatenation are mutually exclusive (see below); incremental requires per-note files.

Concatenation

For quick dumps of many notes into one file, the --concatenate flag joins every exported note into a single Exported Notes.<ext> in the output directory, with format-appropriate separators between notes (page breaks in HTML/TEX, --- rules in Markdown, row of equals signs in TXT).

notes-export export --output ~/Desktop --format markdown --concatenate
# Produces: ~/Desktop/Exported Notes.md

Concatenation is only supported for Markdown and plain text in the GUI; the CLI additionally supports HTML, RTF, and TeX. Concatenation is not compatible with --incremental (it would rewrite the whole concatenated file every time regardless) and is not available for the packaged binary formats (DOCX, ODT, EPUB, PDF).

Compatibility & System Requirements

  • MacOS Big Sur 11.0 or higher
    • Some of the features used are not available in earlier MacOS versions.
    • Backported from Ventura to Big Sur; earlier versions would require UI rewrites.
  • Intel or Apple Silicon Mac
  • 4GB RAM minimum
    • Optimized database-driven approach uses approximately 200MB of RAM regardless of Notes library size
    • Concurrent export processing for maximum performance
  • Disk Space
    • 20MB to accommodate the app itself
    • Additional space for your exported notes and their attachments

Limitations

As of version 1.0, Apple Notes Exporter no longer supports exporting from accounts other than iCloud accounts and the On My Mac account. This includes notes stored in Gmail, Yahoo, Outlook, and other email-based accounts.

Workaround for Email Account Notes

If you have notes in Gmail, Yahoo, Outlook, or other email accounts that you want to export:

  1. Open the Apple Notes app
  2. Select the notes you want to export from your email account
  3. Drag and drop them into a folder under "On My Mac" or one of your iCloud accounts
  4. Once moved, these notes will be accessible to Apple Notes Exporter and can be included in your export

This limitation is due to the database-driven approach used in version 1.0, which queries the local Notes database directly. Email-based note accounts store their data differently and are not included in the same database structure that iCloud and On My Mac accounts use.

Additional Screenshots

Note Selection Note Selection

Export Progress Export Progress

Export Complete Export Complete

Detailed Export Log Export Log

PDF Export Options PDF Options

LaTeX Template Editor LaTeX Options

Installation

The latest download is available from the Github "Releases" tab.

Make sure that you have "App Store and Identified Developers" set as your app install sources in the "Privacy & Security" section of System Settings in MacOS.

As of Version 0.4 Build 5, we are distributing a notarized executable. For older versions, go to the "Privacy & Security" pane of System Settings and click "Open Anyway" under the "Security" section towards the bottom of the pane. See Apple's article https://support.apple.com/en-us/HT202491 if you need more help or a better explanation on how to make an exception for the app to run.

Acknowledgements

This project benefited from the groundwork and research done by threeplanetssoftware on Apple Notes protobuf formats and database parsing in their apple_cloud_notes_parser project. Their work was instrumental in understanding the Apple Notes database structure, enabling the transition from AppleScript-based export to the more efficient database-driven approach used in version 1.0.

Thanks to everyone who has contributed to this project:

See CONTRIBUTORS.txt for the full list.

@kzaremski
@kzaremski
@AnotherCoolDude
@AnotherCoolDude
@Schneppi
@Schneppi
@nikolsky2
@nikolsky2

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Apple Notes Exporter
Copyright (C) 2026 Konstantin Zaremski
Licensed under the GNU General Public License v3.0

Star History

Star History Chart

Related

How to Install

  1. Download the template file from GitHub
  2. Move it anywhere in your vault
  3. Open it in Obsidian — done!

Stats

Stars

401

Forks

33

License

GPL-3.0

Last updated 1d ago

Categories

Tags

apple-notesbulk-operationetlmacos-app