ZenNotes CLI v0.2.0
ZenNotes CLI 0.2.0
Released on September 16, 2026 as v0.2.0, at 909e66c (with e614af4). The desktop pins this release in its next version, 2.51.1; the desktop 2.51.0 release ships the zn name and the creation-metadata contract this release implements.
A CLI that fits your desktop workflow
Desktop can now bundle this release of zn as its command-line tool. Existing
commands keep their names, and zn tui opens the terminal app through the same
installation. Desktop-managed commands use your desktop vault and credentials.
The terminal app keeps its own workspace selection. Explicit workspace options
continue to take precedence.
MCP keeps the first successfully opened workspace for the lifetime of its process,
so switching the desktop vault cannot redirect an in-progress MCP session.
Restart MCP to pick up a new default.
How to test locally: launch a desktop build that pins this release (2.51.1 onward) with isolated
user-data and config directories, open Settings > CLI, then run zn list --json
and zn tui from its installed command. Select different desktop and terminal
vaults and confirm each surface uses its own choice.
Keep a note's creation date when saving
Linux reads filesystem birth time when it is available. Before replacing an
existing note, Go records its original date in a small file under
.zennotes/note-metadata. Supported desktop builds read and maintain the same
metadata when notes move, enter Trash, or are restored. The Markdown stays intact.
macOS also retains native creation dates across atomic saves.
Keep .zennotes with the vault in backups. Older apps and external file moves do
not maintain this metadata; Cloud requires the accompanying allowlist update.
Simultaneous complete saves still use the last writer, without merging content.
How to test locally: in a disposable vault, run zn list --json, append text to an
existing note, then list again. Its createdAt stays the same. Rename it and move
it to Trash and back; its original date follows it.
Match the desktop vault layout
An explicitly configured root or inbox layout takes precedence over disk
inference, including vaults with renamed system folders. Old leftover directories
no longer override that setting.
How to test locally: select a test vault with custom Inbox/Archive paths and an
explicit root or inbox layout, then compare zn vault info --json and zn list --json with the desktop's note list.
Readable light mode and a clear way to quit
Light terminal themes used to inherit a dark background from the terminal,
leaving text hard to read. Every row now paints its own foreground and
background, blank rows included, muted text has a little more contrast in both
modes, and no-color output stays plain.
The footer shows :qa quit from the start. :q closes the current note; :qa
saves everything and quits. Help, the command palette and the README say the
same thing.
How to test locally: run zn tui in a light-themed terminal and in a dark one,
switch themes from inside the app, open two notes, then use :q on one and
:qa to leave. Text stays readable in both modes and the app saves on exit.
Desktop rollout
The desktop integration is a separate update. It stores the Go executable outside
the AppImage extraction directory so the command works after the desktop exits.
Known managed shortcuts upgrade automatically; an unrecorded broken shortcut
requires review in Settings before repair. Other installers keep ownership of
their commands. The desktop retains an explicit Node fallback during migration.