English | 简体中文

MiaoYan

Twitter Follow Telegram GitHub Downloads GitHub Commit Activity GitHub Closed Issues macOS 11.5+
Lightweight Markdown note-taking app for macOS

## Features - **Fantastic**: Local-first, no data collection, split editor & preview, wikilink backlinks, LaTeX, Mermaid - **Beautiful**: Minimalist design, three-column layout, dark mode, macOS 26 glass, distraction-free - **Fast**: Swift 6 native, better performance than Electron-based apps - **Simple**: Lightweight, version history, keyboard shortcuts, auto-formatting ## Installation 1. **Mac App Store** (paid, automatic updates): Download on the Mac App Store 2. **Homebrew**: ```bash brew install --cask miaoyan ``` 3. **GitHub Releases**: download the latest DMG from [GitHub Releases](https://github.com/tw93/MiaoYan/releases/latest) (macOS 11.5+) All three options share the same codebase and receive the same updates. After installing, create a `MiaoYan` folder in iCloud Drive, a desktop cloud-drive folder, or your preferred location, open Preferences (⌘,), and set the storage path. ## Sync with Nutstore or Other Cloud Drives MiaoYan is local-first and does not sign in to WebDAV or cloud-drive accounts. It reads and writes the Markdown folder you choose. iCloud Drive, Nutstore, Dropbox, or another cloud-drive client handles cross-device sync. - **Mac**: Create a `MiaoYan` folder inside the local folder synced by the Nutstore desktop client, then point MiaoYan's storage location to it in Preferences. - **iPhone**: Pick the same cloud-drive folder from the system Files app. If a provider does not expose a writable folder in Files, use iCloud Drive or make the folder available offline in that provider app before choosing it. - **Folder check**: MiaoYan verifies read and write access before switching folders. If the folder is unavailable, the current storage path stays unchanged. ## CLI MiaoYan provides a command-line interface for quick note operations. ```bash # Install curl -fsSL https://raw.githubusercontent.com/tw93/MiaoYan/main/scripts/install.sh | bash # Usage miao open # Open note or folder miao new [text] # Create new note miao search <query> # Search notes in terminal miao list [folder] # List top-level folders, or markdown in folder miao cat <title|path> # Print note content miao update # Update CLI ``` ## Split Editor & Preview Mode Edit and preview side by side with real-time preview and 60fps bidirectional scroll sync. **Quick Toggle**: Press `⌘\` to instantly toggle split view mode, or enable it in Preferences → Interface → Edit Mode → Split Mode. Why not WYSIWYG like Typora? We prioritize pure Markdown editing experience, and implementing WYSIWYG in native Swift is overly complex with reliability concerns. Split mode maintains clean editing while providing instant visual feedback. <img src="https://gw.alipayobjects.com/zos/k/eg/jV8Gra.png" width="100%" alt="Split Editor & Preview Mode" /> ## Documentation - [Markdown Syntax Guide](Resources/Initial/MiaoYan%20Markdown%20Syntax%20Guide.md) - Complete syntax reference with advanced features - [PPT Presentation Mode](Resources/Initial/MiaoYan%20PPT.md) - Guide to creating presentations with `---` slide separators - [MiaoYan Agent Skill](skills/miaoyan) - Teach your agent MiaoYan syntax, attachments, PPT patterns, and CLI workflows Install the official skill with `npx skills add tw93/MiaoYan/skills/miaoyan -g`. ## Support - The most direct way to support me is getting [Mole for Mac](https://mole.fit), my paid Mac cleanup app. - If MiaoYan helped you, give it a star, [share it](https://twitter.com/intent/tweet?url=https://github.com/tw93/MiaoYan&text=MiaoYan%20-%20A%20fast%2C%20elegant%20Markdown%20editor%20for%20Mac.), or open an issue or PR. - I have two cats, TangYuan and Coke. If you think MiaoYan delights your life, you can feed them <a href="https://cats.tw93.fun?name=MiaoYan" target="_blank">canned food 🥩</a>. <details> <summary>These lovely people already did 🐱</summary> <br/> <a href="https://cats.tw93.fun?name=MiaoYan"><img src="https://cdn.jsdelivr.net/gh/tw93/sponsors@main/assets/sponsors.svg" width="1000" loading="lazy" /></a> </details> ## Acknowledgments - [glushchenko/fsnotes](https://github.com/glushchenko/fsnotes) - Initial project structure reference - [stackotter/swift-cmark-gfm](https://github.com/stackotter/swift-cmark-gfm) - Swift Markdown parser - [simonbs/Prettier](https://github.com/simonbs/Prettier) - Markdown formatting utilities - [raspu/Highlightr](https://github.com/raspu/Highlightr) - Syntax highlighting - [TsangerType](https://tsanger.cn/product) - TsangerJinKai font (default font) - [hakimel/reveal.js](https://github.com/hakimel/reveal.js) - PPT presentation framework ## License MIT License - Feel free to use and contribute.