Built for cautious power users.
No "magic AI" guessing what you meant. Just clear rules, complete previews, and loud warnings when something looks off.
Preview-first pipeline
Stack rename steps and review the final result before anything touches the disk. If it looks wrong, nothing is applied.
Filters that make sense
Contains, starts with, ends with, extension, or regex — combined with Match ALL (AND) or Match ANY (OR), plus a case-sensitive toggle.
Safety checks
Invalid characters, duplicate targets, and "file already exists" issues are flagged before you hit Apply. Swaps, case-only renames and frame shifts are handled safely, and nothing is ever overwritten.
Fast on big folders
A scrolling preview and background scanning keep RenForge smooth with tens of thousands of files. Sort by name, date or size, and tick or untick any file.
One-click undo
Save an undo log when you apply, then press Undo… any time later to restore the original names. Files that moved or changed since are reported, not guessed at.
Deterministic by design
Same inputs produce the same outputs, every time. RenForge won't get creative when you just want consistency.
A full rename toolbox
Replace, remove, prepend, append, change extension, regex replace, case conversion (snake_case, Title Case…), clean-up, and numbering. Reorder or switch off steps, and save setups as presets.
Made for photographers
Name files from the EXIF capture date, camera, lens or ISO — {date:YYYY-MM-DD}_{n:3}. RAW + XMP + JPG companions are renamed together, all or none.
Renders & image sequences
Shift frame numbers — shot.0001.exr → shot.1001.exr — even when each file takes the name of the next. Chains are applied safely, and undo restores them.
Up and running in under a minute.
Grab a prebuilt build from GitHub Releases, or build from source with Go. RenForge runs natively on macOS (Apple Silicon and Intel), Windows, and Linux.
# Apple Silicon (M1 or newer); use renforge-macos-intel.zip on Intel Macs $ curl -LO https://github.com/blackarck/renforge/releases/download/latest/renforge-macos-silicon.zip $ unzip renforge-macos-silicon.zip $ open renforge.app # Only if macOS says the app is from an unidentified developer: $ xattr -dr com.apple.quarantine renforge.app
# Download and unpack the Linux (x86-64) build $ curl -LO https://github.com/blackarck/renforge/releases/download/latest/renforge-linux-amd64.tar.xz $ mkdir renforge && tar -xJf renforge-linux-amd64.tar.xz -C renforge $ ./renforge/usr/local/bin/renforge
# Download the Windows (x64) build and run it PS> Invoke-WebRequest -Uri https://github.com/blackarck/renforge/releases/download/latest/renforge-windows-amd64.exe -OutFile renforge.exe PS> .\renforge.exe # If SmartScreen warns: More info → Run anyway (Windows builds are not code-signed yet)
# Requires a recent Go (see go.mod) and the Fyne dependencies $ git clone https://github.com/blackarck/renforge.git $ cd renforge $ go run . # Or build a packaged app with icon: go install fyne.io/tools/cmd/fyne@latest && fyne package -os darwin
Your first rename, step by step → · Build instructions →
What you get
A single, self-contained desktop app. No services running in the background, no telemetry, no account needed.
-
Cross-platform. Native builds for macOS (Apple Silicon and Intel), Windows, and Linux, with built-in help (press F1).
-
Source on GitHub. Read the code, file issues, send PRs. Free for non-commercial use; a commercial license is available.
-
Built with Go + Fyne. Lightweight, fast, and easy to build from source.
-
Offline-first. No network calls. Photo metadata is only read, never changed, and your files stay on your machine.
A look inside RenForge.
Click any image to see it full-size.
Six steps, zero surprises.
RenForge follows one principle: preview first, rename second.
Select a folder
Pick a folder, or drag one onto the window. Subfolders are only included if you tick Include subfolders — fewer accidents.
Add filters
Narrow the file list with contains / starts / ends / extension / regex rules. Combine with AND or OR.
Build a rename pipeline
Stack steps: replace, remove, regex, prepend, append, change extension or case, clean up, number files, or build names from photo dates. Reorder them, or load a preset.
Review conflicts
Duplicates, invalid characters, and existing-target collisions are highlighted before Apply.
Dry run, then apply
Stay in Dry Run while you tune the pipeline. Switch to Apply only when the preview looks right.
Keep an undo log
Optional, but recommended. Press Undo… later and RenForge restores the original names from the log.
Common questions.
What makes RenForge "safe"?
It's preview-first and deterministic. Before applying, RenForge runs checks for invalid names, duplicate targets, and existing files. You see the full plan, then you decide.
Does it rename files recursively?
Only if you ask it to. Tick Include subfolders to scan inside subfolders; it is off by default so a first run stays small and predictable. Numbering can restart in each folder.
Can I undo changes?
Yes. Keep Create undo log ticked when you apply, then click Undo… in RenForge and pick the log (the latest is offered automatically). Files that were moved or deleted since are skipped and reported.
Where do I download binaries?
The Download button at the top opens the latest build on GitHub Releases: renforge-macos-silicon.zip, renforge-macos-intel.zip, renforge-windows-amd64.exe and renforge-linux-amd64.tar.xz.
Is RenForge free? What's the license?
RenForge is free for non-commercial use under CC BY-NC 4.0, and the source is on GitHub. Commercial use requires a paid license — contact the author via the repository.
Can it rename photos by the date they were taken?
Yes. Use Rename from template with tokens such as {date:YYYYMMDD_HHmmss}, {camera} and {n:3}. The date comes from the photo's EXIF data (JPEG and TIFF-based RAW such as CR2, NEF, DNG, ARW); other files use their modified date. EXIF is only read, never changed.
Does it keep RAW, XMP and JPG files together?
Yes, if you tick Also rename related files. Files with the same base name (or Adobe-style IMG_001.CR2.xmp sidecars) are renamed together, and a group is renamed all or nothing.
Are the downloads signed?
macOS builds are being signed and notarized by Apple. Windows builds are not code-signed yet, so SmartScreen may warn: choose More info → Run anyway.
How do I report a bug or ask for a feature?
Open an issue on GitHub and pick the Bug report or Feature request form. See Project & support for what to include, or the documentation if you are not sure how something works.
Does it send any data anywhere?
No. RenForge is a local desktop app with no telemetry, no analytics, and no network calls. Your filenames and photos stay on your machine.
Found a bug? Want to help?
RenForge lives on GitHub. Bug reports, ideas and pull requests are all welcome, and the more concrete your example file names are, the faster things move.
Report a bug
Open an issue and tell us:
- your operating system and which build you downloaded
- a few example file names, your filters and rename steps
- what you expected and what happened
- a screenshot, or the undo log (remove private names first)
Request a feature
Describe the problem you are trying to solve first (for example "number photos separately in each folder"), then your idea. Before → after file names make requests easy to act on.
Request a featureContribute code
- Fork the repository and create a branch
- Keep the change small and focused; open an issue first for big ideas
- Add tests (the rename engine in internal/ has no UI code)
- Run gofmt, go vet ./..., go test ./...
- Update the docs, then open a pull request
Build it yourself
You need Go and a C compiler (for the Fyne UI toolkit).
git clone https://github.com/blackarck/renforge.git cd renforge go run . # run go test ./... # testFull build instructions
Ready to rename without the regret?
Download RenForge, run a dry run on a test folder, and see the preview-first workflow for yourself.