ZenNotes – Keyboard-first Markdown notes, plain files, MIT-licensed

adibhanna2 pts0 comments

ZenNotes — Keyboard-first Markdown notes

Sponsor

Download

A home

for your thoughts.

ZenNotes keeps every note as a local .md file you<br>own — with real Vim motions, live math & diagrams, an MCP<br>server for your assistant, and a bundled zen CLI.<br>Native on Mac, Windows, and Linux, or self-host in any browser.

Download

Browse all platforms

Free & open source

Mac · Windows · Linux

hjkl

diw

ci"

gg

⎵n

⌃wv

Vim-native<br>If you know Vim,<br>you already know it.

Motions, operators, registers, marks, macros, folds, the ex<br>prompt. All of it works the way your muscle memory expects,<br>because it's real Vim underneath — not a sprinkle of<br>shortcuts dressed up as one.

diw<br>Delete inner word

ci"<br>Change in quotes

yap<br>Yank a paragraph

⌃wv<br>Vertical split

qa … @a<br>Record & replay macro

⎵n<br>New note

Markdown, fully lived-in<br>Write rich notes<br>in plain files.

Math with KaTeX. Diagrams with Mermaid, TikZ, JSXGraph,<br>and function-plot — all of it rendered from<br>ordinary fenced code blocks. The files stay plain text<br>under the hood, so there's nothing to migrate out of<br>later if you change your mind.

Read the docs

notes.md · split

# Gradient descent

Minimise $f(\theta)$ by stepping<br>against its gradient:

```math<br>\theta_{t+1} = \theta_t - \eta\nabla f(\theta_t)<br>```

```mermaid<br>flowchart LR<br>start --> step --> check<br>check --> step<br>check --> done<br>```

Gradient descent

Minimise f(θ) by stepping against its gradient:

θt+1 = θt − η ∇f(θt)

start<br>step<br>check<br>done

MCP<br>Your vault,<br>open to assistants.

There's an MCP server in the box, with one-click setup<br>for Claude Code, Claude Desktop, and Codex. Your<br>assistant edits the same Markdown files you do, straight<br>on disk — no second copy, no sync layer to babysit.

claude · zennotes

> Summarize my notes tagged #graphics

tool zennotes.search_by_tag "graphics"

→ 4 notes found

Across four notes you&rsquo;re circling one idea:<br>SDFs give cheap implicit geometry, and anti-aliased<br>coverage falls out almost for free…

> ▍

Terminal<br>Drive your vault<br>from the command line.

zen ships with the desktop app. Read and<br>write notes, search, tag, toggle tasks, capture<br>straight from a pipe, run the MCP server. Pass<br>--json on anything and the output drops<br>cleanly into jq or wherever your shell<br>wants to send it. Install from Settings &rarr; CLI<br>in one click.

zsh · ~/notes

$ zen capture "Meeting takeaways" --tag work

→ inbox/2026-04-29-meeting-takeaways.md

$ pbpaste | zen append inbox/Daily.md --body -

$ zen search "deadline" --json | jq '.[].path'

"inbox/Q2-Plan.md"

"projects/Launch.md"

$ zen task list --unchecked --tag work

$ ▍

Plain .md files

A vault is just a folder. Sync it with Git, iCloud, Dropbox — or don't. No hidden database, nothing proprietary, nothing to migrate out of.

Split, preview, reference

Split a tab side-by-side, pin a reference, or pop a note into its own floating window.

Math & diagrams

KaTeX inline and in blocks. Mermaid, TikZ, JSXGraph, and function-plot render straight from fenced code.

Tasks, tags, backlinks

Write #tag anywhere. Check - [ ] tasks vault-wide. Follow [[wikilinks]] and chase unresolved ones.

Vault-wide search

Full-text search across every note. Uses ripgrep or fzf if you have them, the built-in engine if you don't.

Daily notes

One keystroke opens today's note. Auto-create ISO-dated dailies in a folder you choose.

Obsidian-friendly vaults

Point ZenNotes at a vault you already have. Loose files show up in the tree, ![[image.png]] embeds resolve, and the layout is read from disk so new notes land where you'd expect.

Slash & @ shortcuts

Type / for headings, callouts, code blocks, tables, and links. Type @ for dates.

Inline note comments

Highlight a passage, drop a comment in the side panel. The marker stays anchored as you edit around it.

Zen mode

One keystroke strips every sidebar, tab, and status bar. Only the editor or preview stays on screen.

Desktop or self-hosted

Native on Mac, Windows, and Linux. Or self-host the web app from the published adibhanna/zennotes Docker image and open it from any browser on your network.

Themes & type

Light and dark theme families. Pick separate fonts for UI, prose, and code — sized for a long writing session.

01<br>Capture

A Quick Note, a daily note, or a fresh inbox buffer — one keystroke from anywhere in the app.

⎵q

02<br>Write

Stay in normal mode and edit with motions. Live preview renders math, diagrams, and plots as you go.

03<br>Navigate

Fuzzy note finder, outline jumps, buffer switching, which-key overlays — every surface keyboard-first.

⎵f

04<br>Organize

Move between inbox, archive, and trash from the ex line. Tasks, tags, and backlinks stay in sync.

:mv

Download

Make it yours.

Free, open source, and yours. Pick your platform to<br>start the download.

macOS<br>Apple Silicon · .dmg<br>Download

macOS<br>Intel · .dmg<br>Download

Windows<br>x64 installer · .exe<br>Download

Linux<br>Debian / Ubuntu · .deb<br>Download

Arch Linux<br>AUR · yay -S zennotes-bin<br>View on AUR

Arch Linux<br>Native package ·...

notes from note zennotes download files

Related Articles