Plain text, rendered beautifully.

Margin is a local-first Markdown notes app for the Mac. Fast, quiet note-taking that keeps every note as a plain file on your own disk.

Download the alpha
Free during the alpha · macOS 14 or later · Apple silicon · 10 MB
Margin with a full Personal space: nested tags in the sidebar, a list of notes, and a short note open with a highlight, a link, a photo of an open notebook and a tip callout
Plain Markdown files, so your notes also open in
FinderVS CodeObsidianiA WriterVimTyporaGitHub
The least dramatic file format

Introducing the note that is just a file

sourdough-attempt-four.md
---
margin_id: 8f2a-41c9
---
# Sourdough, attempt four
The 68% loaf was too wet. Going to ==62%==
and a longer cold proof. See [[Starter schedule]].
- [ ] Buy rice flour for the banneton
- [x] Feed the starter Friday night
#kitchen
On disk: a plain .md file any editor can open

Sourdough, attempt four

The 68% loaf was too wet. Going to 62% and a longer cold proof. See Starter schedule.

Buy rice flour for the banneton
Feed the starter Friday night
#kitchen
In Margin: the same file, rendered as you type
A folder you chose,
a filename you can read
One id in the frontmatter,
so a rename never loses it
Links, tags and to-dos
are ordinary Markdown

No database, no export step, no proprietary anything. Delete Margin and every note is exactly where it was. Nothing leaves the Mac unless you ask.

How files are handled →
Personal / Notes on the draftlive preview
notes-on-the-draft.mdplain Markdown on disk
Seamless Markdown

Typing in it is
the reason you stay

Bold goes bold on the second asterisk. Headings grow into headings. One document, always: you never toggle a preview pane or keep a second copy of the note. Tables you edit cell by cell, five flavours of callout, dates that age, collapsing headings, lines you can drag. Nothing is buried in a toolbar, because there is no toolbar.

See the editor →
Type / for everything

Tables, code, callouts, dividers and dates, from the keyboard.

Fold a heading

Collapse a section to its title and open it again when you need it.

Effortless separation

Work does not go
in the dinner drawer

Each space is its own folder, its own note list, its own search, and its own tint, so the whole app quietly changes colour when you switch. Client work here, the side project there, the reading pile somewhere else. Move a note across and it moves as a file: same note, same identity, new folder.

How spaces work →
sour⇧⌘O
NoteSourdough, attempt four↵
CommandSort to-dos
CommandNew note⌘N
SpaceSwitch to Work
Picking up from [[Sourdough, attempt four]], same flour, hotter oven.
Rename that note and this line renames itself.
Notes that know each other

Link a note, rename it,
nothing breaks

Start typing a note's name and link straight to it. Rename that note later and every mention quietly updates. Grab a link to a note and drop it in a calendar invite or a ticket: click it, Margin opens, right note, right place. And ⇧⌘O finds every command and every note in one list.

Links and quick open →
Nested notes

A note can hold
other notes

Every parent is itself a note, with its own words, not a bare folder. The children show in its margin and under its text. Move a parent and the whole subtree goes with it. On disk it is a note beside a folder of the same name, so the tree is plain files and folders that read fine anywhere else.

How nesting works →

Kyoto, seven days

Flights booked. Nothing else booked. This is fine.
IN THIS NOTE
Flights
Day 3, Nara1
Deer park
Food list
on disk
~/Margin/Personal/
├── kyoto-seven-days.md
└── kyoto-seven-days/
    ├── flights.md
    ├── day-3-nara.md
    ├── day-3-nara/
    │   └── deer-park.md
    └── food-list.md
Debounce the folder watcher#1284
margin-app/margin · 3 commits
OpenChecks 12 of 12Changes requested
Paste an image into a table cell#1207Closed
Waiting on #1284 before the release, then tag 0.4.0.
Links that know their state

A pull request link
that says how it’s going

Paste a link to a pull request or an issue and it shows its state, its checks and where the review stands, read through the gh you already have. No gh? Public ones still show, straight from GitHub, with no token and no account. Keep it as a card, a one-line row, or a chip in the middle of a sentence.

Link cards →
Your prompts, your model

An AI that waits
until you jab it

It does nothing on its own: no indexing, no reading as you type. Select a sentence and pick an action, or write your own once and it lives in the menu forever. Every change arrives as a diff you say yes to first. Run it on your own API key, through the Claude Code or Codex CLI already on your Mac, or on a model that never leaves the machine.

The three routes →
ShortenRewordFix grammarSummariseMake this a tweet
The At 68% hydration loaf was too wet — it the loaf spread on the peel before the oven had a chance it reached the oven.
1 of 3 changesReject allAccept all ⇧⌘↵
Own keyClaude Code · CodexOn the Mac, offlineClaude Code · local
Everything else

And lots more

The small things that make it pleasant to live in. It starts instantly, never blocks on a spinner, and hides nothing behind a service.

Plain files

One folder, one .md per note. Nothing weird inside.

No account

Nothing to sign up for. Purchases activate themselves.

29 themes

Solarized, Nord, Dracula, Gruvbox, Rosé Pine, Catppuccin…

Quick notes

⌃⌥Space from anywhere, even with the window shut.

Dates that age

Today, then 3 days ago, then a plain date.

Slash commands

Tables, code, callouts, dividers, dates, highlights.

Links that behave

Paste a URL on a selection. Hover for a preview.

Trash & restore

Deleting is reversible, which is good news at midnight.

Merge and move

Four half-notes into one. Move it anywhere, intact.

Copy as anything

Markdown, plain or rich text, correct in Slack.

Watches the folder

Edit a file elsewhere; Margin catches up at once.

Shortcuts & Raycast

margin:// links and a CLI-shaped surface for tinkerers.

Margin on a MacBook: a release note with a callout, a full card for an open pull request, a compact card for a merged one, the same pull request linked inline, and its release notes
macOS 14 or later, Apple silicon 10 MB, updates arrive inside the app iPhone is on the roadmap

Get Margin, free while it is alpha

It is an alpha: it works, it gets better every week, and now and then it will do something odd. Margin 1.0 will be paid. When it ships, everything keeps working for 30 days, and alpha users get 25% off a lifetime licence until then.

Download the alpha
macOS 14 or later · Apple silicon · 10 MB · version 0.5.0
Support development
$45 once

Settings › Licence sells an early-supporter lifetime licence from day one. It activates the day 1.0 ships, covers two Macs, and the price you pay is the price you keep.

Not ready for an alpha?

Leave an address and you will hear once, when 1.0 ships. No newsletter. One message, then silence.