mk
The mk icon: a Markdown mark over a green squiggle

Write Markdown.
Harper checks it as you type.

mk is a standalone Markdown viewer and editor for Linux, macOS and Windows with the Harper grammar checker built in. Spelling, grammar and style are checked on your machine. There's no server, no account, and nothing else to install.

Free and open source · MIT licence · Linux, macOS and Windows

notes.md README.md •
# Launch notes

- [x] Fix the typos
- [ ] Add a screenshot

She have an unique idea.
In order to ship, we test first.
I recieved the draft yesterday.
SpellingDid you mean “received”?receivedAdd to dictionary · Ignore here

Launch notes

✓ Fix the typos

Add a screenshot

She have an unique idea. In order to ship, we test first. I recieved the draft yesterday.

SpellingSpelling and typos
GrammarAgreement, punctuation, capitalisation, repetition, usage
StyleReadability, redundancy, word choice

Features

✓Harper, built in

mk links Harper's engine as a library, so it isn't running a language server beside the editor. It checks spelling, grammar and style as you type, and skips code blocks, inline code and front matter.

⚡Fix issues where they are

Every underline offers Harper's fixes plus Add to dictionary, Ignore here and Turn off rule. Ignored issues stay ignored across edits and restarts. To get to them, hover an underline, press Ctrl+., or open the issues panel.

✎An editor made for prose

mk uses CodeMirror 6. Headings, emphasis, links and code are styled in place, fenced code is highlighted in its own language, and lists continue when you press Enter. It also has find and replace, multiple cursors and full undo history.

◧Live preview

The preview uses GitHub-flavoured rendering: tables, task lists, strikethrough, autolinks, heading anchors, highlighted code and front matter. It scrolls in step with the editor. Ticking a task in the preview updates the source.

⧉Tabs for several files

Open files from the dialog, the command line or by dropping them on the window. Each tab keeps its own undo history, cursor and scroll position, and a tab with unsaved changes asks before it closes.

☰A section rail

Each heading gets a dash at the edge of the page. The dash for your current section is highlighted and moves as you scroll. Click a dash to jump to that section, or hover over the dashes to see the headings by name.

↻Keeps up with the file on disk

If a file changes on disk, mk reloads it silently, or asks first if you have unsaved edits, so it works as a live viewer beside another editor. Saves are atomic and keep line endings, symlinks and permissions.

⚙Settings as plain files

You get light and dark themes and five English dialects (American, British, Canadian, Australian, Indian), and you can switch Harper's rules on or off one by one. Settings, your dictionary and ignored issues are plain files in ~/.config/mk/ (%APPDATA%\mk\ on Windows).

⌂At home on the desktop

Run mk notes.md from a terminal, or mk -v for a preview-only view. The installer adds mk to the “Open With” menu for Markdown files. Links to other Markdown files open in mk.

Private by default

Your text never leaves your machine. Untrusted documents are handled safely: raw HTML is sanitised and scripts can't run, local images load only from the document's own folder, and only http, https and mailto links open in your browser.

One exception: the preview fetches remote images, as a browser would. To read an untrusted file without loading them, use the editor-only view (Ctrl+1).

Keys worth knowing

Ctrl+.
Quick fix at the cursor
F8 / Shift+F8
Next / previous issue
Ctrl+Shift+M
Harper issues panel
Ctrl+1 / 2 / 3
Editor, split, preview
Ctrl+Tab
Next tab
Ctrl+K
Insert a link
Ctrl+H
Cycle heading level
F7
Light / dark

Download and install

Installers for each platform are on the releases page:

The installers aren't code-signed yet, so the first launch shows a warning. On a Mac, right-click mk in Applications, choose Open, then Open again. On Windows, click More info, then Run anyway. On a Mac, use Cmd wherever these pages say Ctrl.

Build from source

You need Rust 1.85 or newer and Node 20 or newer. On Linux you also need the WebKitGTK packages (libwebkit2gtk-4.1-dev, libgtk-3-dev, libsoup-3.0-dev). On macOS you need the Xcode Command Line Tools, and on Windows the Microsoft C++ Build Tools.

git clone https://github.com/dsasante1/mk.git
cd mk
npm install
npx tauri build            # this platform's installers

On Linux you can instead run ./run.sh samples/tour.md to build and open mk, then ./install.sh to put mk on your PATH and in “Open With”.