Skip to content

Releases: NotePlan/plugins

🔬 Projects + Reviews

22 Mar 00:20

Choose a tag to compare

What's changed in 🔬 Projects + Reviews plugin?

See website README for more details, and how to configure.under-the-hood fixes for integration with Dashboard plugin

[2.0.0.b12] - 2026-03-21

  • remove two config settings that should have been removed earlier.

[2.0.0.b11] - 2026-03-20

Project Metadata & Frontmatter

Project metadata can now be fully stored in frontmatter, either as a single configurable key (project:) or as separate keys for individual fields (start, due, reviewed, etc.). Migration is automatic — when any command updates a note with body-based metadata, it moves it to frontmatter and cleans up the body line. After a review is finished, any leftover body metadata line is replaced with a migration notice, then removed on the next finish.

Modernised Project List Design

The Rich project list has been significantly modernised with a more compact, calmer layout showing more metadata at a glance.

New Controls

An "Order by" control has been added to the top bar (completed/cancelled/paused projects sort last unless ordering by title). Automatic refresh for the Rich project list is available via a new "Automatic Update interval" setting (in minutes; 0 to disable).

Progress Reporting

Weekly per-folder progress CSVs now use full folder paths consistently and include a totals row. This data can also be visualised as two heatmaps — notes progressed per week and tasks completed per week.

Other

The "Group by folder" now defaults to off.

[1.3.1] - 2026-02-26

  • New setting "Theme to use for Project Lists": if set to a valid installed Theme name, the Rich project list window uses that theme instead of your current NotePlan theme. Leave blank to use your current theme.
  • Fixed edge case with adding progress updates and frontmatter.

[1.3.0] - 2026-02-20

Display Improvements

  • Supports opening the Project Lists window in NotePlan's main window on macOS. See Display setting "Open Project Lists in what sort of macOS window?".
  • Adds the plugin to the NP Sidebar list of plugins
  • Now highlights the project in the list that is currently being reviewed
  • Moved the display toggles to a new "Filter…" menu in the top bar, and added "Show next actions?" and "Show paused?" toggles. Other changes to layout at narrower window widths.
  • When running in the main window, clicking on a project note now opens it in a split view to the side.
  • Added 'Next' review button to top bar.
  • Added 'Start' review button to the edit dialogs
  • Added an 'Add Task' button to the edit dialog, which asks user for task details, and which heading to add it under.
  • Added a count badge to project list rows: shows count of open (non-future) items in a small grey square. Badges only appear for active projects and when counts are greater than zero.
  • Smartly truncates long 'next action' lines
  • Uses a note's icon in the project list, if set in the note's frontmatter
  • Turned back on the automatic updates of Dashboard plugin (if open). [Requires Dashboard v2.4.0 beta 18 or later.]
  • Improved the dialog box title (now includes folder and clickable project note name)
  • Progress line format now changed to remove colon after date by default (i.e. Progress: <num>@YYYY-MM-DD <description>), but existing lines will still be parsed correctly.
  • If "display dates?" setting is off, then any progress or next actions lines are shown under the project title, rather than to the side.

Processing Improvements

  • Supports projects in (Team)Space notes, using the settings in the Perspective from Dashboard v2.4 which allows you to specify which (Team)Spaces you wish to include, plus whether or not to include the Private "Space" (all notes not in a Space).
  • New 'Sequential' project marker that automatically makes the first open task/checklist in a project note the 'next action'. To set this add the frontmatter project: #sequential.
  • Improved next action processing: now only the first tagged item is shown; if there are no tagged items and a sequential tag is present in the frontmatter, the first open item is displayed instead.
  • New setting "Progress Heading" allows to put a heading wherever you want in a project note for the Progress: ... lines to live. If a note has existing progress lines when this is first set, it will first find them and insert the heading above the lines. (Requested by @harold.)
  • New setting "Also write most recent Progress line to frontmatter?". When turned on this allows the current progress information to be used in Folder Views. (default: off) (for @oak86)
  • Pausing or un-pausing on a Project now also updates the @reviewed() date
  • Stops the 'next action' check from running if the project note is marked as #sequential

Fixed

  • Re-wrote finding open project note now there can be multiple Editors open.
  • Folder name (including Space name) not being included in project completion list in yearly note
  • Progress lines with 100% were parsed as 10%
  • Other smaller improvements and fixes (including those reported by @garba, @mourique and @doug)
Read more

🔬 Projects + Reviews

21 Mar 20:27

Choose a tag to compare

What's changed in 🔬 Projects + Reviews plugin?

See website README for more details, and how to configure.under-the-hood fixes for integration with Dashboard plugin

[2.0.0.b11] - 2026-03-20

Project Metadata & Frontmatter

Project metadata can now be fully stored in frontmatter, either as a single configurable key (project:) or as separate keys for individual fields (start, due, reviewed, etc.). Migration is automatic — when any command updates a note with body-based metadata, it moves it to frontmatter and cleans up the body line. After a review is finished, any leftover body metadata line is replaced with a migration notice, then removed on the next finish.

Modernised Project List Design

The Rich project list has been significantly modernised with a more compact, calmer layout showing more metadata at a glance.

New Controls

An "Order by" control has been added to the top bar (completed/cancelled/paused projects sort last unless ordering by title). Automatic refresh for the Rich project list is available via a new "Automatic Update interval" setting (in minutes; 0 to disable).

Progress Reporting

Weekly per-folder progress CSVs now use full folder paths consistently and include a totals row. This data can also be visualised as two heatmaps — notes progressed per week and tasks completed per week.

Other

The "Group by folder" now defaults to off.

[1.3.1] - 2026-02-26

  • New setting "Theme to use for Project Lists": if set to a valid installed Theme name, the Rich project list window uses that theme instead of your current NotePlan theme. Leave blank to use your current theme.
  • Fixed edge case with adding progress updates and frontmatter.

[1.3.0] - 2026-02-20

Display Improvements

  • Supports opening the Project Lists window in NotePlan's main window on macOS. See Display setting "Open Project Lists in what sort of macOS window?".
  • Adds the plugin to the NP Sidebar list of plugins
  • Now highlights the project in the list that is currently being reviewed
  • Moved the display toggles to a new "Filter…" menu in the top bar, and added "Show next actions?" and "Show paused?" toggles. Other changes to layout at narrower window widths.
  • When running in the main window, clicking on a project note now opens it in a split view to the side.
  • Added 'Next' review button to top bar.
  • Added 'Start' review button to the edit dialogs
  • Added an 'Add Task' button to the edit dialog, which asks user for task details, and which heading to add it under.
  • Added a count badge to project list rows: shows count of open (non-future) items in a small grey square. Badges only appear for active projects and when counts are greater than zero.
  • Smartly truncates long 'next action' lines
  • Uses a note's icon in the project list, if set in the note's frontmatter
  • Turned back on the automatic updates of Dashboard plugin (if open). [Requires Dashboard v2.4.0 beta 18 or later.]
  • Improved the dialog box title (now includes folder and clickable project note name)
  • Progress line format now changed to remove colon after date by default (i.e. Progress: <num>@YYYY-MM-DD <description>), but existing lines will still be parsed correctly.
  • If "display dates?" setting is off, then any progress or next actions lines are shown under the project title, rather than to the side.

Processing Improvements

  • Supports projects in (Team)Space notes, using the settings in the Perspective from Dashboard v2.4 which allows you to specify which (Team)Spaces you wish to include, plus whether or not to include the Private "Space" (all notes not in a Space).
  • New 'Sequential' project marker that automatically makes the first open task/checklist in a project note the 'next action'. To set this add the frontmatter project: #sequential.
  • Improved next action processing: now only the first tagged item is shown; if there are no tagged items and a sequential tag is present in the frontmatter, the first open item is displayed instead.
  • New setting "Progress Heading" allows to put a heading wherever you want in a project note for the Progress: ... lines to live. If a note has existing progress lines when this is first set, it will first find them and insert the heading above the lines. (Requested by @harold.)
  • New setting "Also write most recent Progress line to frontmatter?". When turned on this allows the current progress information to be used in Folder Views. (default: off) (for @oak86)
  • Pausing or un-pausing on a Project now also updates the @reviewed() date
  • Stops the 'next action' check from running if the project note is marked as #sequential

