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 →
Five things you will use every day
Every picture below is the real editor rendering, captured frame by frame.
Headings, emphasis, code, tables, callouts and tags are coloured as you type. Soft wrapping keeps list items and quotes hanging under their marker.
Press F4 for a rendered pane beside the text: callouts with icons, real tables, task boxes and maths as symbols rather than TeX.
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.
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.
Press Ctrl+P and type. Fifty commands, completing as you go, abbreviating to any unique prefix.
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.
Pick your platform
Every download holds the binary plus a samples folder to try it on straight away.
Current release 1.0.8
# downloads, checks the SHA-256, puts it on your PATH $ curl -fsSL https://flushodds.com/mde/install.sh | sh
# 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.
macOS Yours
- Disk image
- Apple Silicon arm64
- Intel x86-64
- Tar archive
- Apple Silicon arm64
- Intel x86-64
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.
Running in under a minute
No installer, no package manager, no post-install steps.
# 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
# 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
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.
## 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
# 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
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.
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.