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:
Advanced Note Composer: Open demo vault command.advanced-note-composer-demo-vault.zip from the Releases. It unzips into a single advanced-note-composer-demo-vault-<version> folder.demo-vault/ in this repository.Each row is one family of commands; its link opens the demo-vault section that walks through every one of them.
| Capability | In one line |
|---|---|
| Merge | A note into another, a folder into a folder, several notes at once, or a folder tree into one file, with frontmatter reconciled and attachments carried along |
| Extract | A selection, a heading, the block between horizontal rules, or everything before or after the cursor into its own note, leaving a link, an embed or nothing |
| Split | A note by heading level, or its whole heading hierarchy into a folder tree, optionally auto-numbered |
| Headings | Reorder, re-nest and number a note's sections, or rename a heading and have its links follow |
| Swap | Two files, two folders or two selections trade places in one reversible operation |
| Folder operations | Flatten, move, create from a template, reorder and renumber, or rename a folder with its folder note |
| Smart cut & paste | Mark a selection or a heading, then drop it at an exact cursor position in any note |
| Include / exclude paths | Per command category, what the plugin may touch and where its commands are offered |
| Titles, links and frontmatter | Links keep resolving, invalid title characters are cleaned up, and content can be wrapped in a template |
| UI | Minimizable dialogs, a changeable target, operation notices, and command menu placement |
| Select | Commands that only set the selection, for the phone, where selecting by hand fails |
On desktop, for a vault kept in a git repository, the opt-in Should commit bulk operations setting records each folder-wide command and each recursive split as its own git commit, so git revert undoes it, and the Undo a bulk operation... command does that for you. See Settings.
Merges also preserve keys from Permanent Links when it is enabled: see Merge file.
| Plugin | Features | How Advanced Note Composer differs |
|---|---|---|
Advanced Merger |
Merges a folder into one export document | Overlaps on folder merging; subfolders become headings; result stays a vault note |
Index Note Splitter |
Linked section notes; source becomes an index | Alternative extraction output: link, embed or nothing in place of each part |
Merge Notes |
Merges selected notes | Broader merge scope: folders, frontmatter strategies and attachments |
Note Refactor |
Extracts selections; splits notes | Broader editing scope: also merges, swaps and moves notes, folders and selections |
Note Refactor Next |
Maintained Note Refactor continuation; extraction and splitting |
Broader editing scope: also merges, swaps and moves |
Note Refactor Plus |
Named extraction profiles; per-profile templates, folders, names and link styles | Overlaps on extraction; one extraction configuration; also merges, swaps and moves |
Note Splitter |
Splits notes at a delimiter | Alternative splitting: headings; optional recursive folder tree |
Notes Merger |
Merges notes listed in an index | Alternative merge inputs: notes, folders and selections |
Power Merge Notes |
Heading-wise merge; frontmatter and Dataview; duplicate cleanup |
Overlaps on merging; also extracts, splits and swaps |
Text Transporter |
Copies, moves and links text, lines and blocks | Overlaps on text moves; also handles whole notes, headings and folders |
Last searched for similar plugins on 2026-10-26.
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:
Add plugin button once and wait a few seconds for the plugin to install.By default, debug messages for this plugin (id: advanced-note-composer) are hidden.
If you need to enable them 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.
Open issues through the issue forms, not as blank issues.
To report a bug from inside Obsidian, run the Advanced Note Composer: Report a bug command. It opens the bug form with the plugin version, the Obsidian version and your operating system already filled in.
Filing from the CLI or the API (gh issue create --body, or an AI agent filing for you) skips the form, and gh issue create --template cannot load an issue form. In that case, open the matching form in .github/ISSUE_TEMPLATE/, copy every field as a ### <label> heading in the form's order, and fill in each one. Always state the plugin version, the Obsidian version and your operating system.