Markleaf Privacy Policy
Last updated: May 26, 2026 · Applies to Markleaf Android v2.x
Core principle
Markleaf is a local-first Markdown note app. Markleaf itself has no android.permission.INTERNET permission, runs no server of its own, and never automatically uploads notes, tags, attachments, or metadata to any external server.
Information Markleaf does not collect
- Name, email, contacts, location
- Account or login information
- Note body, title, tags, attached images, file names, metadata
- Usage statistics, telemetry, analytics events, advertising identifiers
- Crash reports or device identifiers
It also contains no analytics, ads, tracking, remote configuration, Firebase, or closed-source crash-reporting SDKs.
Network
Markleaf declares no internet permission.
android.permission.INTERNET none
Where data is stored
- Note bodies, titles, and the tag index are stored in the app's internal Room database.
- User settings are stored in DataStore.
- Attached images are copied into the app's internal storage, with sensitive EXIF metadata stripped on save.
Android system backup policy
Markleaf sets android:allowBackup="false" to exclude app data from Android Auto Backup and device-to-device transfer. If you need to move to a new device or use multiple devices, you choose Markdown export, share, or a SAF folder mirror yourself.
User-initiated data movement
The following actions happen only when you perform them yourself, going through Android's explicit permission dialog or a UI choice you make.
- Export a single note or all notes as Markdown (
.md) - Share note text or files via the Android system share sheet
- Tap an external link in the body to delegate to the OS / default browser
- Copy to the clipboard
- Mirror Markdown files to a SAF folder you choose
Whether a SAF folder is synced by an external sync client such as Drive, Dropbox, OneDrive, Syncthing, or a NAS mount is the responsibility of that external app. Markleaf does not perform that sync itself.
Permissions
The only runtime-style permission Markleaf declares is android.permission.VIBRATE for haptic feedback. It declares no location, microphone, camera, contacts, notification, external-storage read, media read, or network permissions.
Contact
For questions or security/privacy reports, please reach out via GitHub Issues.