A day with ntropy

A short tour of how the pieces fit together: write a note, find it again, turn a field into a browsable folder, and catch the vault up after editing behind ntropy's back. Every command here is in the Commands reference.

Write a note

Start with a thought:

ntropy new Refactor the parser

Your editor opens on a fresh note stamped from the default.md Templates and daily notes. The template already gives it a title and an empty tags list. Fill in the tags, add a status field, and save:

---
title: Refactor the parser
tags: [work, programming/rust]
status: in progress
---

Any field you add is kept as it is, and every field is filterable by existing. Nothing declares status anywhere.

Find it again

Later, find the note by tag, by status, or by a word you half remember:

ntropy search 'tag:work and status:"in progress"'

The whole expression sits in single quotes so the shell hands the inner double quotes through to ntropy; a value containing a space, like in progress, has to arrive double-quoted. Without the outer quotes the shell strips the inner ones and the query fails with a syntax error.

A single match opens straight in your editor. Several drop you into the The interactive picker, where you narrow the list by typing and open the one you meant with Enter. The Query language has the rest of the grammar.

Turn a field into a folder

Say you browse by status often. Make it a Materialized views:

ntropy view add by-status --field status

Now by-status/in-progress/ is a real directory of symlinks. You can cd into it, grep it, or open it in any editor, with no ntropy involved. The value in progress became the directory in-progress because ntropy lowercases and hyphenates grouping values, and the symlink inside is named <date>-<slug>.md and points back at the note's file in all-notes/.

Catch up after edits outside ntropy

ntropy refreshes the views after every change it makes itself. Change a note's status straight in your editor, without going through ntropy, and the views do not know until you tell them:

ntropy reconcile

That moves the symlink to by-status/done/ (or wherever the new value belongs), realigns any filename whose slug drifted from its title, and re-syncs every view. The vault is back in step.