Batch rename files locally with live preview, partial-success reporting, and a frameless desktop shell.
- What it does
- Features
- Screenshots
- Quick Start
- Install and Run
- Architecture
- Tech Stack
- Contributing
- License
BloomBatch is a local-first desktop app for batch renaming files. You drop in files, define a rename rule, preview the result before anything changes, and apply the rename from the same window.
The app is intentionally narrow:
- It renames files, not folders.
- It runs locally through Tauri and Rust.
- It does not require an account, sync service, or database.
- Drag and drop files onto the app window.
- Open files through the native file picker when you prefer that flow.
- Preview original and renamed filenames side by side before applying changes.
- Find and replace text across filenames.
- Add prefixes and suffixes.
- Add sequential numbering with configurable start value, padding, separator, and position.
- Convert names to lowercase, uppercase, or title case.
- Keep going when one rename fails, with per-file partial-success reporting.
- Use the frameless desktop shell with native minimize, maximize, and close controls.
| Overview | Preview | Success |
|---|---|---|
![]() |
![]() |
![]() |
npm ci
npm run tauri:devFor a frontend-only check in the browser:
npm run devFor a production build:
npm run build
npm run tauri:build- Node.js 20 or newer
- Rust stable toolchain
- Platform-specific WebView / system libraries listed in BUILD.md
npm ci
npm run tauri:devtauri:dev starts the Next.js frontend, launches the desktop window, and keeps both layers hot-reloaded while you work.
npm run build
npm run tauri:buildnpm run build creates the static frontend export in out/. npm run tauri:build packages that export with the Rust backend into native installers and app bundles for the current platform.
- Windows:
.msi - macOS:
.dmgand.app - Linux:
.AppImage,.deb, and.rpm
BloomBatch is a Tauri 2 desktop app with a small and direct split:
app/holds the Next.js app shell and metadata.components/bloom-batch/holds the desktop UI flow and rename experience.components/bloom-batch/rename.tscontains the pure rename rules and preview logic.lib/tauri-bridge.tswraps the Tauri IPC calls behind browser-safe helpers.src-tauri/src/commands.rsperforms the native file operations.
The frontend renders a preview first, then calls into Rust only when the user applies the rename. That keeps the UI responsive and keeps file access bounded to explicit user actions.
See docs/architecture.md for a fuller breakdown.
- Next.js 16
- React 19
- Tauri 2
- Rust 2021
- TypeScript 5.7
- Tailwind CSS 4
- shadcn/ui
- Radix UI
Read CONTRIBUTING.md before opening a pull request.
BloomBatch is distributed under the MIT License.



