A lightweight Markdown viewer and editor, available as a Windows desktop app (Go + Wails + Svelte) and as a browser app from the same codebase.
Try it online: mdediter.mooma.style — no install required.
- Live preview — editor on the left, rendered preview on the right
- View modes — Edit only / Split / Preview only (toggle with Ctrl+/)
- Scroll sync — bidirectional, overall-ratio based
- GitHub Flavored Markdown — tables, task lists, strikethrough
- KaTeX math — inline
$...$and block$$...$$ - Syntax highlighting — both in the editor (CodeMirror) and preview (highlight.js)
- Tabs — open multiple files at once
- Drag & drop — drop
.mdfiles onto the window - CLI arguments —
mdediter.exe a.md b.mdopens files at startup - Recent files — last 10 files remembered
- Atomic save — temp-file + rename to prevent corruption on crash
- Single-exe distribution — no installer required
Open mdediter.mooma.style in any modern browser — nothing to install.
It shares the editor, preview, tabs, GFM, KaTeX and search with the desktop app. File handling differs by
platform: the web version opens files via a file picker, saves by downloading the file, and supports
drag & drop of .md files. A link to download the Windows desktop app is shown in the toolbar.
Download the latest zip from mooma.style/app or Releases, unzip, and run mdediter.exe.
Windows SmartScreen warning: the binary is unsigned, so on first launch you may see "Windows protected your PC". Click More info → Run anyway. This is expected for any unsigned Windows app.
- Windows 10 (1803+) or Windows 11
- Microsoft Edge WebView2 Runtime (pre-installed on Win11; auto-updated on Win10)
- Double-click the exe to launch with a Welcome tab
- Drag & drop
.mdfiles onto the window - Command line — pass file paths as arguments:
Each path becomes a tab. Relative paths are resolved against the current directory.
mdediter.exe README.md docs\spec.md - File association — associate
.mdwithmdediter.exein Windows to open by double-clicking files
| Key | Action |
|---|---|
| Ctrl+O | Open file |
| Ctrl+S | Save |
| Ctrl+Shift+S | Save As |
| Ctrl+N | New tab |
| Ctrl+W | Close tab |
| Ctrl+/ | Cycle view mode |
| Ctrl+F | Search |
| Ctrl+H | Replace |
| Ctrl+Z / Ctrl+Y | Undo / Redo |
| Right-click | Context menu (Cut / Copy / Paste) |
- Backend: Go 1.23+ with Wails v2
- Frontend: Svelte 3 + TypeScript + Vite 3
- Editor: CodeMirror 6
- Markdown: markdown-it + GFM + task-lists + KaTeX
- Syntax highlighting: highlight.js
- Windows 10/11
- Go 1.23+
- Node.js 18+
- Wails CLI v2
go install github.com/wailsapp/wails/v2/cmd/wails@latest
wails doctor # verify environmentwails build -platform windows/amd64Output: build/bin/mdediter.exe
The frontend is a plain Vite app, so the browser build needs no Go/Wails:
cd frontend
npm install
npm run build # → frontend/dist/ (static SPA)Platform differences (native file dialogs vs. file picker + download) are handled at runtime in
frontend/src/lib/platform.ts, which detects the Wails runtime (window.go) and falls back to
browser APIs otherwise.
wails devHot-reload is enabled for frontend changes.
MIT — see LICENSE.