Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

md

A lightweight markdown editor for macOS. Visual sibling to stickies - same frosted-dark palette, same Geist, same hover-reveal chrome - pointed at files on disk instead of floating notes.

  • Pick a folder once. Every .md in it shows up in the sidebar, newest first.
  • Two modes: raw markdown to write in, rendered to read. ⌘E flips.
  • Autosaves 800ms after you stop typing.
  • Rename from the sidebar's right-click menu, or by double-clicking the filename in the top bar.
  • Files are plain .md on disk. Obsidian, Finder, git, and anything else read the same folder. Nothing is locked in.

Keyboard

Shortcut Action
⌘K Search all files
⌘F or ⌃F Find in the open file
⌘E Toggle Edit / Preview
⌘S Save now
⌘N New file
⌘O Choose folder
⌘⌥← ⌘⌥→ Previous / next file

Search

The + at the bottom of the sidebar makes a new file, same as ⌘N.

The magnifier next to it, or ⌘K, opens a search across every file in the folder. It matches keywords in names and bodies, and fuzzily - mtg finds meeting-notes, a typo still lands. Arrow keys move, Return opens, Escape closes. With nothing typed it lists files newest first.

⌘F (or ⌃F) finds inside the open file, using the standard macOS find bar: exact keyword only, matches highlighted as you type, Return for the next one. From Preview it switches to Edit first, since that is where the text is.

Naming

New files are Untitled.md, then Untitled (1).md, and so on. On its first save, a file whose body opens with a # heading renames itself from that heading. After that the name is fixed - rename it yourself and it stays.

Markdown

Headings, bold, italic, inline code, links, images, bullet and ordered lists, block quotes, fenced code blocks, horizontal rules.

A lone newline inside a paragraph is a soft wrap and joins, so hard-wrapped files read as flowing prose. For a deliberate break, end the line with two spaces or a backslash.

An image on its own line - ![](assets/shot.png) - renders in Preview, fit to the column. Paste or drop an image in Edit mode and the app writes it as a PNG into an assets/ folder next to your notes and inserts that line for you. The .md stays plain text; the picture is a file beside it, at a relative path Obsidian and GitHub both resolve.

Tables, footnotes, and HTML passthrough are not supported and render as plain text rather than breaking.

Only http, https, and mailto links are clickable. A markdown file can come from anywhere, and handing an arbitrary URL scheme to the system on a single click is not a thing this app will do.

Requirements

Targets macOS 13 and later. Built and tested on macOS 15.7 with Xcode 26.3; earlier versions in that range are the deployment target, not something I have run it on.

The app is not sandboxed, so it can read and write whatever folder you point it at. It has no network code of any kind - nothing is sent anywhere.

Build

Requires Xcode and xcodegen.

brew install xcodegen
xcodegen generate
open MD.xcodeproj

Then ⌘R in Xcode. ⌘U runs the tests.

Design docs

License

MIT - see LICENSE.

Bundles Geist and Geist Mono by Vercel under the SIL Open Font License 1.1 - see MD/Fonts/Geist-OFL.txt.

About

A lightweight markdown editor for macOS. Frosted-dark, Geist, plain .md files on disk.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages