Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Bulk Renamer & Organizer

pablonpablon93 downloads

Smart filename normalization with preview, collision detection, and one-click undo.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates5

Tame your Obsidian vault. One modal. Zero broken links.

Smart, safe, and ridiculously powerful filename normalization for Obsidian. Preview every change before it happens, catch collisions before they bite you, and undo with one click — because we all make mistakes at 2 AM.

Install from Community Plugins · Manual Install · Configuration


✨ What Makes This Different

Most rename tools go in blind. This one doesn't.

Feature What It Does
🛡️ Preview everything See every single change in a color-coded table before touching a file
💥 Collision detection Catches when two files would normalize to the same name — and blocks execution
↩️ One-click undo Messed up? Undo the entire batch. Rollback persists across vault reloads
🔍 Regex find & replace Advanced batch renaming with capture groups, live preview, and all the same safety nets
📅 Smart date prefixes Automatically organizes files by date — trailing dates move to front, no-date files get their creation time
🍎 macOS case safety Case-only renames go through a two-step dance so APFS doesn't eat your files
🔗 Link-safe Uses fileManager.renameFile() — every wikilink, markdown link, and canvas reference stays intact
⏱️ Rate limited Built-in throttling prevents Obsidian's indexer from choking on bulk operations

🎬 Before / After

Before After What Happened
Angry Ötter & Friends.md 2026-04-06-angry-otter-friends.md Lowercase, accents stripped, date added
Infinite Coffee Meeting_2025-10-27.md 2025-10-27-infinite-coffee-meeting.md Trailing date moved to prefix
TODO_World_Domination.md 2026-04-06-todo-world-domination.md Underscores → dashes, date added
my.super.secret.plan.md 2026-04-06-my-super-secret-plan.md Dots → dashes, date added
2025-08-14-Operation Pengüin.md 2025-08-14-operation-penguin.md Lowercase, accents removed

Files with trailing dates use that date as prefix. Files without any date use their creation time.


🚀 Quick Start

  1. Open the command palette (Cmd/Ctrl+P)
  2. Search for Bulk rename: Open preview
  3. Review the table — green means safe to rename
  4. Hit Execute → confirm → watch it go
  5. Need to undo? Cmd/Ctrl+P → Bulk rename: Undo last rename

That's it. Your vault is now organized.


📦 Installation

Community Plugins (Recommended)

  1. Settings → Community plugins → Browse
  2. Search for "Bulk Renamer & Organizer"
  3. Install → Enable

Manual Installation

  1. Grab main.js, manifest.json, and styles.css from the latest release
  2. Drop them into <Vault>/.obsidian/plugins/bulk-renamer/
  3. Reload Obsidian and enable in Settings → Community plugins

🔧 Configuration

Everything lives in Settings → Community plugins → Bulk Renamer & Organizer.

Normalization Pipeline

Each step is independently toggleable. They always run in this order:

Setting Default What It Does
Lowercase ✅ README.md → readme.md
Strip Accents ✅ café.md → cafe.md
Spaces to Dashes ✅ my note.md → my-note.md
Dots to Dashes ✅ red.es.md → red-es.md
Strip Special Chars ✅ Keeps only a-z, 0-9, -
Collapse Dashes ✅ a---b.md → a-b.md

Date Prefix

Mode Behavior
Trailing or CTime (default) Trailing date → prefix. No date → creation time
Trailing Only Only adds prefix if a trailing date exists
None Never adds a date prefix

Timestamp Format

Format Example When to Use
YYYY-MM-DD (default) 2025-01-15 Clean, readable, ISO 8601
YYYYMMDD 20250115 Compact sorting
YYMMDD 250115 Short and sweet
YYYYMMDD-HHMM 20250115-1430 Needs hour precision
YYMMDD-HHMMSS 250115-143022 Full timestamp

Regex Find & Replace

The Find and replace tab gives you full regex power with live preview:

Pattern Replacement Effect
^my- our- my-note.md → our-note.md
(\d{4})-(\d{2})-(\d{2}) $1$2$3 2025-01-15-note.md → 20250115-note.md
_ - (with g flag) All underscores → dashes

Supports capture groups ($1, $2), global (g), and case-insensitive (i) flags. Same safety features apply: collision detection, undo, rate limiting, confirmation dialog.

Exclusions

What Default Why
Directories .obsidian/, attachments/ Config & binary files
File patterns AGENTS.md AI context files
Templates dir templates/ Normalized but no date prefix

All three are fully configurable.

Advanced

Setting Default What It Does
Rate Limit Delay 100ms Pause between batches
Rate Limit Batch 10 Files per batch before pausing

Crank these up if your vault is huge. Leave them alone if it isn't.


🆚 How It Compares

Here's how Bulk Renamer & Organizer stacks up against other popular rename plugins in the Obsidian community:

Feature Bulk Renamer & Organizer Bulk Rename Vault File Renamer Smart Rename
Preview before rename ✅ Table with reasons ❌ ❌ ❌
Collision detection ✅ Blocks execution ❌ ❌ ❌
Undo / Rollback ✅ One-click, persistent ❌ ❌ ❌
Regex find & replace ✅ With live preview ✅ Text-based ❌ ❌
Smart date handling ✅ Trailing + ctime ❌ ❌ ❌
Configurable pipeline ✅ 6 toggles + 5 date formats ❌ ❌ ❌
macOS case safety ✅ Two-step rename ❌ ❌ ❌
Rate limiting ✅ Configurable ❌ ❌ ❌
Template dir awareness ✅ No date prefix ❌ ❌ ❌
Zero external deps ✅ Pure TypeScript ❌ Uses xregexp ✅ ✅

Each plugin serves a different purpose. Smart Rename excels at single-note renames with link preservation. Vault File Renamer focuses on GitHub-style standardization. Bulk Rename offers regex-based renaming. This plugin combines all of those approaches with safety features on top.


🛡️ Safety Features

  • Dry-run preview — every change shown before execution
  • Collision detection — blocks if files would normalize to the same name
  • Rollback/undo — one-click restore, persists across reloads
  • Rate limiting — prevents Obsidian's indexer from choking
  • macOS case safety — two-step rename via .bulk-rename-tmp
  • Confirmation dialog — explicit approval before any file is touched
  • Error resilience — one failure doesn't stop the whole batch

📋 What Gets Renamed

Included Excluded
All .md files in subdirectories Root-level files
Files in templates/ (no date prefix) .obsidian/ directory
attachments/ directory
AGENTS.md anywhere
Non-.md files

⚠️ Known Limitations

  • Directory names are not renamed — only filenames
  • Canvas display labels may need a vault reload to update (Obsidian limitation), but underlying links are always correct

🤝 Contributing

We'd love your help! Check out CONTRIBUTING.md for setup instructions, architecture overview, testing guidelines, and how to submit a PR.

Quick start for devs:

npm install
npm run dev          # watch mode
npm run build        # production build
npm test             # 190 tests
npm run lint         # eslint (obsidianmd rules)

📄 License

GNU GPLv3


🙏 Credits

Built from the ground up, inspired by the need for a safer, more predictable bulk rename experience in Obsidian.

84%
HealthExcellent
ReviewCaution
About
Normalize and batch-rename files across your vault while preserving all wikilinks, markdown links, and canvas references. Preview every change in a color-coded table, catch collisions before execution, run regex find-and-replace, add smart date prefixes, and undo entire batches with one click.
FilesLinksDates
Details
Current version
1.0.4
Last updated
2 months ago
Created
2 months ago
Updates
5 releases
Downloads
93
Compatible with
Obsidian 1.4.0+
Platforms
Desktop only
License
GPL-3.0
Report bugRequest featureReport plugin
Author
pablonpablon
github.com/pablon
GitHubpablon
  1. Community
  2. Plugins
  3. Files
  4. Bulk Renamer & Organizer

Related plugins

Advanced URI

Control everything with URI.

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Note Refactor

Extract note content into new notes and split notes.

Vault Changelog

Maintain a changelog of recently edited notes.

Find orphaned files and broken links

Find files that are not linked anywhere and would otherwise be lost in your vault. In other words: files with no backlinks.

Janitor

Perform cleanup tasks on your vault.

Notebook Navigator

A better file browser and calendar inspired by Apple Notes, Bear, Evernote and Day One.

Local REST API & MCP Server

Unlock your automation needs by interacting with your notes over a secure REST API.

QuickAdd

Quickly add new notes or content to your vault.

Recent Files

Display a list of recently opened files.