No description
Find a file
JBot4400 19a71dc815
chore(deps): update typescript-eslint monorepo to v8.65.0 (#249)
Co-authored-by: Renovate Bot <renovate@whitesourcesoftware.com>
2026-07-21 20:03:55 -06:00
.github chore(deps): update actions/checkout action to v7.0.1 (#258) 2026-07-20 11:01:10 -06:00
.husky chore(lint): adopt eslint-plugin-obsidianmd and fix findings (#214) 2026-05-13 14:53:34 -06:00
src chore(lint): adopt eslint-plugin-obsidianmd and fix findings (#214) 2026-05-13 14:53:34 -06:00
.gitignore Standardize .gitignore and .prettierignore to match obskit strategy 2026-02-23 16:41:57 -07:00
.justfile fix(release): use conventional commit format for release commits (#228) 2026-06-03 12:40:18 -07:00
.npmrc Updated to meet submission requirements. 2025-08-02 08:30:54 -06:00
.prettierignore Standardize .gitignore and .prettierignore to match obskit strategy 2026-02-23 16:41:57 -07:00
.prettierrc.json Initial plugin structure. 2025-07-17 09:06:26 -04:00
CLAUDE.md chore: use check recipe in preflight instead of inlined commands (#176) 2026-03-10 11:50:01 -06:00
esbuild.config.mjs chore(lint): adopt eslint-plugin-obsidianmd and fix findings (#214) 2026-05-13 14:53:34 -06:00
eslint.config.mjs chore(lint): adopt eslint-plugin-obsidianmd and fix findings (#214) 2026-05-13 14:53:34 -06:00
LICENSE chore(lint): adopt eslint-plugin-obsidianmd and fix findings (#214) 2026-05-13 14:53:34 -06:00
manifest.json obsidian-folderize-0.5.1 2026-05-13 14:54:21 -06:00
package-lock.json chore(deps): update typescript-eslint monorepo to v8.65.0 (#249) 2026-07-21 20:03:55 -06:00
package.json chore(deps): update typescript-eslint monorepo to v8.65.0 (#249) 2026-07-21 20:03:55 -06:00
README.md Initial README. 2025-07-19 14:39:23 -06:00
tsconfig.json chore(deps): update dependency typescript to v6 (#185) 2026-05-08 17:27:37 -06:00
versions.json obsidian-folderize-0.5.1 2026-05-13 14:54:21 -06:00

Folderize

An Obsidian plugin that automatically organizes your attachments into a structured folder hierarchy based on file content checksums.

Purpose

Managing attachments in Obsidian can become unwieldy as your vault grows. The Folderize plugin solves this by organizing your attachments into a predictable, content-based folder structure. Instead of having all attachments in a single folder or manually organizing them, Folderize creates a hierarchical directory structure based on each file's SHA-256 checksum.

This approach ensures:

  • Consistent organization: Files are always placed in the same location based on their content
  • Deduplication: Identical files will be placed in the same folder path
  • Scalability: The folder structure distributes files evenly, preventing any single directory from becoming too large
  • Automation: Set it and forget it - new attachments can be organized automatically

How It Works

Folderize calculates a SHA-256 checksum for each attachment and uses the first few bytes of the hash to create a nested folder structure. For example, with the default depth of 4, a file might be organized into:

Attachments/
├── a1/
│   ├── b2/
│   │   ├── c3/
│   │   │   ├── d4/
│   │   │   │   └── my-image.png

Configuration

The plugin provides several configuration options in Settings > Plugin Options > Folderize:

Basic Settings

  • Attachment path: The root folder where attachments are stored (default: "Attachments")
  • Auto-organize: Automatically organize new attachments as they're added to your vault
  • Remove empty folders: Clean up empty directories after reorganizing files

Advanced Settings

  • Path depth: Number of directory levels to create (1-8, default: 4)
  • Log level: Adjust console logging verbosity for debugging

Usage

Manual Organization

Use the command palette (Cmd/Ctrl + P) and search for "Organize all attachments" to manually organize all files in your attachment folder.

Automatic Organization

Enable "Auto-organize" in the settings to have new attachments automatically organized when added to your vault.

Installation

Installation is supported using BRAT.