Fixed

  • Re-wrote finding open project note now there can be multiple Editors open.
  • Folder name (including Space name) not being included in project completion list in yearly note
  • Progress lines with 100% were parsed as 10%
  • Other smaller improvements and fixes (including those reported by @garba, @mourique and @doug)
Read more

⏱ Habits and Summaries

20 Mar 22:49

Choose a tag to compare

What's Changed in ⏱ Habits and Summaries plugin?

(And see the full README.)

[1.1.0.b11] - 2026-03-20

  • add a new period selector option "Custom range ..." at the top of the "Habit & Summary Charts" window.

[1.1.0.b10] - 2026-03-18

  • change charts display to use the existing "What time period should the Progress update cover?" setting, and to show it at the top of the display.
  • add "quarter to date" and "last 3 months" options to the available ones for the "What time period should the Progress update cover?" setting
  • further layout tweaks to suit longer data periods
  • switch to using window and sidebar title "Habit & Summary Charts"

[1.1.0.b9] - 2026-03-07

  • add demo mode for JGC, controlled by hidden 'useDemoData' boolean setting, and when true picking up from demoData.json file in the same folder as settings.
  • dev: shared the AnyChart heatmap HTML/JS pattern with the Reviews plugin for its weekly Area/Project progress heatmaps.

[1.1.0.b8] - 2026-03-07

  • fix: totals for time-based tags
  • dev: hidden setting useDemoData for chart summary. When true, chart data is read from demoData.json (serialised occurrences) instead of live gatherOccurrences. When useDemoData is false and Log Level is DEBUG, running the chart summary writes the current live data to demoData.json for later use as demo data.

[1.1.0.b7] - 2026-03-06 (unreleased)

  • the TOTALS section now slides under AVERAGES when window isn't wide enough
  • heatmap grid now adjusts width responsively.

[1.1.0.b6] - 2026-02-13 (unreleased)

  • change: /period stats now excludes future dates when the chosen period (week/month/quarter/year) extends beyond today.
  • dev: refactored chartStats.js to use the same data-gathering path as Period Stats and Progress Update (gatherOccurrences + gatherOccurrencesHelpers + TMOccurrences).
  • dev: refactored chartStatsScript.js to move stats generation code into chartStats.js, to improve testability and maintainability
  • dev: fix showHTMLV2() to always write out to savedFilename if set, even if window fails to open
  • fix: @mention totals and averages – normalise mention matching so config entries with or without leading @ or # both match note text (e.g. sleep and @sleep).

[1.1.0.b5] - 2026-02-12 (unreleased)

  • suppress display of 'total' or 'average' stats and 'average line' on items that aren't listed in the total or average settings.
  • add display of a 'days:' stat for the items which are defined as 'count'
  • fix calculations to count items without a numeric value as 1
  • fix calculations to total items of type #hashtag/4
  • tweak display spacing

[1.1.0.b4] - 2026-02-04 (private beta)

  • removed setting "Yes/No chart height (px)" as it wasn't being used
  • used user's locale rather than 'en-US' in formatting chart labels
  • disabled the many checkboxes at the top of the window
  • also show the averages and totals (where relevant) in the header of the bar charts
  • weekly average bars now always go Monday-Sunday
  • where a week has no data, prevent the weekly average bar from showing
  • revert grid and background colours in charts to what prototype had
  • update tooltips to show localised short date, including day name (e.g. "Sun, 8 Feb 2026")
  • further style tweaks

[1.1.0.b3] - 2026-02-03 (private beta)

  • Chart Summary Stats: new setting Chart average line with options: no average, 7-day moving average, or average of each successive weekly period.
  • fix to grid and text colors in charts
  • fix (I hope) to window floating off on refresh. Can now add back the Reload button.

[1.1.0.b2] - 2026-02-03 (unreleased)

  • Added back missing settings for /Heatmap... commands
  • Fixed Heatmaps not showing dates in tooltips
  • The existing functions now support durations in H:MM format not just decimal (e.g. @sleep(7:42) as well as @sleep(7.7)).

[1.1.0.b1] - 2026-02-02 (private beta)

  • Added /Chart Summary Stats command. This shows your progress update as beautifully-presented charts and statistics in a window. (It was prototyped by @Grdn and then integrated, updated and made maintainable by @jgclark.)
  • Renamed two commands:
    • /period stats (was /periodStats)
    • /progress update (was /appendProgressUpdate)

Significant changes since @Grdn's prototype

  • Added to NP sidebar
  • Moved all configuration from code to settings system
  • Simplified specifying colors for charts, and added Tailwind color support
  • Removed 'timeline' option
  • Now styled by the helper-provided Theme translation, and therefore removed unncessary dark/light toggle
  • Chart stats now track which tags include any time-based values and display their sums and averages in HH:MM format (not decimal) in the summary and tooltips. This can be overriden by the "Tags to display using time format" setting.
  • yes/no habits can be specified in a calendar note as either:
  • the habit as a completed task or checklist item;
  • For #hashtag or @mention: does it appear anywhere in the note?

[1.0.3] - 2026-01-30 (unreleased)

  • worked around a new bug in the API for getting hashtags and mentions that meant some were being ignored, affecting the accuracy of the plugin's output.

[1.0.2] - 2026-01-29 (unreleased)

  • under-the-hood code quality improvements, hopefully fixing some subtle bugs

[1.0.1] - 2025-10-11

Dev

  • Fixed formation of 'Refresh' x-callbacks for /appendProgressUpdate (only noticeable to devs)

Fixed

  • running the progressUpdate(...) template tag wouldn't write to anything other than the current note.

[1.0.0] - 2025-10-08

Rather arbitrarily promoting this to v1.0. But I think it deserves it after 4 years!

New

  • Adds support for 'all' time period in /periodStats command, including x-callback (for @Grdn)
  • Allow override of settings for /periodStats command when called from x-callbacks (for @Grdn). This is achieved through a new 4th callback argument where any relevant settings can be over-ridden. (See examples in README!) Note: will work for newly-created 'Refresh' buttons, but existing progress sections may need re-generating from scratch for this to work.

