Overview
Dialog notes let you attach a decision, question, or comment to a specific passage, so the reasoning behind your work lives next to the work itself instead of in a lost chat thread. They are designed to be discoverable rather than memorized: you see where context exists, and read it on demand.
A note is nothing exotic: it is an ordinary org footnote whose label starts
with a prefix (default note-). The reference [fn:note-why-db] marks the
passage; the body is a footnote definition collected under a * Notes section.
Because notes are real footnotes, they reuse all of org's footnote machinery
(reference/definition jump, hover, and the lint that detects a footnote whose
passage or body was deleted). The one thing that makes them special is that they
are excluded from export: notes are meta, not document content.
Important subtlety: the prefix is the only thing that distinguishes a note from an ordinary footnote. A footnote is treated as a note (and excluded from export) only when its label starts with the prefix. Your normal footnotes are never affected:
| Footnote | Is it a note? | Exported? |
|---|---|---|
[fn:1] | no | yes |
[fn:methods] | no | yes |
[fn:note-why-db] | yes | no |
In other words, this feature does not change how footnotes work in general; it
only adds special treatment for the small, opt-in set of footnotes you mark with
the prefix. The prefix is configurable with scimax.org.notes.labelPrefix (set
it to, say, kb- and [fn:kb-...] becomes the note namespace instead).
What a note looks like
In the file, everything is plain text in one document:
* Storage layer
We store everything in an embedded database[fn:note-why-db] to avoid a
server dependency.
* Notes :noexport:
[fn:note-why-db] Decision · jkitchin · 2026-06-28 · open
Chose embedded over client/server to keep zero-config setup.
- reply (alice): revisit if we need multi-writer.
The inline
[fn:note-why-db]marker is the anchor; it travels with the passage when you move it and orphans (a lint warning) if the passage is deleted.The
* Notessection is tagged:noexport:and collects the bodies, like a* Footnotessection.The first body line is a light convention,
Type · author · date · state, parsed for display. Everything after is freeform (including replies).
In the editor
| Affordance | Behavior |
|---|---|
| Gutter bubble | Lines with a note reference show a bubble in the gutter |
| Hover | Hover the [fn:note-...] marker to read the note body |
| Jump | Jump between the reference and its definition like any footnote |
| Notes panel | The Notes view lists notes grouped by heading; click to jump |
The marker stays visible (it is ordinary footnote syntax), so notes read naturally in plain text and in any other org editor.
Adding a note
Select the passage the note is about.
Run Scimax: Add Note (Decision/Question) on Selection (
scimax.org.addNote), from the editor right-click menu or the Command Palette.Pick a type: Note, Decision, or Question.
Type the body.
scimax inserts [fn:note-<slug>] after the selection (the slug is derived from
the passage and disambiguated automatically) and appends the definition under
* Notes, creating that :noexport: section if it does not exist. The author is
your scimax.org.notes.author setting, or your OS username.
Notes and export
By default notes never appear in exported documents. When you export to HTML,
PDF (LaTeX/Beamer), DOCX, or a notebook, only footnotes whose label starts with
the notes prefix ([fn:note-...]) are stripped before rendering. Every other
footnote, such as [fn:1] or [fn:methods], is left completely untouched and
exports as a normal footnote. The exclusion is purely a label-prefix opt-in, not
a blanket change to footnote export. Set scimax.org.notes.excludeFromExport to
false if you want notes included in output too.
Orphan detection (free, via footnote lint)
Because notes are footnotes, the existing org-lint checkers already cover them:
undefined-footnote-referenceflags[fn:note-x]when its definition was deleted.unreferenced-footnote-definitionflags a note body whose passage was deleted.
So a note whose target disappeared is surfaced automatically, with no separate machinery.
Settings
| Setting | Type | Default | Description |
|---|---|---|---|
| scimax.org.notes.excludeFromExport | boolean | true | Strip notes from exported documents |
| scimax.org.notes.labelPrefix | string | "note-" | Footnote label prefix that marks a note |
| scimax.org.notes.author | string | "" | Author recorded on new notes (OS user if "") |