notate is a simple, open-source Python CLI that exports Apple Books highlights and notes from your local macOS library into clean, well-formatted output files.
notate provides a fast and minimal way to extract your Apple Books highlights into formats that are ready to use in tools like Notion, Obsidian, or plain text workflows. It runs entirely locally and is designed for simplicity, readability, and zero friction.
- Shows only books that have highlights
- Lets you select a book by number or title text
- Asks for output format:
1= Notion (.md)2= Obsidian (.md)3= Plain Text (.txt)
- Writes a clean export file with:
- Book title at the top
- Highlights grouped chapter-by-chapter
- Entries sorted in reading order (location-based), not creation time
- Files saved in
exports/
When you run notate, it:
- Displays only books that contain highlights or annotations
- Allows selection by number or partial title match
- Supports multiple output formats:
- Notion (
.md) - Obsidian (
.md) - Plain Text (
.txt)
- Notion (
- Generates a clean export file with:
- Book title at the top
- Highlights grouped chapter by chapter
- Entries ordered by reading position (location-based), not creation time
Directly:
python3 notate.pyOr install command-line entrypoint:
python3 -m pip install .
notateNotate reads Apple Books local SQLite databases:
~/Library/Containers/com.apple.iBooksX/Data/Documents/BKLibrary/*.sqlite~/Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotation/*.sqlite
It also reads local EPUB data (including iCloud-synced books that exist locally) to detect chapter names where possible.
- macOS only (Apple Books local data layout)
- Reads local data only; nothing is uploaded
