Rename hundreds of files from a spreadsheet. Without uploading a single one.

You have a column of current filenames and a column of new ones. Drop the spreadsheet, drop the files, get a renamed ZIP back — plus a report of everything that did not match.

100% local — files never leave your browser CSV / XLSX in, ZIP out No account, no install

1Add your mapping table

A CSV or Excel file with two columns: the current filename and the new filename. Headers are auto-detected (old/current/from → new/target/to), and you can change them below.

Drop a .csv / .xlsx file here
or click to choose — parsed locally with SheetJS

2Add the files to rename

Select the files themselves, or drop a ZIP — it is unpacked in memory. Matching is on the filename without its extension, case-insensitive. The extension on disk always wins.

Drop files or a ZIP here
multiple files supported · nothing is uploaded

3Review and rename

Every row shows what will happen. Conflicts, illegal names and unmatched rows are listed with a reason, and you can export the unmatched list to fix your spreadsheet.

Add a table and some files to see the preview.
How the free limit works. The first 3 files are free, every time — no account needed. Beyond that the tool asks for a one-time $19 licence. The limit is checked in the page, not in a convoluted paywall, so you can see the full preview before deciding.
Why "never uploaded" is a technical claim, not a slogan. There is no backend to upload to: the site is static files on Cloudflare, parsing and zipping happen in this tab, and there is no analytics script watching what you drop.

What it handles, and what it refuses to guess

Case-insensitive matching IMG_001.jpg in the table matches img_001.JPG on disk.
Extension follows the file Table says new.pdf, file is .docx → new.docx. Never new.pdf.docx.
Duplicates flagged, not resolved Two files pointed at the same name are both marked and neither is renamed.
Windows-illegal names blocked < > : " / \ | ? *, reserved names (CON, LPT1), trailing dots.