zen-notes

command module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2026 License: MIT Imports: 7 Imported by: 0

README

zen-notes

One notepad per day. Run zen-notes from anywhere and you land in today's note, already open. Two terminals on the same day stay in sync.

Markdown, syntax highlighted as you type, edited with vim motions. Images render inline where your terminal supports it. Nothing else.

A day's note, with an image drawing inline under the line that references it

A line holding nothing but an image reference draws the picture under it. The line stays as you typed it, and the image is scaled so it never buries what you wrote around it. That needs a terminal speaking the kitty graphics protocol; everywhere else the line stays text and nothing else changes.

Line numbers are hybrid, absolute on the cursor's line and relative everywhere else, in a gutter that is always reserved so text never shifts.

Install

curl -fsSL https://raw.githubusercontent.com/praxis-labs-io/zen-notes/main/install.sh | sh

Downloads the binary for macOS or Linux, on arm64 or amd64, and needs nothing else. Windows takes the .zip off the releases page, the installer being a POSIX script. On anything else, or to build it yourself:

go install github.com/praxis-labs-io/zen-notes@latest

That one needs Go 1.26 or later. Install covers where the binary lands, where your notes end up, and upgrading.

A first note

zen-notes

That is the whole of it. You are in today's note in normal mode, and vim motions work. There is no save key: the buffer reaches disk within half a second of an edit. [ and ] walk to yesterday and tomorrow, \ comes back to today, and ? lists every binding without leaving the app.

Fenced code, a blockquote and task lists, each coloured as you type

Headings, bold, emphasis, code spans and fences, quotes, links and task boxes each take their own colour. No colour is hardcoded: everything reads from ANSI slots 0 to 15, so it comes from your terminal theme rather than fighting it.

Documentation

  • Guide — where notes live and how they sync, when an image draws, and what the screen is made of
  • Keys — every binding, and what insert mode does with Markdown
  • Install — requirements, the notes directory, upgrading
  • Contributing — the layout, the test conventions, and what is deliberately out of scope

License

MIT. See LICENSE.

Built on Bubble Tea and Lipgloss (MIT), fsnotify (BSD-3-Clause), go-colorful and go-runewidth (MIT).

Documentation

Overview

Command zen-notes opens today's note. One markdown file per day, edited with vim motions, autosaved, and reloaded when another window writes it.

Directories

Path Synopsis
internal
app
Package app wires the editor, the day store and the file watcher into a Bubble Tea program.
Package app wires the editor, the day store and the file watcher into a Bubble Tea program.
editor
Package editor holds the modal text buffer behind zen-notes: line storage, vim motions and operators, markdown highlighting, and the view.
Package editor holds the modal text buffer behind zen-notes: line storage, vim motions and operators, markdown highlighting, and the view.
note
Package note stores one markdown file per calendar day.
Package note stores one markdown file per calendar day.
version
Package version carries build metadata stamped in at link time.
Package version carries build metadata stamped in at link time.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL