A note is a Markdown file, and a vault is the directory that holds your notes. This section covers how notes start out from templates, which vault a command works on, encrypted vaults, the note format, and the Markdown ntropy understands.
The notes are the database
ntropy keeps no index, cache, or hidden state. The Markdown files in your vault are the single source of truth, and every command reads them fresh. Everything else it shows you, such as readable dates, tag counts, or the browsable view trees, is derived on demand. You can delete any of it and have it rebuilt.
The vault
A vault is an ordinary directory with a few well-known children:
~/notes/
├── all-notes/ # your notes, named <ulid>-<slug>.md: the source of truth
│ ├── 01j8z9k…-groceries.md
│ └── 01j8za2…-q3-planning.md
├── by-tag/ # a materialized view: symlinks grouped by the `tags` field
│ └── work/
│ └── 2026-06-24-q3-planning.md -> ../../all-notes/01j8za2…-q3-planning.md
├── by-status/ # another view, grouped by the `status` field
├── README.md # seeded by `init`: what this directory is, how to get ntropy
├── .gitignore # written by ntropy: keeps the view directories out of git
└── .ntropy/ # config, templates, and themes
Only top-level *.md files in all-notes/ are notes, with the extension
in lowercase. ntropy leaves subdirectories and all other files alone, a
.MD file included, so images and attachments can sit right next to
your notes without being taken for notes.
An encrypted vault stores <ulid>.age files in all-notes/ instead, and
has no view directories; see
Encrypted vaults.
The vault in git
Because all of this is just files, the whole vault is yours to version:
git init in it and commit your notes like any other text. The view
directories are derived and do not belong in git. ntropy keeps them out
through the vault's .gitignore, as
Materialized views
describes.