Alessandro Melandri79 downloadsShow notes from a folder as a chronological list with an activity heatmap, tag browser, pinning, and date filters.
Notes List turns a vault folder into a browsable timeline: a chronological list of its notes on one side, and a GitHub-style activity heatmap and tag browser on the other. It's a good fit for a daily journal, a work log, or any "one note per entry" habit, where seeing when things happened matters as much as the notes themselves.
Official Plugin Page - Changelog

Open the view from the ribbon icon ("Open notes list") or the Notes List: Open command.
<!-- more --> at that point (see Preview break).tags frontmatter property and the #tags written in its text. Inline tags are taken out of the displayed text, so they appear once, in that row (tags inside code are left alone, as Obsidian doesn't treat them as tags). Click a tag to filter the list by it.timestamp (set it via Obsidian's own "Date & time" property type in the Properties panel), falling back to the file's last-modified time if it isn't set. Click the date, or double-click the note's file name or content, to open the note.pinned property in the note's own frontmatter, so it's visible in the note itself and travels with it across a rename or move.#area/work under #area). An Untagged entry, always at the end of the list, shows the notes that have no tags at all.- [ ] / - [x] checkboxes Obsidian already recognizes: x counts as completed, - as cancelled (it only counts towards Any), and any other status, like / for in progress, as open. Notes with tasks also show a small "completed/total" counter, e.g. "2/5", next to the bookmark. Tasks can be checked and unchecked right in the list, and the change is saved to the note.x) below the heatmap to clear just that one.Notes List is available in the official Obsidian Community Plugins directory: community.obsidian.md/plugins/notes-list.
To install it from Obsidian:
To build it yourself instead:
npm install
npm run build
Then copy manifest.json, main.js and styles.css into <your-vault>/.obsidian/plugins/notes-list/, and enable the plugin from Settings → Community plugins.
For local development, npm run deploy builds and runs copy-to-vault.mjs, which copies those three files into your vault's .obsidian/plugins/notes-list/ folder. That script is local and not part of the repository, since it holds your own vault path: create it next to package.json, reading the vault path from wherever suits you (for example process.env.OBSIDIAN_VAULT_PATH).
Requires Obsidian 1.13.0 or later. The settings tab groups related controls under a shared heading, and every setting can be found through Obsidian's settings search:
| Group | Setting | Description |
|---|---|---|
| Folder and files | Folder | Vault folder to watch, empty = entire vault. |
| Folder and files | Subfolders | Also show notes from subfolders of the chosen folder. |
| Folder and files | Template | Optional note to start new notes from (empty = a blank note); the template must have a property named timestamp in its frontmatter. |
| Folder and files | Unique note name format | moment.js format for the New Note button's auto-generated file name (default YYYYMMDDHHmmss); also what "When different from unique note name" compares against. |
| Notes list | Show note name | Never / Always / When different from unique note name (default; see Features above). |
| Notes list | Content display | Full / Preview (default); a note can override this with its own content-display frontmatter property. |
| Notes list | Preview length | Max characters shown when Content display (or a note's own override) is Preview (default 300); the field stays enabled either way. |
| Notes list | Show date group headers | Show "Today" / "Yesterday" / "This week" / "Older" headers above the list (default off). |
| Notes list | Notes per page | Number of notes shown per page in the list (default 10). |
| Sidebar | Tag tree expansion | How far the tag tree is expanded by default: Fully collapsed / Expand to level 2 / Expand to level 3 / Fully expanded (default). You can still expand or collapse any tag by hand; changing this setting resets those manual changes. |
Desktop and mobile. The Notes list and Sidebar settings have two independent values: one for the desktop app and one for the Obsidian mobile app (phone and tablet). The settings tab shows each setting once, and changing it only affects the kind of device you're on, as a note at the top of the Notes list group reminds you. So to change the mobile values, open the settings from your phone or tablet. Both sets are saved in the plugin's settings file and synced with your vault, so changing one never overwrites the other. When upgrading from a version without this split, your existing values are copied to both sets.
Write <!-- more --> in a note (on its own line, or in the middle of one) to make the list show only what comes before it. It's an HTML comment, so it stays invisible when you read the note in Obsidian. Only the first one counts, and one inside a code block is ignored.
How it combines with the other options, from strongest to weakest:
content-display property: full shows the whole note, marker or not; preview cuts at the marker, or at Preview length if there's none.<!-- more --> marker: the note is cut there even when Content display is set to Full, and Preview length doesn't apply.The size of the notes' text can be changed with a CSS snippet, separately for the regular layout and for the single-column (mobile) one:
| Variable | Affects | Default | Default in single column |
|---|---|---|---|
--notes-list-content-font-size |
Note content | Inherited from Obsidian | 1.1rem |
--notes-list-content-line-height |
Line height of the note content's paragraphs | 1.4rem |
1.4rem |
--notes-list-title-font-size |
Note file name | Inherited from Obsidian | 1.1 × inherited (1.1em) |
--notes-list-date-font-size |
Date and time link | Obsidian's small UI font size | Obsidian's small UI font size |
--notes-list-panel-title-font-size |
Section titles ("Notes", "Activity", "Tags") | Obsidian's level-4 heading size | 1.1rem |
Each one has a --notes-list-mobile-… counterpart (for example --notes-list-mobile-content-font-size) that applies only in the single-column layout. In that layout the mobile variable wins if set, then the regular one, then the single-column default above.
body {
--notes-list-content-font-size: 15px;
--notes-list-mobile-content-font-size: 17px;
--notes-list-mobile-content-line-height: 1.6;
--notes-list-mobile-date-font-size: 14px;
}
See CHANGELOG.md.
See CLAUDE.md for build commands and an architecture overview.