README file from
GithubConsistent Attachments and Links
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!
Demo vault
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:
- Running the
Consistent Attachments and Links: Open demo vault command. - Downloading
consistent-attachments-and-links-demo-vault.zipfrom the Releases. It unzips into a singleconsistent-attachments-and-links-demo-vault-<version>folder. - Browsing its source in
demo-vault/in this repository.
What it does
- Check vault consistency reports, changing nothing, bad links, embeds and frontmatter links, HTML tags Obsidian does not know or sanitizes away (with Advanced Metadata Cache's
HTMLmodule 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 consistency - Fix broken links offers, with its evidence, the file each broken link most likely meant, and repairs the link's path on your click. 09 Fix broken links
- Fix incompatible paths repairs the names and paths that Windows, Android, Linux, macOS or iOS would reject, keeping the original name and every link. 08 Keep paths valid on every platform
- Undo a bulk operation reverts one run of either fix command, when the vault is in a
gitrepository and Commit bulk operations togitis on: each run is committed on its own asOP<n>, so onegit revertundoes it. 05 Settings - Every command, and where the ones that left went. 07 Commands
- Settings, including which platforms the path repair enforces. 05 Settings
- Obsidian's own settings matter too — link format, attachment location — and the vault explains which ones to change and why. 06 Recommended Obsidian settings
Where the old features went
Link 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.
See also
| 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.
Installation
The plugin is available in the official Community Plugins repository.
Beta versions
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.
Debugging
By default, debug messages for this plugin (id: consistent-attachments-and-links) are hidden.
If you need to enable them refer to the documentation.
Changelog
All notable changes to this project will be documented in the CHANGELOG.
Contributing
Contributions are welcome — see CONTRIBUTING to get set up.
Support
Filing an issue (for AI agents and humans)
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.
License
© dy-sh
Maintainer: Michael Naumov