ZenNotes

A home
for your thoughts.

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

Free & open source Mac · Windows · Linux

  • hjkl
  • diw
  • ci"
  • gg
  • G
  • n
  • wv
  • :
Vim-native

If you know Vim,
you already know it.

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

Markdown, fully lived-in

Write rich notes
in plain files.

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

Read the docs
notes.md · split
# Gradient descent

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

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

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

Gradient descent

Minimise f(θ) by stepping against its gradient:

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

Your vault,
open to assistants.

There's an MCP server in the box, with one-click setup for Claude Code, Claude Desktop, and Codex. Your assistant edits the same Markdown files you do, straight 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’re circling one idea: SDFs give cheap implicit geometry, and anti-aliased coverage falls out almost for free…

>

Terminal

Drive your vault
from the command line.

zen ships with the desktop app. Read and write notes, search, tag, toggle tasks, capture straight from a pipe, run the MCP server. Pass --json on anything and the output drops cleanly into jq or wherever your shell wants to send it. Install from Settings → CLI 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

$

Everything in one app

The bits you'll actually reach for.

One keyboard-first app for capture, writing, and finding — with no database, no sync layer, and nothing to migrate out of.

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.

Workflow

Capture. Write. Find. Without lifting your hands.

  1. 01

    Capture

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

    q
  2. 02

    Write

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

    i
  3. 03

    Navigate

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

    f
  4. 04

    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 start the download.

AppImage won't launch on Arch/CachyOS/Fedora? Those ship FUSE 3 — install fuse2, run with --appimage-extract-and-run, or just use the AUR / .pacman / .deb package.

Self-hosting? Run the published adibhanna/zennotes Docker image or grab the source on GitHub.