mde
v1.0 Windows · macOS · Linux — one 3 MB binary, nothing to install

Markdown, the way
your terminal deserves.

A full-screen editor that runs where you already work. Click, drag and scroll with the mouse, or never leave the home row. Obsidian-compatible, with a link graph drawn right in the terminal.

Free and open. All platforms and architectures →

mde editing a note from a vault, with a backlinks panel listing the fourteen notes that link to it and the line each link sits on
The tour

Five things you will use every day

Every picture below is the real editor rendering, captured frame by frame.

The editor with markdown syntax highlighting

Headings, emphasis, code, tables, callouts and tags are coloured as you type. Soft wrapping keeps list items and quotes hanging under their marker.

The editor with a live preview pane beside it

Press F4 for a rendered pane beside the text: callouts with icons, real tables, task boxes and maths as symbols rather than TeX.

A Kanban board drawn as lanes of cards in the terminal

Any note of headings with task lists under them is a board. Shift+F4 reads it as one: lanes as columns, tasks as cards, and the file underneath still ordinary markdown.

The link graph of a vault drawn with braille characters

Your whole vault as a force-directed graph, drawn in braille for four times the resolution. Arrows select, Enter opens, L narrows to the neighbourhood of one note.

The command bar with slash-command completion

Press Ctrl+P and type. Fifty commands, completing as you go, abbreviating to any unique prefix.

Why you will like it

A real editor, not a compromise

Terminal apps usually ask you to give something up. This one does not.

🖱️

The mouse actually works

Click to place the cursor, drag to select, double-click a word, triple-click a line. Click a checkbox to tick it. Wheel to scroll. Real dropdown menus you can click.

⌨️

Or never touch it

Every action has a key. Ctrl+B bolds, Alt+1 makes a heading, Tab nests a list item. Formatting shortcuts toggle rather than only insert.

🔗

Obsidian, understood

[[wikilinks]], ![[embeds]], #tags, ==highlights==, all fourteen callout types, %%comments%%, block IDs, maths and front matter.

📋

Kanban boards, in markdown

No plugin, no database, no new syntax. Headings are lanes and tasks are cards, so a board is a file you can read, diff and edit anywhere. Obsidian's boards open as they are.

🕸️

A graph in your terminal

Point it at a folder of notes and press F7. Nodes weighted by how connected they are, orphans ringed outside, neighbours highlighted on selection.

🔎

Search every note at once

Not just the file in front of you. Case, whole words and regular expressions all work, and opening a result puts that note in its own tab, on the line of the match.

🌐

Beautiful in the browser

Alt+B renders a self-contained HTML page — contents sidebar, light and dark, highlighted code, print styles. No CDN, works offline.

📦

Nothing to install

One static binary of about 3 MB. No runtime, no libraries, no config file. Unpack it and run it — mde --install puts it on your PATH, on any of the three platforms.

🎨

Six themes, previewed live

Shift+F6 repaints your own document in each one as you arrow through the list. Truecolor where the terminal has it, gracefully degraded where it does not.

📄

Markdown done properly

CommonMark, GitHub tables and task lists, footnotes, definition lists, emoji shortcodes. Your line endings, byte-order mark and final newline all survive a round trip.

⚡

Instant, always

Double-buffered drawing that writes only the cells that changed. Syntax highlighting computed per visible line. It starts in the time it takes to press Enter.

Download

Pick your platform

Every download holds the binary plus a samples folder to try it on straight away.

Current release 1.0.8

One line · macOS and Linux
# downloads, checks the SHA-256, puts it on your PATH
$ curl -fsSL https://flushodds.com/mde/install.sh | sh
Homebrew · macOS and Linux
# Homebrew 6 wants a third-party tap trusted first
$ brew trust david-sobeski/mde
$ brew tap david-sobeski/mde
$ brew install mde

Both fetch the same binary as the archives below — nothing is compiled — and both put mde on your PATH. Read install.sh first if you would rather see what it does. On Windows, take the .zip and run mde.exe --install.

Windows

Windows 10 or later · .zip

macOS

macOS 11 or later · .dmg or .tar.gz

Linux

Any modern distribution · .tar.gz

Every download is about 1.5 MB: the disk image mounts as a folder, the archives unpack to one. Verify a download against the checksums.

Getting started

Running in under a minute

No installer, no package manager, no post-install steps.

macOS and Linux
# macOS — open the disk image, then copy the binary out
$ open mde-1.0.8-macos-arm64.dmg
$ cd /Volumes/mde-1.0.8-macos-arm64

# Linux — unpack the tarball instead
$ tar -xzf mde-1.0.8-linux-amd64.tar.gz
$ cd mde-1.0.8-linux-amd64

# try it on the samples that came with it
$ ./mde samples/sample.md

# and put it on your PATH, no sudo needed
$ ./mde --install
Windows
# unpack it
> tar -xf mde-1.0.8-windows-amd64.zip
> cd mde-1.0.8-windows-amd64

# try it on the samples that came with it
> .\mde.exe samples\sample.md

# and put it on your PATH
> .\mde.exe --install

Then press these

F1Help, and how the mouse works
F2Every shortcut, grouped by task
Ctrl+PThe command bar
F4Live preview beside the text
Alt+BRender and open a browser
Shift+F4Read the note as a Kanban board
F7The link graph of your vault
Alt+JWhat links to this note
Shift+F6Try every theme on your own text
New

Kanban boards that are just markdown

A board is not a file format. It is a way of reading one — and mde can read any note already written that way.

board.md
## Todo

- [ ] Write the rollback plan
- [ ] Audit the v1 callers
      Start from the access logs.

## Doing

- [ ] Port the write path
  - [x] Reads
  - [ ] Writes

## Done

**Complete**

- [x] Spike the read path
open it
# a board that came with mde, to try it on
$ mde samples/kanban.md

# then press Shift+F4, or type /board

Every ## heading becomes a lane and every task under it becomes a card. Detail lines and subtasks travel with the card they sit under. Nothing is added to your file to make this work, and a board written in Obsidian opens unchanged.

Everything the board does

←↑↓→Move between cards and lanes
SpaceTick or untick a card
Shift+←→Move a card to the next lane
Shift+↑↓Move a card up or down its lane
NNew card at the foot of the lane
EEdit a card, as it was written
DDelete a card, after asking
LNew lane after this one
RRename the lane
Alt+←→Move the whole lane
EnterJump to that card's line in the text
?All of this, without leaving the board

Every change is one Ctrl+Z in the document, because the board edits the file rather than a copy of it. A card is never ticked for being moved into a lane you have called done — if one sits there unticked, the board draws it in red and leaves the decision to you.

One more thing

Zero dependencies. Genuinely.

The terminal driver, the markdown parser, the HTML renderer, the syntax highlighter for forty languages, the clipboard integration and the graph layout are all part of this program. go.mod lists nothing. Clone it and it builds offline.

Download mde