A beautiful, lightweight markdown sticky notes application for macOS.
PeachLeaf is a native macOS application that brings the simplicity of sticky notes with the power of markdown. Create multiple floating note windows, customize their appearance, and organize your thoughts with markdown formatting and inline images.
- Full markdown syntax support with live preview
- Syntax highlighting with CodeMirror 6
- Switch between edit and preview modes
- Auto-save with 500ms debounce
- Paste images directly from clipboard (βV)
- Drag and drop images into notes
- Inline image preview while editing
- Resize images with 8-directional handles
- Maintain aspect ratio during resize
- Images stored locally with your notes
- Choose from predefined color palettes
- Separate background and text colors
- Persistent color settings per note
- Font size adjustment (5 levels)
- Create multiple independent note windows
- Drag windows anywhere on screen
- Resize notes to your preference
- Multi-monitor support with position persistence
- Auto-restore windows on app launch
βN- Create new noteβW- Close current noteβM- Toggle edit/preview modeβV- Paste image from clipboardβZ/ββ§Z- Undo / RedoDelete/Backspace- Delete selected image
When you first download and open PeachLeaf, macOS may display a security warning. This is normal for apps distributed outside the Mac App Store.
If you see "damaged" or "corrupted" error:
This happens because the app is not notarized by Apple. Use this command to bypass Gatekeeper:
# After copying app to Applications folder:
sudo xattr -rd com.apple.quarantine /Applications/PeachLeaf.app
sudo codesign --force --deep --sign - /Applications/PeachLeaf.appOr disable Gatekeeper temporarily (not recommended):
sudo spctl --master-disable
# Open PeachLeaf.app once, then re-enable:
sudo spctl --master-enableIf you see "unidentified developer" warning:
Method 1: Right-click to open (Recommended)
- Right-click (or Control-click) on PeachLeaf.app
- Select "Open" from the menu
- Click "Open" in the dialog that appears
Method 2: System Settings
- Try to open PeachLeaf normally (it will be blocked)
- Go to System Settings β Privacy & Security
- Scroll down to find "PeachLeaf was blocked"
- Click "Open Anyway"
Method 3: Terminal command
xattr -cr /Applications/PeachLeaf.appAfter using any of these methods once, PeachLeaf will open normally in the future.
- First Launch: A default note window will appear
- New Note: Press
βNor selectFile β New Notefrom the menu - Start Typing: Click anywhere in the note to start editing
- Paste: Copy an image and press
βVin the editor - Drag & Drop: Drag image files directly into the note
- Click on an image to select it
- Drag any of the 8 resize handles (corners or edges)
- The image will maintain its aspect ratio
- Click on an image to select it
- Press
DeleteorBackspace
- Select
Color β Choose Color...from the menu - Click on a color palette
- The color picker will close automatically
- Edit Mode: Full markdown editing with syntax highlighting
- Preview Mode: Rendered markdown view
- Toggle: Press
βMor click the mode button in toolbar
Select Font from the menu and choose:
- Default (16px)
- Small (14px)
- Medium (18px)
- Large (20px)
- Extra Large (24px)
All data is stored locally in your home directory:
~/.peach-leaf/
βββ state.json # Window positions and settings
βββ notes/
βββ note-1234567890.md # Note content
βββ images/
βββ note-1234567890/ # Images for this note
βββ image-1234567891.png
βββ image-1234567892.png
Notes are stored as plain markdown files with optional width comments for images:
# My Note
Some text here.
<!-- width:600 -->
More text.- Check
~/.peach-leaf/state.jsonexists - Verify file permissions
- Try restarting the app
- Ensure images are in
~/.peach-leaf/notes/images/ - Check markdown syntax:
 - Verify image files exist on disk
- Check macOS version (requires macOS 10.15+)
- Verify app is not in quarantine:
xattr -d com.apple.quarantine /path/to/PeachLeaf.app
- Frontend: Svelte 5, TypeScript, Vite
- Editor: CodeMirror 6
- Backend: Tauri 2.9, Rust
- Markdown: Marked 11.x
- Styling: CSS with Svelte scoped styles
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
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Tauri
- Markdown editing powered by CodeMirror
- Markdown rendering by Marked
If you encounter any issues or have questions, please open an issue.
Made with β€οΈ for macOS