Skip to content

Releases: TheHolyOneZ/ZRename

Release list

ZRename V1.0.0

Choose a tag to compare

@TheHolyOneZ TheHolyOneZ released this 04 Sep 20:38
ZRename application icon: an amber letter Z ending in an arrowhead, over rows of file names

ZRename

Rename ten thousand files without fear

A bulk file renamer for Linux and Windows. Drop a folder in, stack up rules,
watch a live before/after table with collisions flagged in red, and press Apply.
If it was wrong, press Undo — and every file goes back, including after a
reboot
.

Licence GPL-3.0
Linux and Windows
Rust and Tauri
284 tests

zsync.eu/zrename — homepage and downloads


The ZRename window: a stack of four rules on the left, and a preview table showing IMG_4821.JPG becoming 2026-08-14_01.jpg with character-level diff highlighting, above an Apply button reading Apply 23 renames

Free · open source · no telemetry · no account · works offline


Preview before you commit
A live table with a character-level diff, so you see the exact result of every rule before a single file moves.
Undo that actually works
Every batch is journalled to disk before the first rename. Undo a batch you ran yesterday.
Rules that stack
Eleven rule types, reorderable and individually toggleable, like an image editor's adjustment layers.
Names from metadata
EXIF, ID3, video, PDF and hashes turn a string tool into a librarian.

Contents


Why another bulk rename tool

Renaming a pile of files is a chore that hits everyone — phone photo dumps,
downloaded series, exported invoices, asset folders, scanned documents — and the
existing tools are genuinely bad at it.

Tool What it gets wrong
Advanced Renamer Windows only · cluttered interface · closed source
Bulk Rename Utility Windows only · legendarily overwhelming, fourteen panels at once
PowerToys PowerRename Windows only · one regex rule · no metadata · no undo journal
krename KDE-bound · dated · weak preview · no journalled undo
Thunar bulk rename Three rule types · no stacking · no presets
rename / shell loops No preview · no undo · one typo from wrecking a folder
ZRename Linux and Windows · eleven stacking rules · metadata tokens · undo that survives a reboot

Two things stand out on that list.

Almost none of them have a real undo — and when a rule was wrong on 4,000
files, undo is the only feature that matters.

And none of them handle the case-insensitive filesystem trap. Renaming
photo.JPGphoto.jpg on Windows silently fails or clobbers the file unless
the rename goes through a temporary name first. ZRename detects that case and
does the two-phase dance for you, without asking and without mentioning it.


How it keeps your files safe

Correctness is the entire product, so the engine is built in that order.

files × rules ──▶  plan  ──▶  validate  ──▶  journal  ──▶  execute
                 (a pure     (collisions,   (written     (two-phase
                  function)   bad names,     and flushed   where a cycle
                              limits)        first)        needs it)

1 · Plan first, touch nothing

files × rules → plan is a pure function. Nothing on disk is touched while you
type in a rule, so the preview can never half-apply something.

2 · Validate against the real filesystem

Collisions — case-folded when the filesystem ignores case — characters the
target rejects, Windows device names like CON.txt, name length in the right
unit (255 bytes on ext4 versus 255 UTF-16 units on NTFS), and the
260-character MAX_PATH limit.

3 · Journal, then execute

The undo journal is written and flushed to disk before the first rename, so a
crash mid-batch still leaves a complete record. Swap cycles (a→b, b→a) and
case-only changes go through a temporary name; everything else renames directly.

4 · Undo verifies before it moves

Each file's size and modification time are checked against the journal first. A
file you edited since the rename is reported, never overwritten.

Important

Overwrite is never a default. The conflict policy starts at stop and
report it
, and even when you choose overwriting it refuses to settle two
selected files that want the same name — one of them would simply be lost.

Tip

Windows filesystem rules are stored as data, not #[cfg] blocks. An
FsProfile value describes case folding, illegal characters, reserved device
names and length limits, so the NTFS and FAT32 rule sets are exercised by unit
tests on any machine — and re-run against real NTFS on a Windows CI runner.


Screenshots

Collisions block Apply

ZRename showing twenty-two filename collisions marked in red, with the Apply button disabled and an inline explanation beneath the summary

Rows that would land on a name another row wants are flagged, sorted to the top,
and Apply stays disabled with a plain-English reason. Collision red is used for
collisions and for nothing else in the app.

A regex tester that removes the guesswork

The rule editor showing a regular expression find and replace, with a live tester reporting a match, the captured group, and the resulting filename

The editor tests your pattern against the row you have selected and shows the
capture groups and the final result as you type. Rules toggle off without being
deleted.

Undo, even after a restart

A green confirmation strip reading Renamed 23 files with a prominent Undo button, and a history list of previous batches down the left

After applying, the commit bar becomes a confirmation strip with Undo. Every
batch also lands in the history list — and those survive quitting the app.

Light is a first-class theme

ZRename in its Bench Light theme, showing the same preview table on a light background

Long file lists genuinely read better on a light ground, so Bench Light is not
an afterthought. Bench, Nord and a high-Contrast theme ship alongside it.

Everything from the keyboard

The command palette open over the preview, listing commands such as Apply, Undo the last batch, presets, rules to add, and themes

Ctrl K reaches every command, preset, rule and theme
without leaving the keyboard.

Settings that explain themselves

The settings panel showing four themes, preview density, paranoid mode, the platform path limit, symlink handling and token behaviour

Four themes, row density, paranoid mode, path-limit handling, and what to do
when a file has no value for a token.

Filters that reach the whole folder

The filter panel expanded, showing extension, exclude, include glob, name regex, size range and modification date filters

Extensions, globs both ways, a name regex, a size range and a date range —
before any rule runs.

Duplicate-aware

The duplicate content report listing a group of two identical files, with a button to untick the copies

Grouped by size first, then hashed, so only real candidates are read. It can
untick the copies and leave the first of each group to be renamed.


Every feature

Rules

  • Find & replace — plain text or regex with $1 capture groups, case-sensitive or not, first match or all
  • Case — lower, UPPER, Title, Sentence, camelCase, PascalCase, snake_case, kebab-case
  • Insert — at a position, at the start or end, before or after a marker
  • Remove — a character range, a set of characters, a word, every digit, or repeated text
  • Trim — surro...
Read more