A fast, native markdown viewer for macOS built with Tauri v2, React, and markdown-it. Beautiful rendering of tables, code blocks, task lists, math, and diagrams — with live reload.
View Demo • Install • Request Features
Marky is a desktop markdown viewer designed for one thing: opening .md files from the terminal and getting beautiful, instant rendering. Launch it with marky FILENAME to view a file or marky FOLDER to open a folder as a persistent workspace (Obsidian-style). Files reload live as they change on disk — perfect for viewing Claude-generated plans, documentation, or notes as they're being written.
- CLI-first —
marky README.mdopens a window.marky ./docs/opens a folder. - Live reload — edits on disk (from your editor, Claude, etc.) update the view instantly.
- Folders — add folders as persistent workspaces (Obsidian-style). They appear in a sidebar and restore on launch.
- Cmd+K command palette — fuzzy-search files across all open folders, powered by nucleo.
- Syntax highlighting — Shiki with VS Code themes for accurate, beautiful code blocks.
- Math — KaTeX rendering for
$inline$and$$display$$math. - Mermaid diagrams — fenced
mermaidblocks render as SVG. - GFM — tables, task lists, strikethrough, autolinks, footnotes.
- Light & dark themes — follows system preference or toggle manually.
- Sanitized rendering — all HTML is run through DOMPurify. Safe to view untrusted markdown.
- Small & fast — native webview, no Electron. Production
.dmgis under 15 MB.
NOTE: I am currently waiting for apple developer review so for the time being the app is not signed. This will be fixed soon.
brew tap GRVYDEV/tap
brew install --cask GRVYDEV/tap/marky
# This is temporary until I can sign the binary
xattr -cr /Applications/Marky.appRequires Rust, Node.js, and pnpm.
git clone https://github.com/GRVYDEV/marky.git
cd marky
pnpm install
pnpm tauri build
./scripts/install-cli.shThe install script symlinks marky to ~/.local/bin/. Make sure that's on your PATH:
# bash/zsh
export PATH="$HOME/.local/bin:$PATH"
# fish
set -Ux fish_user_paths $HOME/.local/bin $fish_user_paths# Open a single file
marky README.md
# Open a folder as a workspace
marky ./docs/
# Open with no args — restores your last session
marky| Shortcut | Action |
|---|---|
Cmd+K |
Command palette (fuzzy file search) |
Cmd+O |
Open file |
Cmd+Shift+O |
Add folder |
Cmd+F |
Search in page |
pnpm install
pnpm tauri dev # dev server with HMR# Frontend
pnpm test
# Rust
cd src-tauri && cargo testsrc-tauri/ Rust backend — CLI, file I/O, file watching, folder registry, fuzzy search
src/ React frontend — markdown pipeline, UI components, theme
src/components/ App components (Viewer, Sidebar, CommandPalette, etc.)
src/components/ui/ shadcn/ui primitives
src/lib/ Core logic (markdown-it config, Shiki, Tauri IPC wrappers)
src/styles/ Tailwind base + markdown prose styles
scripts/ Install helpers
- x86 & Linux support — currently macOS ARM only; expanding to x86 macOS and Linux
- Built-in AI chat — chat with Claude Code or Codex directly inside your markdown documents
- Git diff review — view and review local git diffs without leaving the app
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch:
git checkout -b feature/AmazingFeature - Commit your Changes:
git commit -m 'Add some AmazingFeature' - Push to the Branch:
git push origin feature/AmazingFeature - Open a Pull Request
Before submitting a PR:
- Run
pnpm testandcd src-tauri && cargo test - Run
pnpm typecheck - Actually open a markdown file with
pnpm tauri devand verify it renders correctly
