Bulk File Renamer
Rename hundreds of files at once with rules you control — entirely offline.
Who it's for
Photographers, editors, and anyone with a folder of camera-named or otherwise messy files that need consistent, predictable names before archiving or delivery.
What it does
- Rule-based batch renaming — find & replace, add prefixes/suffixes, renumber with padding, insert dates, change case. Preview every result before committing.
- Safe by design — conflicts (two files landing on the same name) are detected before anything is applied, and the whole plan is shown for review.
- Works on real folders — point it at a directory of files, apply the rules, and download the renamed results. No upload, no waiting on a server.
How it works
Point the tool at a folder of files, build your renaming rules (find & replace, prefixes, numbering, dates, case), and preview the full before/after list. Apply, and download the renamed results.
| Platform | Result | Notes |
|---|---|---|
| Windows / Mac — Chrome, Edge, Brave | Full experience. Pick a folder, build a pattern, and Rename writes the new names straight back to your real files — no download, no copies. | Opened and visually confirmed in real, installed Google Chrome on this Mac (capability banner and both picker buttons render correctly; screenshot: `screenshots/phase3-chrome-empty-state.png`). The full interactive round trip — folder selection → pattern → live collision detection → confirm → real `FileSystemFileHandle.move()`/`createWritable()` calls → success report → independent re-read of the resulting file names and content — was run end-to-end via Playwright driving the real Chromium engine, real button clicks, and a real File System Access directory handle (via the Origin Private File System, substituted only for the native OS folder-picker dialog itself, which no browser-automation tool — Playwright, Puppeteer, or raw CDP — can script; this is a documented, general limitation, not specific to this tool. See the launch checklist and test scripts for the full method and the exact citations). A deliberately adversarial rotation case (file A renamed to B's name while B renamed to C's name while C renamed to A's name, simultaneously) was also run for real and completed with zero data loss, proving the rename engine's two-pass temporary-name strategy is correct even for chained/circular renames, not just simple cases. A 600-file folder was also renamed for real through this same engine in 132ms with zero errors. |
| Mac / Windows — Safari or Firefox | Degraded but fully working: pick a folder's files, build a pattern, see the same live collision-checked preview, and Rename downloads a `.zip` of renamed copies. A clear banner explains this the moment the page loads — before any file is touched. Original files are never modified. | Run completely end-to-end, for real, in Playwright's actual bundled WebKit (the same engine real Safari uses) and actual bundled Firefox, against a real on-disk test folder containing 14 genuinely varied files — including two that collide under a naive pattern, non-ASCII names (café, Japanese characters, an emoji), an apostrophe and an ampersand in filenames, a file with no extension, and a multi-dot filename. The naive pattern was confirmed blocked by the collision banner; a corrected pattern was then run, the resulting `.zip` was downloaded, unzipped with the system's real `unzip`, and every extracted file's bytes were compared to its original — all 14 were byte-for-byte identical under their new names. Separately, the empty state and capability banner were also visually confirmed in the real, installed Safari.app and Firefox.app on this Mac (screenshots: `screenshots/phase3-safari-empty-state.png`, `screenshots/phase3-firefox-empty-state.png`). |
| iOS (Safari, Chrome, or any iOS browser) | Expected: same degraded/download flow as Mac Safari, since every iOS browser runs on the same underlying engine, and iOS Safari does not expose the File System Access API either. | Not verified — no iOS device was available to test on. This is an inference from the code and from Apple's WebKit requirement for iOS browsers, not a click-through confirmation. Flagged as an open item. |
| Android — Chrome | Full experience — works, same as desktop Chrome. | Tested on a real Android device in Chrome. |
| Keyboard / focus | Tab moves focus visibly between the folder-picker buttons and all form controls; every interactive element is a real ` | Checked programmatically (Playwright keyboard-driven Tab traversal of the empty state, confirming focus actually lands on `pickFolderBtn` and `pickFallbackBtn` in order) — not a manual click-through, but a genuine automated check of real keyboard navigation. |
| Small screens / touch | Not specifically checked at a mobile viewport in this pass. | Not verified. The layout uses simple flex-wrap and a horizontally-scrollable table container, which should hold up reasonably at narrow widths, but this is an inference, not a click-through or emulated-viewport confirmation. Flagged as an open item. |
Limits (stated plainly)
- Runs in your browser — it works on the files you explicitly give it, not on folders in the background.
- Free-tier limits apply (see the free version); the paid tool removes them.
Privacy proof
Runs entirely in your browser. No server, no account, no analytics — the files you work on are processed locally in memory and never leave your computer.
Try it free in your browser → Open the free version of this tool — runs entirely in your browser, nothing uploaded.
- ✓ Runs 100% offline in your browser
- ✓ Single HTML file — no install, no dependencies
- ✓ No account, no telemetry, no tracking
- ✓ Buy once — yours forever
After checkout you get an instant download link. Open the file in any modern browser and it just works.
Pairs well with
✓ runs entirely on your device — Wi-Fi off? Still works.
accounts sign-ups cloud uploads none
✓ your files stay where you put them
Prefer to try before buying? The browser versions of every tool run free at tools.untracked.tools — no upload, ever.