Kazumi Kaizuka237 downloadsMove, reorganize, and locally edit heading sections and list subtrees.
Reorganize heading sections and list subtrees in an Obsidian note without losing sight of the surrounding structure.
Unified Outliner is an Obsidian plugin for structural editing inside a single Markdown note. It lets you move, re-level, inspect, and focus on heading sections and list subtrees through the editor, a dedicated Outline Tree View, and a Partial Edit Pane for editing a focused block.
Current version: see Releases for the latest version and changelog.
Minimum Obsidian version: 1.8.7
Scope: one note at a time. Unified Outliner never moves content between notes.
Obsidian's built-in Outline is excellent for navigating headings. List-focused outliner plugins make it easier to work with individual list items. Unified Outliner is designed for the point where both approaches are needed in the same note: reorganizing meaningful heading sections and nested list structures as visible, safe units.
| Capability | Obsidian built-in Outline | List-focused outliner plugins | Unified Outliner |
|---|---|---|---|
| Navigate heading structure | Yes | Varies | Yes, with synchronized tree selection |
| Move a whole heading section with its body and child sections | No | Not the primary focus | Yes |
| Move or reparent a nested list subtree | No | Often supported | Yes |
| Display headings and list items together in one structural tree | No | Varies | Yes, optional list display |
| Edit one selected section or list subtree in a focused pane | No | Varies | Yes, with explicit Apply and conflict protection |
| Preserve view folding per file | No | Varies | Yes, synchronized across open Outline Tree Views |
Unified Outliner does not try to replace search, task managers, Dataview-style aggregation, or AI writing tools. Its purpose is dependable structural editing of Markdown notes.
You can also open the Unified Outliner Community Plugins page in a browser.
Use BRAT when you want to test beta releases or recent development builds.
https://github.com/kazdonkai/unified-outliner and confirm the installation.BRAT checks the repository for updates, so use it only when you are comfortable testing changes before a normal catalog release.
To install a specific release manually, download main.js, manifest.json, and styles.css from GitHub Releases.
In your vault, create this folder if it does not already exist:
<your-vault>/.obsidian/plugins/unified-outliner/
Copy all three downloaded files into that folder.
Open Obsidian and go to Settings → Community plugins, then enable Unified Outliner.
Reload Obsidian if the plugin does not appear immediately.
Community Plugins and BRAT manage their own updates. For a direct-download installation, replace the same three files in <your-vault>/.obsidian/plugins/unified-outliner/, then reload Obsidian. Keep a backup of your vault as part of your normal update routine.

The screenshot uses Test/Unified Outliner Test.md in the Method test vault. It shows the kind of heading and nested-list structure that Unified Outliner is designed to reorganize.
Enable Show list items in Outline Tree View in the plugin settings when you want list items to appear alongside headings.

The Outline Tree View shows headings and, when enabled, list items beside the source note. Selecting a node locates its matching text, while the current editor position is reflected in the tree.

Right-click a selected node to choose a structural action. The menu exposes block movement, indentation, node-only heading actions, and focused editing from the same place.

The Partial Edit Pane keeps the selected section or list subtree visible while preserving the surrounding outline for orientation.

Apply writes back only after the pane verifies that its original source range has not changed. This protects the note from an accidental overwrite during a concurrent edit.
| Task | Video |
|---|---|
| Open the Outline Tree View | Watch the 7-second MP4 |
| Collapse and expand a tree node | Watch the 20-second MP4 |
| Follow a selected item in the tree | Watch the 21-second MP4 |
| Move a list subtree | Watch the 14-second MP4 |
| Edit a selected subtree in the Partial Edit Pane | Watch the 49-second MP4 |
Place the cursor on a heading or list item, then use the Command Palette or assign hotkeys in Settings → Hotkeys.
| Command | What it does |
|---|---|
| Move block up / down | Moves the minimal safe unit at the cursor — a heading section, a list subtree, a plain paragraph, or a whole callout, blockquote, fenced code block, or table when the cursor is inside one — before or after its sibling. |
| Move section up / down | Moves the whole enclosing heading section (heading, body, and any child sections), regardless of where the cursor is inside it. |
| Indent block | Reparents a list subtree, or safely lowers a heading section's level when the structure allows it. |
| Outdent block | Promotes a list subtree, or safely raises a heading section's level when the structure allows it. |
| Delete block | Deletes the current heading section or list subtree. |
| Insert sibling after current block | Inserts a new, empty heading section or list item after the current one. |
| Insert child list item | Inserts a new, empty list item as a child of the current one. |
The same actions are available from a node's context menu in Outline Tree View. Unavailable operations make no change. Enable Show no-op notices in the plugin settings to see the reason. A block that Move block / Move section just moved is briefly flash-highlighted in the tree, and, if enabled, a short notice names what moved.
The right-sidebar tree is a working view, not only a navigator.
Use Open partial edit pane for current section from the Command Palette, or choose the corresponding action from an Outline Tree View context menu.
The Partial Edit Pane opens the selected section or list subtree in a dedicated editor. Make your changes, then select Apply to write them back to the source note. If the source area changed after the pane opened, the pane protects the note by refusing to apply conflicting content. Reload the target and review the change instead of overwriting it.
An ancestor breadcrumb and a Subtree Navigator let you move up to a parent block or into a child block without leaving the pane. The pane can also be popped out into its own window from a node's context menu, and it asks for confirmation before navigating away from unsaved changes.
The commands Move heading label up/down and Indent/Outdent heading level change only the current heading line. They deliberately leave that heading's body and child sections where they are. Use them only when that is exactly the structure you intend; for ordinary reorganization, prefer the block commands.
Open Settings → Community plugins → Unified Outliner to configure:
1.: normalizes ordered-list markers after structural edits.Settings are organized into two tabs, General and Extended blocks (the latter covers callout/blockquote/fenced-code/table display in the Outline Tree).
Install the Style Settings community plugin to customize the Outline Tree View's appearance beyond the toggles above, without editing CSS by hand. Under Settings → Style Settings → Outline Tree View – Appearance you can adjust, separately for light and dark mode:
Structural changes alter Markdown text. Keep normal vault backups and review an edit if your note uses unfamiliar or highly customized Markdown.
Pop-out windows, breadcrumb navigation, Outline Tree inline rename, and read-only Outline Tree display of callouts, blockquotes, fenced code blocks, and tables are now available (see above). The next development focus is extending that read-only display into full move/insert/delete support for those same block kinds, alongside continued safety validation of hoist-like editing.
See the concise roadmap for later directions and deliberate non-goals.
Bug reports and pull requests are welcome. Please include the smallest reproducible Markdown example, the command or tree action you used, the observed result, and the expected result. See CONTRIBUTING.md for the development workflow and required checks.
Do not include confidential or personal information in a report.
Large parts of this plugin's implementation were developed with the assistance of Claude (Anthropic), under the direction and review of the maintainer.
Unified Outliner is released under the MIT License. Copyright © 2026 Kazdon Kai.