Poro26 downloadsSort attachments directly beneath related notes using filename prefixes or note links, without moving files.
Note Attachment Sorter groups attachments immediately beneath the related Markdown note in Obsidian's File Explorer. It changes display order only: it does not rename, move, copy, or delete files.
Status: Public beta ·
0.2.0· Desktop-only · Developed by Poro. The plugin currently patches an undocumented File Explorer API. Compatibility with future Obsidian releases is not guaranteed. Use a test vault and back up important vaults before trying it.
Files actually stored together in one folder:
Notes/
Household budget.md
@Household budget.png
@Household budget-01.png
Source data.pdf
Another note.md
When Household budget.md links to Source data.pdf, the File Explorer shows:
Household budget
@Household budget.png
@Household budget-01.png
Source data.pdf
Another note
The indentation above is illustrative: the files remain siblings in the same folder, not physical children of the note.
@).-01, -02, -10).sortspec.md, or Bookmarks required.The note Household budget.md matches @Household budget.png and @Household budget-01.png when the attachment prefix is @.
For automatic attachment renaming, you may separately install Paste Image Rename and use its filename pattern @{{fileName}}. This plugin itself does not rename files; Paste Image Rename is optional.
In Household budget.md:
[[Source data.pdf]]
If Source data.pdf is in the same folder, the plugin can group it beneath the note even though the filename is different. Wiki links and embeds that Obsidian resolves are supported through its metadata cache.
main.js and manifest.json from a GitHub Release for the same version. If there is no release yet, see Build from source below..obsidian/plugins/note-attachment-sorter/.Requirements: Node.js, npm, and a desktop Obsidian installation.
npm install
npm run build
Then copy the generated main.js along with manifest.json to .obsidian/plugins/note-attachment-sorter/ in your vault. For development, use npm run dev (watch mode).
You do not need Git installed to build: you may download the source ZIP and open its folder in VS Code.
| Setting | Default | Purpose |
|---|---|---|
| Display language | English | English or Korean interface |
| Enable automatic sorting | On | Toggle grouping in the File Explorer |
| Attachment prefix | @ |
Filename prefix used for matching |
The command palette includes Refresh attachment sorting.
getSortedFolderItems() method and calls requestSort(). This may change without notice..xlsx, might not be indexed or shown by Obsidian without additional support. The sorter does not add support for file types.Source: src/main.ts. Build command: npm run build.
For version 0.2.0, GitHub Release tag must be 0.2.0 (without v); upload main.js and manifest.json as separate release assets. See Publishing guide.
GitHub source availability is not the same as being approved for Obsidian's Community Plugin directory.
This plugin processes file paths and Obsidian metadata locally. Its source contains no telemetry, external requests, or account integration.
MIT License · © 2026 Poro. Third-party dependency: monkey-around, ISC license.
For questions, feedback, or bug reports, you can contact Poro at [email protected].
Please include the Obsidian version, OS, steps to reproduce, relevant filenames (redact private information), and the developer console error if available.