Michael Naumov39k downloadsHandles renames and deletes for the whole vault in one place: updates links, moves attachment files and folders, and cleans up what a deletion leaves behind.
Obsidian updates the links pointing at a note when you rename it, and stops there. The images you pasted into that note stay behind under the old name. Deleting the note leaves them behind entirely, referenced by nothing, in a folder named after something that no longer exists.
This plugin takes over renaming and deleting for the whole vault: links follow the note, the files it owns travel with it, and what a deletion leaves behind is cleaned up on terms you choose.
It is the single owner of that behavior in a vault, and stands aside, saying why, while an older plugin that still carries its own copy is enabled. See Living with other plugins.
The documentation is a demo vault. Every feature has a note that explains what it does and why you would want it, with buttons that perform the rename or the deletion and then print the vault as a tree, so you see the effect rather than read a description of it.
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 Rename and Delete Handler: Open demo vault command.advanced-rename-and-delete-handler-demo-vault.zip from the Releases. It unzips into a single advanced-rename-and-delete-handler-demo-vault-<version> folder.demo-vault/ in this repository.src and href paths are rewritten, and a path left in another plugin's settings is named in a notice. 01 Renaming a noteExcalidraw drawing counts as an attachment, not a note, as does any ending or property: match you add. 04 What counts as a note| Plugin | Features | How Advanced Rename and Delete Handler differs |
|---|---|---|
Attachment Manager |
Per-note attachment folder; rename/delete; pasted-image naming; visibility; overrides core settings | Same lifecycle goal; arbitrary existing layouts; shared attachments; include/exclude paths |
Consistent Attachments |
Moves/copies attachments on note moves; shared-file choices; orphan/placement scans | Broader lifecycle scope: deletions too |
Delete Note and Attachments |
Unlisted; explicit note-plus-embeds deletion; shared-use confirmation | Broader trigger: ordinary note deletion too |
File Bundles (my plugin) |
Declared locked bundles; move, rename, duplicate and delete together | Alternative grouping: derives attachments from links and configured folders |
Media Archive |
Archives deleted/unused media; shared-use protection; two fixed folders | Different scope: each note's attachments and their lifecycle |
Move Files |
Command gathers linked files into a note-specific folder and updates links | Different trigger: follows renames automatically |
Note Folder Autorename |
Folder-note convention; folder follows note moves/renames | Different grouping: linked attachments rather than one companion folder |
Remove Empty Assets |
Periodic/startup/deletion cleanup of empty attachment folders | Broader cleanup: attachment files as well as folders |
Remove Empty Folders |
Explorer action removes empty folders one level per run | Broader sweep: whole vault, deepest first, in one command |
Strip Images |
Command removes image embeds and trashes unshared images; note stays | Different trigger: cleans attachments after deleting a note |
Unlink on Delete |
Turns incoming links into plain text when a file is deleted | Complementary cleanup: files left by a deletion rather than incoming links |
Last searched for similar plugins on 2026-10-26.
Plugins that used to handle renames and deletions themselves hand their settings over through this plugin's API, read them back, and can declare this plugin as a dependency. Any plugin can also move many files at once through it, with each linking note rewritten once and a promise that resolves when the links are final. Diagnostic consumers can subscribe to bulk start and end notifications, including failures, through contract 1.4.0. The types are in api.d.ts and the contract in api-contract.ts, both copyable as they are; Plugin API walks through them.
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-rename-and-delete-handler) 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 Rename and Delete Handler: 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.