apple-notes-exporter

Crates.ioapple-notes-exporter
lib.rsapple-notes-exporter
version0.1.0
created_at2025-01-19 00:22:29.371077+00
updated_at2025-01-19 00:22:29.371077+00
descriptionA library and CLI tool for exporting Apple Notes to Markdown
homepage
repositoryhttps://github.com/vacekj/apple-notes-exporter
max_upload_size
id1522336
size72,104
Josef (vacekj)

documentation

README

Apple Notes Exporter

A Rust library and CLI tool for exporting Apple Notes to Markdown files.

Features

  • Export all notes from Apple Notes to Markdown files
  • Preserve folder structure
  • Handle embedded images and attachments
  • Support for frontmatter metadata
  • Clean and modern Markdown output

Installation

As a CLI tool

cargo install apple-notes-exporter

As a library

Add this to your Cargo.toml:

[dependencies]
apple-notes-exporter = "0.1.0"

Usage

CLI

# Export notes to current directory
apple-notes-exporter

# Export notes to specific directory
apple-notes-exporter -o ./my-notes

# Export without using attachments folder
apple-notes-exporter --use-attachments false

# Export without subdirectories
apple-notes-exporter --use-subdirs false

Library

use apple_notes_exporter::{export_notes, ExportConfig};
use std::path::PathBuf;

fn main() -> anyhow::Result<()> {
    let config = ExportConfig {
        output_dir: PathBuf::from("./my-notes"),
        use_attachments: true,
        filename_format: String::from("&title"),
        subdir_format: String::from("&folder"),
        use_subdirs: true,
    };

    let notes = export_notes(&config)?;
    println!("Exported {} notes", notes.len());

    Ok(())
}

Requirements

  • macOS (uses AppleScript to access Notes)
  • Rust 1.70 or later

License

MIT

Commit count: 14

cargo fmt