MD Editor rushabhpasad
winget install --id=rushabhpasad.MDEditor -e Lightweight cross-platform desktop Markdown editor with live split-pane preview
winget install --id=rushabhpasad.MDEditor -e Lightweight cross-platform desktop Markdown editor with live split-pane preview
A lightweight, cross-platform desktop Markdown editor with a live split-pane preview.

.md and .markdown files| Layer | Technology |
|---|---|
| Framework | Tauri v2 (Rust + WebView) |
| Frontend | React 18 + TypeScript |
| Editor | CodeMirror 6 |
| Markdown parser | marked.js (GFM) |
| Code highlighting | highlight.js |
| Split pane | allotment |
| Styling | Tailwind CSS v4 |
| State | Zustand |
| File I/O | Tauri fs + dialog plugins |
Homebrew (recommended)
brew tap rushabhpasad/tap
brew install --cask md-editor
Direct download
Download the .dmg from the Releases page, open it, and drag MD Editor to your Applications folder.
> "MD Editor is damaged and can't be opened" — the app may not yet be code-signed with an Apple Developer ID in older releases. Remove the quarantine attribute with:
>
> bash > xattr -cr "/Applications/MD Editor.app" >
>
> Alternatively, right-click the app → Open → click Open in the dialog.
MacPorts (community-maintained, submission pending)
sudo port install md-editor
winget
winget install rushabhpasad.MDEditor
Scoop
scoop bucket add rushabhpasad https://github.com/rushabhpasad/scoop-bucket
scoop install md-editor
Chocolatey (submission pending)
choco install md-editor
Direct download
Download the .msi or .exe installer from the Releases page.
apt / deb
curl -LO https://github.com/rushabhpasad/md-editor/releases/latest/download/md-editor_amd64.deb
sudo dpkg -i md-editor_amd64.deb
AppImage
curl -LO https://github.com/rushabhpasad/md-editor/releases/latest/download/md-editor_amd64.AppImage
chmod +x md-editor_amd64.AppImage
./md-editor_amd64.AppImage
Flatpak (Flathub submission pending)
flatpak install flathub com.rpasad.MDEditor
Snap (Snap Store submission pending)
snap install md-editor
# Clone the repository
git clone https://github.com/rushabhpasad/md-editor.git
cd md-editor
# Install frontend dependencies
npm install
# Start the development build (hot-reloads both Rust and frontend)
npm run tauri dev
npm run tauri build
Distributable bundles are written to src-tauri/target/release/bundle/.
| Action | macOS | Windows / Linux |
|---|---|---|
| New File (new tab) | Cmd+N | Ctrl+N |
| New Tab | Cmd+Shift+N | Ctrl+Shift+N |
| Open (in new tab) | Cmd+O | Ctrl+O |
| Save | Cmd+S | Ctrl+S |
| Save As | File menu | File menu |
| Close Tab | Cmd+W | Ctrl+W |
| Find / Replace | Cmd+F | Ctrl+F |
| Bold | Cmd+B | Ctrl+B |
| Italic | Cmd+I | Ctrl+I |
| Cycle View (Edit→Split→Preview) | Cmd+Shift+V | Ctrl+Shift+V |
| Toggle Scroll Sync (per tab) | Cmd+Shift+S | Ctrl+Shift+S |
| Toggle Preview | Cmd+Shift+P | Ctrl+Shift+P |
| Toggle Editor | Cmd+Shift+E | Ctrl+Shift+E |
| Toggle View-only Mode | Cmd+Shift+R | Ctrl+Shift+R |
| Toggle Theme | Cmd+Shift+T | Ctrl+Shift+T |
| Increase Font | Cmd++ | Ctrl++ |
| Decrease Font | Cmd+- | Ctrl+- |
| Reset Font | Cmd+0 | Ctrl+0 |
| Settings | Cmd+, | Ctrl+, |
md-editor/
├── .github/
│ └── workflows/
│ ├── release.yml # Build & sign all platforms on git tag push
│ └── publish-packages.yml # Push to Homebrew/winget/Scoop on release publish
│
├── src-tauri/ # Rust / Tauri backend
│ └── src/
│ ├── lib.rs # App setup, native menu, plugin registration
│ └── main.rs # Entry point
│
└── src/ # React frontend
├── components/
│ ├── Layout.tsx # Split-pane shell; renders Dashboard when no tabs open
│ ├── Dashboard.tsx # Welcome screen (new doc / open / recent files)
│ ├── TitleBar.tsx # Custom title bar with filename + drag region
│ ├── Editor.tsx # CodeMirror 6 instance with custom find/replace bar
│ ├── Preview.tsx # Live HTML preview with find bar
│ ├── Toolbar.tsx # Formatting buttons + mode toggle + sync
│ ├── TabBar.tsx # Tab management UI
│ ├── StatusBar.tsx # Word/char count, cursor, full path
│ ├── Settings.tsx # Preferences modal (sectioned)
│ ├── RecentFiles.tsx # Recent files modal
│ ├── About.tsx # About dialog (credits + donate)
│ ├── ExportDialog.tsx # Export to HTML / Print PDF / Print Raw Markdown
│ ├── DiffViewer.tsx # Show changes since last save
│ └── DragDropOverlay.tsx # Drag & drop handler
├── hooks/
│ ├── useFile.ts # Open / save / recent file logic
│ ├── useMarkdown.ts # Debounced MD → HTML conversion
│ ├── useTheme.ts # Theme switching & system detection
│ └── useScrollSync.ts # Bidirectional scroll sync
├── store/
│ └── appStore.ts # Zustand global state + persisted settings
└── styles/
├── themes.css # CSS custom properties for all themes
├── editor.css # CodeMirror overrides
└── preview.css # GitHub-style preview typography
Open via MD Editor → Settings... or Cmd/Ctrl+,.
| Setting | Default |
|---|---|
| Theme | System |
| Default View Mode | Split |
| Font Family | JetBrains Mono (dropdown of 8 choices) |
| Font Size | 14px |
| Line Height | 1.6 |
| Word Wrap | On |
| Scroll Sync (default for new tabs) | On |
| Auto Save | Off |
| Auto Save Interval | 30s |
| Show Line Numbers | On |
| Spell Check | Off |
The samples/ directory contains ready-to-open Markdown files for exploring the editor's features:
| File | Contents |
|---|---|
samples/welcome.md | Feature overview with tables, code blocks, and checkboxes |
samples/code-showcase.md | Syntax highlighting demo in 6 languages |
samples/writing-sample.md | Long-form prose demonstrating typography |
samples/features-overview.md | App-store-style feature sheet |
If MD Editor is useful to you, consider sponsoring development — it helps keep the project free and open source.
Created by Rushabh Pasad · Built with the help of Claude (Anthropic)
Contributions are welcome! Please open an issue before submitting a large pull request.
git checkout -b feat/my-featureMIT — see LICENSE for details.