A powerful tool for parsing and converting Apple Notes data into other formats. This project allows you to extract your Apple Notes content and convert it into a more accessible format.
Note: This tool is currently only supported on macOS systems, as it directly accesses the Apple Notes database which is only available on macOS.
- Parse Apple Notes database files
- Convert notes to Markdown format
- Handle attachments and media files
- Support for multiple accounts
- Preserve note formatting and structure
- Export to customizable output formats
- macOS operating system
- Bun (JavaScript runtime)
- TypeScript 5.0 or later
- Node.js dependencies (for file system operations)
- Go to the Releases page
- Download the macOS binary
- Make the binary executable:
chmod +x notes-parser
- Clone the repository:
git clone https://github.com/yourusername/notes-parser.git
cd notes-parser
- Install dependencies:
bun install
- Build the binary:
bun run build:binary
Run the parser:
./notes-parser
The tool will automatically:
- Locate your Apple Notes database
- Parse the content
- Convert notes to Markdown
- Save the output to your Documents folder
-
macOS Only: This tool is designed to work exclusively on macOS systems.
-
Full Disk Access Required: The tool needs access to your Apple Notes database, which requires Full Disk Access permission. If you encounter an error like:
Data import failed. Cannot access Apple Notes data folder at: /Users/username/~/Library/Group Containers/group.com.apple.notes
You need to grant Full Disk Access permission to the terminal application you're using:
- Open System Settings (System Preferences)
- Go to Privacy & Security
- Select Full Disk Access
- Click the + button
- Navigate to
/Applications/Utilities/Terminal.app
(or your preferred terminal app) - Click Open
If you're using a different terminal application (like iTerm2), make sure to add that application instead.
After granting the permission, restart your terminal application and try running the command again.
-
Data Safety: The tool only reads your Apple Notes data and does not modify the original database. However, it's always recommended to have a backup of your important data before using any data conversion tools.
notes-parser/
├── src/
│ ├── converters/ # Note format converters
│ ├── importer/ # Apple Notes import logic
│ ├── proto/ # Protocol Buffer definitions
│ ├── utils/ # Utility functions
│ └── main.ts # Entry point
├── package.json # Project configuration
└── tsconfig.json # TypeScript configuration
To build the project:
bun run build:binary
@zip.js/zip.js
: For handling ZIP filesprotobufjs
: For Protocol Buffer parsingplain-tag
: For template string processingstatic-params
: For parameter handling
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
New releases are automatically created when a new tag is pushed to the repository. The release process:
-
Create and push a new tag:
git tag v1.0.0 git push origin v1.0.0
-
GitHub Actions will automatically:
- Build binary for macOS
- Create a new release
- Upload the binary as a release asset
This project is licensed under the MIT License - see the LICENSE file for details.
- Apple Notes for providing the data format
- All contributors who have helped improve this project