Changed

  • In the progress update output, if an item is asked for both in "average" and "total", then the output will show them combined, rather than as separate lines (for @joshdoyle, closes #614).
  • If you 'Refresh' an existing progress summary in an older note, it should now use the date interval when it was created, rather than the current date interval (for @vorg, closes #450). Note: will work for newly-created 'Refresh' buttons, but existing progress sections may need re-generating from scratch for this to work.
  • Uses richer menu in /periodStats command (available from NP 3.18.0)
  • Add note icon to periodStats output notes.

Fixed

  • stop periodStats opening its output note in a new split window when it was already open

[0.22.1] - 2024-09-13

  • fix empty lines appearing in output of some progressUpdate(...) template calls (reported by Madscientist and Kc)

[0.22.0] - 2024-06-04 by @aaronpoweruser

  • Add new "checklist progress" option to appendProgressUpdate command (by @aarong). See README for details.

[0.21.0] - 2024-03-03

  • new "Weekly Stats for Mermaid" command. See README for details.
  • added a 'Refresh' button to periodStats outputs (except where the interval cannot be back-computed)
  • fix to 'sparkline' output of 'Yes/No Items' (thanks to report by @thor)

[0.20.4] - 2024-02-16

  • fix to "Weekly Stats as CSV" command output

[0.20.3] - 2024-01-30

  • fixed problem when using periodStats() tag from a template (thanks to report by @bhan.me). Requires updating Templating plugin to v1.10.2 as well.

[0.20.2] - 2023-12-30

  • added x-callback options for /periodStats command. See documentation for details.

[0.20.1] - 2023-11-10

  • fix Refresh button not working after '/append progress update' command
  • turns down logging against an API error

[0.20.0] - 2023-10-12

Added

  • new today progress command that summarises tags or mentions within today's note. This could be useful for summarising @calories(...) noted from different meals, for example. This can also be invoked by an x-callback call, and through template calls. (For @seanokana)
  • new heatmap for tag command that displays a 'heatmap' chart of a chosen tag's values for each day (e.g. all @work(...) values from daily notes)
  • new Habits+Summaries:update plugin settings command, that allows settings to be changed on iOS/iPadOS.

[0.19.4] - 2023-09-26 unreleased

Added

  • Refresh button to out...
Read more

🧹 Tidy Up

20 Mar 16:13

Choose a tag to compare

🧹 Tidy Up Changelog

See Plugin README for full details on the available commands and use from callbacks and templates.

[1.18.1] - 2026-03-20 @jgclark

  • small tweaks to /find duplicated content command

[1.18.0] - 2026-03-14 @jgclark

New

  • new /Clean up note filenames command: cleans encoded characters (e.g. &#039; &mdash;) and invalid path characters (e.g. \\ / :) from note filenames in a chosen folder and its subfolders. Optional folderToStart parameter for template/callback; if omitted, prompts for folder. Teamspace notes are skipped.

[1.17.0] - 2025-11-22 @jgclark

New

  • new /Remove empty lines command, that removes all empty lines from the open note. This is useful when trying to tidy up content copied into NP from other sources.

Changes

  • /Remove empty elements will now work again on a regular (non-calendar) note.
  • /Remove section from all notes now uses the 'Ignore future calendar notes?' setting, and now logs the notes that will be changed before running.

[1.16.0] - 2025-11-17 @jgclark

New

  • new /Remove empty elements from recent notes command, that uses the same settings as the existing '/Remove empty elements' command, but applies over all recent Calendar notes. (Optionally you can include regular notes as well, if you turn on the new setting.) (For @dwertheimer)

Changes

  • The name of the existing /Remove empty blocks command has been changed to /Remove empty elements to better reflect what it does.
  • This now also removes empty tasks and checklists.

[1.15.2] - 2025-11-01 @jgclark

  • updates /List duplicated content command to refer to the related (but simpler) new feature added to NotePlan in v3.19.2.
  • to align with that, the name of the command here is changed to /List duplicated content. (Note: this remains different to /List duplicate notes.)
  • the command is now less sensitive, and includes a note if the content duplication is >80% (was 90% before).
  • add note icons for notes generated by the /List conflicted notes, /List duplicated content and /List duplicate notes commands.

[1.15.1] - 2025-10-14 @jgclark

  • update /File root notes to improve menu display, particularly for Teamspace folders
  • remove '/Remove section from recent notes' command from being available in the general "/Tidy Up" command, as it requires user input, and so can't run silently.

[1.15.0] - 2025-10-12 @jgclark + @dwertheimer

  • rather arbitrarily promoting this to v1.x, after 2.5 years :-)
  • New command /Remove empty blocks which in the open note removes empty list items, quotations and headings, and reduces multiple empty lines to a single empty line.
  • New command /List missing daily notes in last year
  • new setting 'Ignore future calendar notes?' for /Remove section from all notes command
  • improvements to /List Doubled Notes command

[0.14.12] - 2025-10-12 @jgclark (unreleased)

  • '/List duplicates' command now has better display of Teamspace notes, and checks against the special Archive and Template folders.
  • '/List stubs' now doesn't check the special Archive and Template folders.

[0.14.11] - 2025-09-09 @jgclark

  • '/List stubs' command now has better display of Teamspace notes.

[0.14.10] - 2025-09-03 @jgclark

  • fix regression in '/Generate @repeats from recent notes' command.

[0.14.9] - 2025-08-30 @jgclark

  • rebuild to use updated code from Repeat Extensions plugin in /Generate @repeats in recent notes command
  • update /Remove blank notes to gracefully handle Teamspace notes, which can't be removed (at this time).

[0.14.8] - 2025-06-24 @jgclark

  • updated /Remove section from all notes command to show how many sections it will remove, and also to use the 'Type of match for section headings' (Exact, Starts with, or Contains) and 'Folders to exclude' settings
  • code refactoring

[0.14.7] - 2025-02-18 @jgclark

  • Stop lots of popups appearing when running /Generate @repeats in recent notes command (thanks, @KanerA).
  • The /List stubs command now understands line links (and so ignores the part of the link after the ^ character) (thanks, @chrismetcalf).
  • Improved descriptions of some settings.
Read more

🔁 @repeat Extensions

19 Mar 21:06

Choose a tag to compare

What's changed in 🔁 Repeat Extensions plugin?

Please see the Readme for this plugin for more details, including the available settings. For this plugin to work, you need to have the 'Append Completion Date' setting turned on in Preferences > Todo.

[1.1.0] - 2026-03-18

  • This can nan now generate repeats on cancelled tasks -- in notes with the special repeat trigger in the frontmatter. To turn this on, set new option "Allow repeats in cancelled paragraphs?" to true. (Note: Because of API limitations, this will only work in notes with the repeat trigger set.)
  • Fix to possible bug identified by @cursor.

[1.0.1] - 2025-09-17

Changed

  • Adds future ability for plugin to auto-update itself.

[1.0.0] - 2025-09-06

New feature: can now sort the section after a repeat has been generated in it. There are 2 new settings:

  1. "Run Task Sorter after changes?". If set, it will sort the lines in the section after a repeat has been generated in it. The ordering is controlled by the next setting.
  2. "Order for Task Sorting". This is a comma-separated list of fields to sort the section by, after generating repeats. The choices are any combination of 'content', 'due' (date), 'priority', 'mentions', 'hashtags'. Each field can be preceded by a minus sign to sort in reverse order. This is most useful for '-priority' which will sort from highest to lowest.
    Note: This requires @dwertheimer's 'Task Sorting & Tools' Plugin to be installed.

[0.9.1] - 2025-08-29

Changed

  • to avoid issues, any sync marker (the blue asterisk) on the completed task is not included on the new version of the task. (Thanks, @laurah + @i_mush. Addresses #672.)
  • Further, when a task lives in a regular/project note, and the sync copy is in a Calendar note, then marking it as complete in the Calendar note will make the new repeated task appear in the regular note. (For @laurah. Addresses #672.)

[0.9.0] - 2025-05-26

Changed

  • new setting "Don't look for repeats in Done or Archive note sections?", which defaults to false. (Closes #586 for @dbcoyer and @ouhakheme)

Fixed

  • new repeats are now indented to the same level as the original line
  • not working on notes with just 1 line

[0.8.2] - 2024-11-02

  • turn off warning on deleting @repeat()s -- useful if you have Delete Completed Repeats setting turned on. Note: requires NotePlan v3.15 beta from 2024-11-02 or later.

[0.8.1] - 2024-06-14

  • fixed bug and improved logging

[0.8.0] - 2024-06-09

  • added setting 'Delete completed item?', which when set deletes rather than keeps the completed repeated item.
  • fix detailed logging error in dateTime::cODS

[0.7.1] - 2024-06-07

  • can now be run from an x-callback or function, passing in the note to process. This was needed for the new Tidy plugin command, which generate any needed repeats in all recently-changed notes.

[0.7.0] - 2024-03-08

  • adjust new date calculation: when there is no task due date, use the note date if it exists, otherwise default to (current behavior) of task completion date. (PR by @ameritrash)
  • fix to @repeat(1m) repeats in a monthly note not being written into a monthly note (etc.)

📒 Templating

19 Mar 17:45

Choose a tag to compare

Templating Changelog

About Templating Plugin

See Plugin Documentation for details on available commands and use case.

DBW: REMEMBER THAT IF YOU ADDED ANY HELPERS IMPORTS, ADD THEM TO THE HELPER MODULE TO GIVE SCRIPTS ACCESS TO THEM ALSO

[2.2.11] 2026-03-19 @dwertheimer

Fixed

  • Templating AI consent before analysis: When template rendering fails and AI analysis is eligible, the plugin now prompts with a likely error cause + snippet before calling NotePlan.ai for suggestions.

Edited in this release

  • np.Templating/lib/engine/aiAnalyzer.js — prompt user with showMessageYesNo before calling NotePlan.ai
  • np.Templating/__tests__/* — mock AI consent prompt for deterministic tests

[2.2.10] 2026-03-16 @dwertheimer

Fixed

  • templateRunner run-from-code when Forms create-new: When called with no template name but args containing newNoteTitle (and optionally non-empty templateBody), processTemplateArguments now sets isRunFromCode = true so the main block runs and the note is created and optionally opened in the editor. Previously only getNoteTitled or non-empty templateBody triggered run-from-code, so Forms create-new with empty templateBody in the first pass never entered the block.
  • templateRunner return value when nothing executed: When the main block is not entered (no template name, not run-from-code, no passed template body), templateRunner now returns null instead of falling through to undefined, so callers (e.g. Forms) can treat it as failure and show an error instead of closing the window. Return type updated to Promise<string | void | null>.
  • CommandBar.prompt return: When "You must supply a template title" is shown, the function now returns null so the caller does not treat it as success.

Edited in this release

  • np.Templating/plugin.json — Version 2.2.10; lastUpdateInfo.
  • np.Templating/CHANGELOG.md — This section.
  • np.Templating/src/NPTemplateRunner.jsprocessTemplateArguments: treat args.newNoteTitle (or non-empty args.templateBody) as run-from-code; templateRunnerExecute: return null when main block skipped, and when CommandBar.prompt for missing template title; return type Promise<string | void | null>.

[2.2.9] 2026-01-XX @dwertheimer

  • Add new hidden command getRenderContext for use by other plugins (e.g., Forms plugin)
    • Returns the full templating render context object with all globals, modules, and helpers (date, time, note, tasks, moment, etc.)
    • Includes timing logs for performance monitoring (setup, config, engine creation, context building, total time)
    • Allows other plugins to reuse templating context without duplicating code
    • Accessible via DataStore.invokePluginCommandByName('getRenderContext', 'np.Templating', [userData])
  • Comprehensive template search refactoring - Expand template search functions to search in both @templates and @Forms directories across all spaces
    • New shared utility: Created getTemplateFolderPrefixes() function that builds complete list of folder prefixes including:
      • Private root folders: @Templates and @Forms (or localized equivalents)
      • All teamspace root folders: %%NotePlanCloud%%/<teamspaceID>/@Templates and %%NotePlanCloud%%/<teamspaceID>/@Forms
    • Core template search functions updated:
      • getFilteredTemplateList - Now searches in both private root and all teamspace root folders
      • getTemplateNote - Now searches all teamspaces, not just private root
      • getFilenameFromTemplate - Filters notes from all template folders in all spaces
      • getTemplateContent - Searches in all template folders when finding templates
      • templateExists - Searches in all template folders (Templates, Forms, all spaces)
    • User-facing commands updated:
      • templateInsert and templateAppend - Now use getTemplateNote (searches all folders/spaces)
      • <current> prompt validation - Now checks if note is in any template folder (not just @templates)
      • addFrontmatterToTemplate (NPTemplateRunner) - Now uses getTemplateNote
      • chooseTemplate - Now uses chooseNoteV2 for decorated note selection UI (shows icons, colors, folder paths)
        • Automatically displays templates from both @templates and @Forms directories across all spaces
        • No longer limited to just @templates folder in display logic
        • Improved user experience with visual decorations and better folder path display
    • Localization support:
      • All functions now use DataStore.preference('templateFolder') for localized template folder names instead of hardcoded '@templates'
      • All functions now use DataStore.preference('formsFolder') for localized forms folder names (with '@Forms' fallback)
    • Bug fixes:
      • Fixes issue where form processing templates stored in @Forms weren't found by templateRunner and getTemplateNote when processing form submissions
      • Fixes issue where templates in teamspaces weren't found by template search functions
    • Impact: Templates can now be stored in @Forms directory (for form processing) or @templates directory (for regular templates), in both private root and teamspace root folders, and all search functions will find them correctly
  • Replace chooseNote/chooseOption with chooseNoteV2 throughout np.Templating - Modernize all note selection UI
    • All functions updated to use chooseNoteV2:
      • handleNoteSelection in NPTemplateRunner.js - Replaced deprecated chooseNote with chooseNoteV2
        • Uses DataStore.projectNotes which automatically includes notes from all spaces (private and teamspaces)
        • When templates use <choose> or <select> placeholders, users now see decorated note selection UI
      • chooseTemplate in templateManager.js - Replaced chooseOption with chooseNoteV2
        • Templates from both @templates and @Forms directories (across all spaces) are properly displayed with full paths
        • Removed complex label manipulation code that only handled @templates folder
      • getTemplateContent in templateManager.js - Replaced chooseOption with chooseNoteV2
        • When multiple templates match the same name, user selection now shows decorated UI with folder paths
        • Templates from all template folders (Templates, Forms, all teamspaces) are included in selection
    • Benefits:
      • Better UI with decorated options showing icons, colors, and folder paths
      • All note selection now searches across all spaces (private root and all teamspace root folders)
      • Consistent user experience across all template selection functions
      • Visual distinction between templates in different folders and spaces
    • Backward compatibility: chooseNote is still available in templates via helpers.chooseNote for backward compatibility, but helpers.chooseNoteV2 is recommended for new templates
    • Testing: Updated all test mocks to use chooseNoteV2 and added DataStore.preference mocks for template folder localization

[2.2.8] 2026-01-XX @dwertheimer

  • Add triggerTemplateRunner command to automatically run templates when notes are opened
  • New hidden command triggerTemplateRunner checks for runTemplateOnOpen frontmatter attribute
  • When a note with runTemplateOnOpen is opened, the specified template is automatically executed
  • Use triggers: onOpen => np.Templating.triggerTemplateRunner in note frontmatter to enable this feature
  • Similar to Forms plugin's triggerOpenForm functionality, but for template execution
  • Example use case: Automatically update age calculations or other dynamic content when a note is opened

[2.2.7] 2026-01-05 @dwertheimer

  • templateRunnerExecute now returns AI analysis errors from all code paths
  • Modified templateRunnerExecute to return Promise<string | void> instead of Promise
  • Added hasAiAnalysisError helper function to detect AI analysis error marker
  • Updated all handler functions (handleCurrentNote, handleRegularNote, handleTodayNote, handleWeeklyNote) to return errors
  • Updated handleNewNoteCreation to return rendered content if it contains AI analysis error
  • All early return paths in templateRunnerExecute now check for and return AI analysis errors
  • This allows Forms plugin to capture and display template rendering errors to users

[2.2.6] 2026-01-04 @dwertheimer

  • Fix allowCreate parameter parsing for promptMention and promptTag prompts: The allowCreate parameter (4th parameter) was not being parsed correctly from template tags, preventing the "➕ Add new [item]" option from appearing in selection dialogs. This fix:
    • Improved parameter parsing to handle both quoted strings ('true') and unquoted boolean literals (true)
    • Fixed regex pattern to handle both full template tag syntax (<%- promptMention(...) %>) and cleaned tag format (without <% %>)
    • Added fallback parsing logic for multiple parameters when the primary regex doesn't match
    • Works with all template tag syntax variations: <% %>, <%- %>, <%- -%>, <%= %>
    • Users can now properly use allowCreate to enable creating new mentions/hashtags when they don't exist in the list

[2.2.5] 2025-12-19 @dwertheimer

  • Fix messaging in templateNew when templates not found
  • Enhanced template: ignore code block handling: Code blocks starting with ```template: ignore on the first line are now completely removed from templates (not just protected). Comment-style ignores (// template: ignore or `/* template: ignore */`) continue to be protected during processing and restored in the output. This allows template authors to include metadata or instructions that should not appear in the final rendered output.
  • TemplateRunner rendering improvements: TemplateRunner now consistently renders template tags in all fields before using them:
    • templateBody is now rendered in handleNewNoteCreation (for create-new pa...
Read more

📒 Templating

18 Mar 03:22
18bc2be

Choose a tag to compare

Templating Changelog

About Templating Plugin

See Plugin Documentation for details on available commands and use case.

DBW: REMEMBER THAT IF YOU ADDED ANY HELPERS IMPORTS, ADD THEM TO THE HELPER MODULE TO GIVE SCRIPTS ACCESS TO THEM ALSO

[2.2.10] 2026-03-16 @dwertheimer

Fixed

  • templateRunner run-from-code when Forms create-new: When called with no template name but args containing newNoteTitle (and optionally non-empty templateBody), processTemplateArguments now sets isRunFromCode = true so the main block runs and the note is created and optionally opened in the editor. Previously only getNoteTitled or non-empty templateBody triggered run-from-code, so Forms create-new with empty templateBody in the first pass never entered the block.
  • templateRunner return value when nothing executed: When the main block is not entered (no template name, not run-from-code, no passed template body), templateRunner now returns null instead of falling through to undefined, so callers (e.g. Forms) can treat it as failure and show an error instead of closing the window. Return type updated to Promise<string | void | null>.
  • CommandBar.prompt return: When "You must supply a template title" is shown, the function now returns null so the caller does not treat it as success.

Edited in this release

  • np.Templating/plugin.json — Version 2.2.10; lastUpdateInfo.
  • np.Templating/CHANGELOG.md — This section.
  • np.Templating/src/NPTemplateRunner.jsprocessTemplateArguments: treat args.newNoteTitle (or non-empty args.templateBody) as run-from-code; templateRunnerExecute: return null when main block skipped, and when CommandBar.prompt for missing template title; return type Promise<string | void | null>.

[2.2.9] 2026-01-XX @dwertheimer

  • Add new hidden command getRenderContext for use by other plugins (e.g., Forms plugin)
    • Returns the full templating render context object with all globals, modules, and helpers (date, time, note, tasks, moment, etc.)
    • Includes timing logs for performance monitoring (setup, config, engine creation, context building, total time)
    • Allows other plugins to reuse templating context without duplicating code
    • Accessible via DataStore.invokePluginCommandByName('getRenderContext', 'np.Templating', [userData])
  • Comprehensive template search refactoring - Expand template search functions to search in both @templates and @Forms directories across all spaces
    • New shared utility: Created getTemplateFolderPrefixes() function that builds complete list of folder prefixes including:
      • Private root folders: @Templates and @Forms (or localized equivalents)
      • All teamspace root folders: %%NotePlanCloud%%/<teamspaceID>/@Templates and %%NotePlanCloud%%/<teamspaceID>/@Forms
    • Core template search functions updated:
      • getFilteredTemplateList - Now searches in both private root and all teamspace root folders
      • getTemplateNote - Now searches all teamspaces, not just private root
      • getFilenameFromTemplate - Filters notes from all template folders in all spaces
      • getTemplateContent - Searches in all template folders when finding templates
      • templateExists - Searches in all template folders (Templates, Forms, all spaces)
    • User-facing commands updated:
      • templateInsert and templateAppend - Now use getTemplateNote (searches all folders/spaces)
      • <current> prompt validation - Now checks if note is in any template folder (not just @templates)
      • addFrontmatterToTemplate (NPTemplateRunner) - Now uses getTemplateNote
      • chooseTemplate - Now uses chooseNoteV2 for decorated note selection UI (shows icons, colors, folder paths)
        • Automatically displays templates from both @templates and @Forms directories across all spaces
        • No longer limited to just @templates folder in display logic
        • Improved user experience with visual decorations and better folder path display
    • Localization support:
      • All functions now use DataStore.preference('templateFolder') for localized template folder names instead of hardcoded '@templates'
      • All functions now use DataStore.preference('formsFolder') for localized forms folder names (with '@Forms' fallback)
    • Bug fixes:
      • Fixes issue where form processing templates stored in @Forms weren't found by templateRunner and getTemplateNote when processing form submissions
      • Fixes issue where templates in teamspaces weren't found by template search functions
    • Impact: Templates can now be stored in @Forms directory (for form processing) or @templates directory (for regular templates), in both private root and teamspace root folders, and all search functions will find them correctly
  • Replace chooseNote/chooseOption with chooseNoteV2 throughout np.Templating - Modernize all note selection UI
    • All functions updated to use chooseNoteV2:
      • handleNoteSelection in NPTemplateRunner.js - Replaced deprecated chooseNote with chooseNoteV2
        • Uses DataStore.projectNotes which automatically includes notes from all spaces (private and teamspaces)
        • When templates use <choose> or <select> placeholders, users now see decorated note selection UI
      • chooseTemplate in templateManager.js - Replaced chooseOption with chooseNoteV2
        • Templates from both @templates and @Forms directories (across all spaces) are properly displayed with full paths
        • Removed complex label manipulation code that only handled @templates folder
      • getTemplateContent in templateManager.js - Replaced chooseOption with chooseNoteV2
        • When multiple templates match the same name, user selection now shows decorated UI with folder paths
        • Templates from all template folders (Templates, Forms, all teamspaces) are included in selection
    • Benefits:
      • Better UI with decorated options showing icons, colors, and folder paths
      • All note selection now searches across all spaces (private root and all teamspace root folders)
      • Consistent user experience across all template selection functions
      • Visual distinction between templates in different folders and spaces
    • Backward compatibility: chooseNote is still available in templates via helpers.chooseNote for backward compatibility, but helpers.chooseNoteV2 is recommended for new templates
    • Testing: Updated all test mocks to use chooseNoteV2 and added DataStore.preference mocks for template folder localization

[2.2.8] 2026-01-XX @dwertheimer

  • Add triggerTemplateRunner command to automatically run templates when notes are opened
  • New hidden command triggerTemplateRunner checks for runTemplateOnOpen frontmatter attribute
  • When a note with runTemplateOnOpen is opened, the specified template is automatically executed
  • Use triggers: onOpen => np.Templating.triggerTemplateRunner in note frontmatter to enable this feature
  • Similar to Forms plugin's triggerOpenForm functionality, but for template execution
  • Example use case: Automatically update age calculations or other dynamic content when a note is opened

[2.2.7] 2026-01-05 @dwertheimer

  • templateRunnerExecute now returns AI analysis errors from all code paths
  • Modified templateRunnerExecute to return Promise<string | void> instead of Promise
  • Added hasAiAnalysisError helper function to detect AI analysis error marker
  • Updated all handler functions (handleCurrentNote, handleRegularNote, handleTodayNote, handleWeeklyNote) to return errors
  • Updated handleNewNoteCreation to return rendered content if it contains AI analysis error
  • All early return paths in templateRunnerExecute now check for and return AI analysis errors
  • This allows Forms plugin to capture and display template rendering errors to users

[2.2.6] 2026-01-04 @dwertheimer

  • Fix allowCreate parameter parsing for promptMention and promptTag prompts: The allowCreate parameter (4th parameter) was not being parsed correctly from template tags, preventing the "➕ Add new [item]" option from appearing in selection dialogs. This fix:
    • Improved parameter parsing to handle both quoted strings ('true') and unquoted boolean literals (true)
    • Fixed regex pattern to handle both full template tag syntax (<%- promptMention(...) %>) and cleaned tag format (without <% %>)
    • Added fallback parsing logic for multiple parameters when the primary regex doesn't match
    • Works with all template tag syntax variations: <% %>, <%- %>, <%- -%>, <%= %>
    • Users can now properly use allowCreate to enable creating new mentions/hashtags when they don't exist in the list

[2.2.5] 2025-12-19 @dwertheimer

  • Fix messaging in templateNew when templates not found
  • Enhanced template: ignore code block handling: Code blocks starting with ```template: ignore on the first line are now completely removed from templates (not just protected). Comment-style ignores (// template: ignore or `/* template: ignore */`) continue to be protected during processing and restored in the output. This allows template authors to include metadata or instructions that should not appear in the final rendered output.
  • TemplateRunner rendering improvements: TemplateRunner now consistently renders template tags in all fields before using them:
    • templateBody is now rendered in handleNewNoteCreation (for create-new path) to ensure template tags are replaced with form values before being written to notes
    • newNoteTitle is now rendered if it contains template tags before being used to create a new note
    • getNoteTitled (noteTitle) is now rendered if it contains template tags, while preserving special values like <today>, <current>, <choose>, <select>, <thisweek>, <nextweek>
    • writeUnderHeading is now rendered if it contains template tags, while preserving specia...
Read more

⏱ Habits and Summaries

18 Mar 11:17
18bc2be

Choose a tag to compare

What's Changed in ⏱ Habits and Summaries plugin?

(And see the full README.)

[1.1.0.b10] - 2026-03-18

  • change charts display to use the existing "What time period should the Progress update cover?" setting, and to show it at the top of the display.
  • add "quarter to date" and "last 3 months" options to the available ones for the "What time period should the Progress update cover?" setting
  • further layout tweaks to suit longer data periods
  • switch to using window and sidebar title "Habit & Summary Charts"

[1.1.0.b9] - 2026-03-07

  • add demo mode for JGC, controlled by hidden 'useDemoData' boolean setting, and when true picking up from demoData.json file in the same folder as settings.
  • dev: shared the AnyChart heatmap HTML/JS pattern with the Reviews plugin for its weekly Area/Project progress heatmaps.

[1.1.0.b8] - 2026-03-07

  • fix: totals for time-based tags
  • dev: hidden setting useDemoData for chart summary. When true, chart data is read from demoData.json (serialised occurrences) instead of live gatherOccurrences. When useDemoData is false and Log Level is DEBUG, running the chart summary writes the current live data to demoData.json for later use as demo data.

[1.1.0.b7] - 2026-03-06 (unreleased)

  • the TOTALS section now slides under AVERAGES when window isn't wide enough
  • heatmap grid now adjusts width responsively.

[1.1.0.b6] - 2026-02-13 (unreleased)

  • change: /period stats now excludes future dates when the chosen period (week/month/quarter/year) extends beyond today.
  • dev: refactored chartStats.js to use the same data-gathering path as Period Stats and Progress Update (gatherOccurrences + gatherOccurrencesHelpers + TMOccurrences).
  • dev: refactored chartStatsScript.js to move stats generation code into chartStats.js, to improve testability and maintainability
  • dev: fix showHTMLV2() to always write out to savedFilename if set, even if window fails to open
  • fix: @mention totals and averages – normalise mention matching so config entries with or without leading @ or # both match note text (e.g. sleep and @sleep).

[1.1.0.b5] - 2026-02-12 (unreleased)

  • suppress display of 'total' or 'average' stats and 'average line' on items that aren't listed in the total or average settings.
  • add display of a 'days:' stat for the items which are defined as 'count'
  • fix calculations to count items without a numeric value as 1
  • fix calculations to total items of type #hashtag/4
  • tweak display spacing

[1.1.0.b4] - 2026-02-04 (private beta)

  • removed setting "Yes/No chart height (px)" as it wasn't being used
  • used user's locale rather than 'en-US' in formatting chart labels
  • disabled the many checkboxes at the top of the window
  • also show the averages and totals (where relevant) in the header of the bar charts
  • weekly average bars now always go Monday-Sunday
  • where a week has no data, prevent the weekly average bar from showing
  • revert grid and background colours in charts to what prototype had
  • update tooltips to show localised short date, including day name (e.g. "Sun, 8 Feb 2026")
  • further style tweaks

[1.1.0.b3] - 2026-02-03 (private beta)

  • Chart Summary Stats: new setting Chart average line with options: no average, 7-day moving average, or average of each successive weekly period.
  • fix to grid and text colors in charts
  • fix (I hope) to window floating off on refresh. Can now add back the Reload button.

[1.1.0.b2] - 2026-02-03 (unreleased)

  • Added back missing settings for /Heatmap... commands
  • Fixed Heatmaps not showing dates in tooltips
  • The existing functions now support durations in H:MM format not just decimal (e.g. @sleep(7:42) as well as @sleep(7.7)).

[1.1.0.b1] - 2026-02-02 (private beta)

  • Added /Chart Summary Stats command. This shows your progress update as beautifully-presented charts and statistics in a window. (It was prototyped by @Grdn and then integrated, updated and made maintainable by @jgclark.)
  • Renamed two commands:
    • /period stats (was /periodStats)
    • /progress update (was /appendProgressUpdate)

Significant changes since @Grdn's prototype

  • Added to NP sidebar
  • Moved all configuration from code to settings system
  • Simplified specifying colors for charts, and added Tailwind color support
  • Removed 'timeline' option
  • Now styled by the helper-provided Theme translation, and therefore removed unncessary dark/light toggle
  • Chart stats now track which tags include any time-based values and display their sums and averages in HH:MM format (not decimal) in the summary and tooltips. This can be overriden by the "Tags to display using time format" setting.
  • yes/no habits can be specified in a calendar note as either:
  • the habit as a completed task or checklist item;
  • For #hashtag or @mention: does it appear anywhere in the note?

[1.0.3] - 2026-01-30 (unreleased)

  • worked around a new bug in the API for getting hashtags and mentions that meant some were being ignored, affecting the accuracy of the plugin's output.

[1.0.2] - 2026-01-29 (unreleased)

  • under-the-hood code quality improvements, hopefully fixing some subtle bugs

[1.0.1] - 2025-10-11

Dev

  • Fixed formation of 'Refresh' x-callbacks for /appendProgressUpdate (only noticeable to devs)

Fixed

  • running the progressUpdate(...) template tag wouldn't write to anything other than the current note.

[1.0.0] - 2025-10-08

Rather arbitrarily promoting this to v1.0. But I think it deserves it after 4 years!

New

  • Adds support for 'all' time period in /periodStats command, including x-callback (for @Grdn)
  • Allow override of settings for /periodStats command when called from x-callbacks (for @Grdn). This is achieved through a new 4th callback argument where any relevant settings can be over-ridden. (See examples in README!) Note: will work for newly-created 'Refresh' buttons, but existing progress sections may need re-generating from scratch for this to work.

Changed

  • In the progress update output, if an item is asked for both in "average" and "total", then the output will show them combined, rather than as separate lines (for @joshdoyle, closes #614).
  • If you 'Refresh' an existing progress summary in an older note, it should now use the date interval when it was created, rather than the current date interval (for @vorg, closes #450). Note: will work for newly-created 'Refresh' buttons, but existing progress sections may need re-generating from scratch for this to work.
  • Uses richer menu in /periodStats command (available from NP 3.18.0)
  • Add note icon to periodStats output notes.

Fixed

  • stop periodStats opening its output note in a new split window when it was already open

[0.22.1] - 2024-09-13

  • fix empty lines appearing in output of some progressUpdate(...) template calls (reported by Madscientist and Kc)

[0.22.0] - 2024-06-04 by @aaronpoweruser

  • Add new "checklist progress" option to appendProgressUpdate command (by @aarong). See README for details.

[0.21.0] - 2024-03-03

  • new "Weekly Stats for Mermaid" command. See README for details.
  • added a 'Refresh' button to periodStats outputs (except where the interval cannot be back-computed)
  • fix to 'sparkline' output of 'Yes/No Items' (thanks to report by @thor)

[0.20.4] - 2024-02-16

  • fix to "Weekly Stats as CSV" command output

[0.20.3] - 2024-01-30

  • fixed problem when using periodStats() tag from a template (thanks to report by @bhan.me). Requires updating Templating plugin to v1.10.2 as well.

[0.20.2] - 2023-12-30

  • added x-callback options for /periodStats command. See documentation for details.

[0.20.1] - 2023-11-10

  • fix Refresh button not working after '/append progress update' command
  • turns down logging against an API error

[0.20.0] - 2023-10-12

Added

  • new today progress command that summarises tags or mentions within today's note. This could be useful for summarising @calories(...) noted from different meals, for example. This can also be invoked by an x-callback call, and through template calls. (For @seanokana)
  • new heatmap for tag command that displays a 'heatmap' chart of a chosen tag's values for each day (e.g. all @work(...) values from daily notes)
  • new Habits+Summaries:update plugin settings command, that allows settings to be changed on iOS/iPadOS.

[0.19.4] - 2023-09-26 unreleased

Added

  • Refresh button to output of periodStats command, where the time period is " to date"

[0.19.3] - 2023-08-06

Fixed

  • date logic on 'weekl...
Read more

⚡️ Quick Capture

18 Mar 17:24
18bc2be

Choose a tag to compare

What's changed in ⚡️ Quick Capture

See plugin documentation for more details, and how to configure.

[1.0.5] - 2026-03-18

  • Fix the '/quick add to ... journal' commands so they now honour the append/prepend setting (thanks, @jokky102).
  • dev: Rename the internal journal helper functions to addTextTo...Journal to match the command names.
  • clarify some command descriptions.

[1.0.4] - 2026-02-14

Fixed

  • Setting 'Text to append to new inbox tasks' was not applied when adding tasks to the inbox; only the jot append setting was being used (thanks, @lt0807)

[1.0.3] - 2026-01-31

  • Bug fix for '/quick add line under heading' command writing tasks not text (thanks, @lt0807)

[1.0.2] - 2025-11-08

Chore

  • Rebuild to pick up improvements in updated note + folder pickers and week handling libraries

[1.0.1] - 2025-11-07

  • Improved display of icons and calendar notes in note picker.
  • Fix typos in prompts in some commands (thanks for report, @dwertheimer)

[1.0.0] - 2025-08-25

(Somewhat arbitrarily promoting this to be v1 after more than 4 years!)

New

  • support for adding text to Teamspace notes
  • the commands where you can select a calendar note to use from the command bar, now
    • show and allow you to pick future calendar notes, even that haven't already been created.
    • annotate more calendar dates with their relative date (e.g. "in 3 days time")
  • new setting 'Inbox Heading'. If the Inbox location is set to 'Daily' or 'Weekly' note, this is the Heading that inbox items are added under. If not set, then it will append or prepend to the note (as set below).

Changed

  • improved display of list of headings (when running NP 3.18+)
  • improved text of some placeholders

Fixed

  • fix commands that deal with the edge case where a note has frontmatter but the # Title is not in it
  • fix edge case with '/qpc' command
  • appending text in commands other than the "/quick add ... to inbox" ones
  • when writing new Journal headings, it was ignoring the 'heading level' setting (thanks, @stacey)
  • fix to some x-callback calls (thanks, @dutchnesss)

[0.16.1] - 2025-02-15

Changed

  • improved handle what happens when a callback runs /qath, /qalh or /qach and asks for a future calendar note that hasn't yet been created. (But note: API doesn't allow calendar notes to be created.)
  • improved display of relative dates in commmand bar.

[0.16.0] - 2024-02-13

Added

  • new /quick add checklist under heading command
  • new /jot command (full name /quick add text to inbox) to quickly 'jot' (add some text) to your chosen Inbox note

Fixed

  • notes with pairs of *** separators aren't now sometimes confused with frontmatter sections (thanks to report by @haris-sav)
  • where a new heading needed to be added first, it wasn't always created as a heading (thanks to report by @colin)

[0.15.2] - 2023-12-07

Fixed

  • '/quick add task under heading' using wrong paragraph type when inserting at top of note (thanks to tip by @laestrella26)

[0.15.1] - 2023-11-30

Added

  • new x-callback argument to set heading level (1-5) on commands "/quick add task under heading" and "/quick add line under heading"

Fixed

  • wrong display of number of '#' headings in the 'Choose Heading' dialog

[0.15.0] - 2023-09-01

Added

  • new "/quick add to this month's journal and /quick add to this year's journal commands

Improved

  • speeded up the slower /quick... commands

Fixed

  • fixed bug using relative dates with x-callbacks (reported by @phenix)

[0.14.1] - 2023-08-27

Fixed

  • /quick add line under heading: first note in list wouldn't work (thanks to report by @phenix)
  • some relative dates not annotated in command bar lists

[0.14.0] - 2023-08-19

Added

  • relative dates today, yesterday, tomorrow, this week, last week, next week, this month, last month, next month, this quarter, last quarter, next quarter are available when using x-callback-url mechanism to invoke the "/quick add to calendar note", "/quick prepend task to calendar note", "/quick add task under heading" and "/quick add line under heading" commands. Pass in in place of the 'note title' or 'note date' argument (suitably URL encoded, of course).
  • the same commands, when run interactively from the command bar, now annotate these same dates, so you can find them more easily in the long list. The list remains sorted with most-recently updated first.
  • the "quick add task to inbox" command can now take a second parameter for the note title (or even a relative date) when run from template or x-callback. See README for details.

[0.13.0] - 2023-03-24

Added

  • command to edit settings, even on iOS

Breaking Changes

  • command '/quick prepend task to daily note' is renamed to '/quick prepend task to calendar note' as it now covers any period of calendar note. The previous alias 'qpd' still works. Note: this also changes the x-callback-url parameter accordingly.
  • same for '/quick prepend task to daily note' which is renamed to '/quick prepend task to calendar note'.
  • therefore command '/quickly add to weekly note' is removed.

Changed

  • 'append' commands now add before any archive section in the note, and 'prepend' commands now add after any frontmatter in the note.

Known bug

  • there's a known bug in commands that add text under a heading, if there's an earlier non-heading line with same text as the heading line. I'm waiting on a fix to the API. (Thanks to @colin for the report.)

[0.12.1] - 2022-08-21

Added

  • new /quick add to journal this week command, for those using weekly journals (for @John1)

[0.12.0] - 2022-08-01

Added

  • greater flexibility when running these functions from x-callback calls. It's possible to send one or more empty arguments, and that will cause the missing argument(s) be requested from the user, as it it were run interactively. Note: this only works from NotePlan v3.6.1. (Requested by @John1)
  • the matching of section headings in /qalh and /qath from x-callback calls is done as an exact match, or (from 0.12) just the first part of it. This means it's possible to have a section such as ## Journal for 3.4.22 that changes every day, but still refer to it by the unchanging string Journal.

[0.11.0] - 2022-07-15

Added

  • the /addToInboxNote command can now send to the current Weekly as well as Daily or other fixed note. Note: please review your settings, as they have changed to accommodate this.

[0.10.1..0.10.0] - 2022-06-27

Added

  • new command /quick add to Weekly note command

Fixed

  • issue with passing YYYY-MM-DD dates as part of an x-callback invocation

[0.9.1..0.9.0] - 2022-05-12

Added

  • /quick add task under heading and /quick add line under heading now can add to existing daily (calendar) notes, not just regular notes. This also works for x-callback calls to these plugin commands.
  • ability to use these commands from x-callback-url calls. For example, calling the following (e.g. from the Shortcuts app, or even within NP itself) will do the equivalent of running the command /quick add to journal today and supplying with input 'something interesting': noteplan://x-callback-url/runPlugin?pluginID=jgclark.QuickCapture&command=quick%20add%20to%20journal%20today&arg0=something%20interesting

[0.8.0..0.8.6] - 2022-04-18

Changed

  • code clean-up, removing references to old _configuration note, and moved to newer logging system
  • now using new Configuration UI system instead of _configuration.
  • Tweaks the /int command's prompt text to remind user the title of the designated Inbox note (or today's daily note). (Thanks to @dwertheimer for the suggestion.)
  • changed back to using long command names
  • (under the hood) updated settings ready for new settings UI

Fixed

  • Flow Error in the last part of `quickCapture.js
  • For some date locales, /int and /qaj were adding to tomorrow's note, not today's (thanks to @colingold for the report)

[0.7.0..0.7.2] - 2021-10-05

Added

  • this feature requested by @bcohen44: "with a new _configuration setting textToAppendToTasks, you can specify text (including hashtags or mentions) that will be appended to all new tasks created using the /int command." I've extended this to cover the other relevant commands provided by this plugin.

Fixed

  • finally tracked down configuration bug (thanks to tip from @dwertheimer)
  • broke ability to write to daily note in trying to fix the configuration bug (thanks to tip from @bcohen44 and @Elessar)

[0.6.0] - 2021-08-29

Added

  • this feature requested by @Duclearc: "I want to be able to call the global NotePlan shortcut, and from it (using /qath) add a task to it on the fly to a heading. And if that heading doesn't exist, the plugin should create it." It allows creation of the new header both at the top and bottom of the note.

[0.5.0] - 2021-08-14

Changed

  • /int now only looks for inboxTitle in the _configuration settings note. If the setting is missing, or doesn't match a note, then the plugin will try to create it, from default settings if necessary. If the empty string (inboxTitle: "") is given, then use the daily note instead
  • some code refactoring

[0.4.0..0.4.5] - 2021-07-09

Added

  • add /qaj command: Quickly add text to the Journal section of today's daily note

Changed

  • smarter prepending for /qpt command
  • /int now uses the Templates/_configuration file (described above) to get settings for this command, rather than have to change the plugin script file directly

Fixed

  • bug fix with empty configurations (thanks to @renehuber)

[0.3.0..0.3.2] - 2021-05-16

Added

  • add /qpt command: quickly prepend task
  • add /qat command: quickly append task
  • add inbox add task command
  • add quickly add a task to note section command
  • ad...
Read more

📙 Note Helpers

18 Mar 11:51
18bc2be

Choose a tag to compare

What's changed in 📙 Note Helpers plugin?

For more details see the plugin's README.

[1.3.5] - 2026-03-18

  • fix to potential bug found by @cursor
  • add small detail to /print note helper

[1.3.4] - 2026-03-06

  • allow jumpToNoteHeading to take an argument of the note title or filename, for use with callbacks or shortcuts.

[1.3.2] - 2026-02-05

  • add more detail to /log Editor Note, to help flush out a long-standing API bug

[1.3.1] - 2026-01-25

  • fix to list inconsistent note filenames command. (Thanks, @Heathy65.) Closes #732
  • improved display of inconsistent note names, and added button to kick off the renaming.

[1.3.0] - 2025-12-20

  • new duplicate note command: duplicates the currently-open note, and unlike the built-in command, it allows the user to specify a new title and folder for it.

[1.2.5] - 2025-11-10

  • fix regression in folder chooser (thanks, @aleemshaun)

[1.2.4] - 2025-11-08

  • Improvements in heading picker in jump to heading and jump to note's heading commands

[1.2.3] - 2025-10-31

  • Fix to moveNote command for iOS/iPadOS

[1.2.2] - 2025-09-22

  • Fix regression in folder picker

[1.2.1] - 2025-09-19

  • improve and fix folder picker in various commands (including updating the sort order to match the app -- thanks for pointing this out, @tastapod)
  • allow delete note command to run on Teamspace notes (if running v3.18.2 or above).
  • stop inconsistent file name commands from running on Teamspace notes, which are stored in a SQL DB instead of having filenames

[1.2.0] - 2025-08-23

  • improved display of lists of notes and headings in jump to heading and jump to note's heading, and include Teamspace notes
  • various improvements/fixes to the inconsistent file name commands. Resolves issues #640, #642, #643 raised by @tastapod.
  • added notes to indicate where commands can't work on Teamspace notes, because of the different way they're architected.

[1.1.1] - 2025-04-22

  • the log Editor Note commands now handle Teamspace notes correctly.
  • fix to opening new notes in new note commands.

[1.1.0] - 2025-02-19

  • new list published notes command, that generates a list in the new 'Publlished Notes' note of all notes that have been published to published to the internet through NotePlan.

[1.0.0] - 2024-12-31

New

  • the new note command has been revived (alias nn). It creates a new (regular, not calendar) note with a title you give, and in a folder you can select. If the "Default Text to add to frontmatter" setting isn't blank, then the note will be created using that frontmatter.

Note: this version was promoted to be a Core Plugin from NotePlan 3.16.1.

Important Changes

  • when move note shows the list of folders, the special Templates and Archive folders are moved to the end of the list. (Plus any other special ones that start with '@').
  • the new note from clipboard and new note from selection commands have moved from Filer plugin to NoteHelpers.

[0.20.3] - 2024-12-25 (unpublished)

  • new logEditorNoteDetailed command (which can easily triggered from a callback) that also logs line type and rawContents

[0.20.2] - 2024-12-15

  • the log note details command now includes backlink-ed notes and paragraphs

[0.20.1] - 2024-10-22

  • new log note details command which prints note details to the log (for debugging purposes)

[0.20.0] - 2024-08-16

Added

  • new delete note command, that makes easier what the current NotePlan UI makes difficult.
  • new find unlinked notes command which finds and creates links to existing notes in the current note (by @aaronpoweruser).
    Unlinked notes demo

Fixed

  • fixed rename note filename when note has frontmatter (thanks for the report, @ariccb)

[0.19.2] - 2024-04-27

  • add trigger to note command is now more resilient to unusual frontmatter, and shouldn't duplicate an existing trigger when run from template

[0.19.1] - 2024-02-23

  • add trigger to note command can now be run from x-callback with parameter of the trigger string to add. This means it can be run from Templates with a command tag.
  • Added a migration message about 'open note' commands.

[0.19.0] - 2024-01-09

  • moved the "open note in ..." commands to the new "Window Tools" plugin
  • updated the display of the "index folders" command to use heading levels H2 to H4 depending on how deep the sub-folder is. The placeholder in the title {{folder}} now just uses the last part of the folder name, or new placeholder {{full_folder_path}} which will use the folder's full path. (Requested by @dutchnesss).
  • removed 'Show month/quarter/year' commands as they are now in the main NP menus.
  • fix to '/rename inconsistent filename' command (reported by @Anton-Sklyar)
  • fix to '/make index' command ignoring parameter 'displayOrder' if given.

[0.18.2] - 2023-09-18

  • fix edge case with /add trigger command.

[0.18.1] - 2023-08-15

  • New commands by @leo:
    • list inconsistent note filenames lists the names of notes whose filenames are inconsistent with their titles
    • rename filename to title renames the current filename to the title of the note
  • when the command bar shows list of notes to choose, it now includes Template files again.

[0.18.0] - 2023-08-13

  • new command Show This Month (alias /stm)
  • new command Show This Quarter (alias /stq)
  • new command Show This Year (alias /sty) (requested by @danieldanilov)
  • new command update all indexes that updates all the existing folder index notes
  • added more decoration to most-used calendar dates, when showing them in lists of notes (e.g. in "jump to note's heading" and "open note new window").

[0.17.3] - 2023-07-01

  • added new setting 'Title to use for index notes' for "/index folders" command (requested by @dwertheimer)
  • layout improvements and further bug fix in "/index folders" (spotted by @dwertheimer)

[0.17.2] - 2023-06-30

Fixed

  • fix bug in index folders command (spotted by @dwertheimer)

[0.17.0] - 2023-06-12

Added

  • new open url from a note command that asks user for a note, and then presents a list of URLs. The selected one is then opened in your default browser. (for @John1 with help from @dwertheimer)
  • now move note and index folders commands offer option to create a new folder when selecting a folder (suggested by @dwertheimer)
  • new reset caches command that just runs the command of that name in the NotePlan Help menu (for @clayrussell)

[0.16.1] - 2023-03-22

Added

  • added NoteHelpers: update settings command for iOS users
  • added setting for logging level

Changed

  • '/add trigger to note' command now is smarter in the way it works
  • restores "Default Text to add to frontmatter" setting for '/convert note to frontmatter' command

[0.16.0] - 2023-03-07

Added

  • new add trigger to note command that makes it easy to add a trigger to a particular note. It lists the functions from all plugins that it can work out are written for triggers, but also allows any function to be picked.
  • index folders command now:
    • has an option to sort output by title (alphabetical), last update date, or date the note was created (though note that I think that the underlying created date data is very unreliable).
    • has an option to add one of several date display settings on the end of every note that's listed
    • has a Refresh button at the top of each results set
    • can be run from x-callback-url calls (see README).

Fixed

  • convert to frontmatter command wasn't always working for calendar notes

[0.15.0] - 2022-07-30

Added

  • new command rename note filename renames the currently open note. Note: this changes the underlying filename not the visible title. (It only works with NotePlan v3.6.1 and later.)
  • new command enable heading links converts local links to headings (they start with the # character) to x-callback-url links that use the Noteplan URL-scheme to run the jumpToHeading function mentioned below. So while Noteplan doesn't support the standard way of linking to headings within notes, this plugin command now enables that feature if you're willing to change the destination of your links. (by @nmn)

Updated

  • The jump to heading command (which is used for jumping to headings within the same note) can now be used via x-callback-urls by passing the text of the heading in as an arg0.

[0.14.1] - 2022-06-12 (by @nmn)

Added

  • new command add number of days to dates that looks for bullets in your current open note that end with [[YYYY-MM-DD]]: and adds the number of days to or since that date.

[0.13.0] - 2022-06-02

Added

  • new command /open current note new split opens the current note in a new split window to the side in the main window

[0.12.0..0.12.1] - 2022-06-02

Added

  • command /convert to frontmatter which convert the current note to use frontmatter syntax, including optional default text that can be added in the Plugin's settings.

Changed

  • when using /open note new window or /open note new split it now places the cursor at what it judges to be the start of the main content of the note (i.e. after title or frontmatter) or project-related metadata.

[0.11.0..0.11.1] - 2022-05-10

Added

  • added /open note split command to open a user-selected note in a new split window (available from NotePlan 3.4)

Changed

  • updated logging to newer framework
  • switched to using longer descriptive command names. The older short names will still work as aliases
  • the /index command now adds time since note was last updated in the output
  • when jumping to...
Read more