Obsidian's core Note composer moves text between
notes, but it moves it bluntly: relative links come out pointing at nothing, a heading whose title
contains a character a file name cannot hold is refused outright, and extracted text is always
appended to the target — you never get to say where it lands. This
Obsidian plugin fixes those, and then goes considerably further: whole
folders can be merged, split, flattened, reordered and renamed; a note's heading hierarchy can become
a folder tree; and a selection can be marked in one note and dropped at an exact cursor position in
another.
The documentation is an interactive demo vault. Every feature has a note that explains what it does and why you would want it, and walks you through it step by step — most of them with a button that sets the relevant setting for you so you can try it immediately.
Start reading here — it is plain markdown, so it works on GitHub with nothing installed.
A copy of the vault ships with every release. You can access it via any of the following:
- Running the Advanced Note Composer: Open demo vault command.
- Downloading
advanced-note-composer-demo-vault-<version>.zip(<version>is the release version) from the Releases. - Browsing its source in
demo-vault/in this repository.
- Merge — a note into another, a folder into a folder, several selected notes at once, or a whole folder tree down into one file, with frontmatter reconciled by a strategy you choose and attachments carried along. Merge file · Merge folder · Merge folder into single file · Merge multiple files · Frontmatter merge strategy
- Extract — a selection, a heading and everything under it, the block between two horizontal
rules, or everything before or after the cursor — leaving a link, an embed, or nothing behind. With
nothing selected it creates an empty note and leaves the link at the cursor, so a note you have not
written yet can exist without your cursor going anywhere; the file explorer's folder menu creates one
the same way. Give it a split template and the new note is not empty at all — it comes out holding the
template, with the cursor where
{{content}}was. Extract selection · Extract heading · Extract between horizontal rules · Text after extraction · Create empty note - Split — by heading level, or recursively, turning a whole note's heading hierarchy (or one section of it) into a folder tree. The picker says up front whether you are creating a note or merging into an existing one. Split by headings · Split into folder · Split headings recursively · Create or merge when splitting
- Swap — two files, two folders, or two selections trade places in one reversible operation. Swap file · Swap folder · Swap selections
- Folder operations — flatten a folder into its parent, move one somewhere else, create a folder and its notes from a template, reorder folders and renumber them, or rename one and keep its folder note in step. Flatten folder · Move folder to · Create folder with notes · Reorder folders · Rename folder
- Smart cut & paste — mark a selection or a whole heading, then drop it at an exact cursor position in any note, including the one you took it from. Smart cut and paste
- Titles, links and frontmatter — relative links are rewritten so they keep resolving, invalid
title characters are cleaned up (or mapped by a template of your own) instead of refused, a title
containing
/can become a real path, and merged or split content can be wrapped in a template. Relative links · Invalid titles · Treat title as path · Templates - Headings — reorder a note's sections, or rename a heading and have its backlinks follow. Reorder headings · Rename heading
- Include / exclude paths — two independent filters: what the plugin may touch, and where its commands are offered at all — the second one narrowable per command category, so a folder can lose its merges and keep everything else. Block commands on excluded paths
- UI — every dialog can be minimized, and every one of them can be pointed at a different target without cancelling the operation; operations report what they are doing; and the settings tab is a short list of pages rather than one long scroll. Minimizing dialogs · Operation notices · Change target · Finding a setting
The plugin is available in the official Community Plugins repository.
To install the latest beta release of this plugin (regardless if it is available in the official Community Plugins repository or not), follow these steps:
- Ensure you have the BRAT plugin installed and enabled.
- Click Install via BRAT.
- An Obsidian pop-up window should appear. In the window, click the
Add pluginbutton once and wait a few seconds for the plugin to install.
By default, debug messages for this plugin are hidden.
To show them, run the following command:
window.DEBUG.enable('advanced-note-composer');For more details, refer to the documentation.
All notable changes to this project will be documented in the CHANGELOG.
Contributions are welcome — see CONTRIBUTING to get set up.










