Move note attachments and update links automatically.
Obsidian resolves links with a clever search that only Obsidian has, so a vault can be perfectly navigable inside it and full of dead links the moment you open a note anywhere else — in another editor, published to GitHub, or exported as a folder.
This plugin makes that visible: it reports every link whose written path does not lead to its target, repairs a broken link's path when you pick the file it meant, and repairs names a platform you sync to would reject. It never rewrites a link into a style, moves an attachment or cleans up folders: where those matter, it reports and leaves the change to you.
[!IMPORTANT]
This plugin requires Advanced Rename and Delete Handler, which handles renames and deletions for the whole vault since 4.0.0. This plugin installs it in one click, which changes nothing on its own, and offers to hand your old settings across.
[!WARNING]
Fix incompatible paths renames files and folders across the whole vault, so it is crucial that you back up your vault before running it!
The documentation is a demo vault. Every feature has a note that explains what it does and why you would want it, with example notes to run it against.
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:
Consistent Attachments and Links: Open demo vault command.consistent-attachments-and-links-demo-vault.zip from the Releases. It unzips into a single consistent-attachments-and-links-demo-vault-<version> folder.demo-vault/ in this repository.HTML module on), attachments outside their note's attachment folder, and names a platform you sync to would reject. Each section lists its first 1,000 entries and counts the rest, so the report stays small enough to open. 03 Check vault consistencygit repository and Commit bulk operations to git is on: each run is committed on its own as OP<n>, so one git revert undoes it. 05 SettingsLink conversion, link-path rewriting, attachment collecting, rename and delete handling, Delete empty folders, Reorganize vault and the Attachment Subfolder setting moved to other plugins or were retired: Where the old features went maps each one to the plugin that owns it now.
| Plugin | Features | How Consistent Attachments and Links differs |
|---|---|---|
Attachment Audit |
Unused, duplicate, oversized, misnamed and misplaced attachment cleanup | Narrower attachment audit: reports placement against configured folders; also link/name checks |
Broken Links |
Broken target, heading and block browser; folder/file/link views | Broader checks: file names and path validity; link repair |
File name length limit |
Live naming warnings; report includes case collisions; no renaming | Broader audit and repair: renames invalid files; checks links |
Find orphaned files and broken links |
Reports orphaned/empty files, folders and uncreated notes; delete/archive | Complementary audit: validates written paths against their targets |
Link Doctor |
Broken-link dashboard; Obsidian name matching; empty notes; no edits | Broader path checks: reports non-resolving written paths; repairs links |
Safe Filename Linter |
Invalid/troublesome filename character lint | Broader checks: per-platform name/path lengths and links |
Sync-safe file names |
Automatic cross-device character replacement on create/rename | Broader repair: on command; lengths, reserved names, Unicode form; original names retained |
Vault Link Check |
Typo/alias suggestions; separates planned notes from broken links | Alternative repair evidence: git history, renamed folders and aliases; click to apply |
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: consistent-attachments-and-links) 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 Consistent Attachments and Links: 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.
© dy-sh
Maintainer: Michael Naumov