A fast, recursive batch file renaming utility written in Odin, able to process thousands of files in seconds. Rename files across your entire directory tree with a preview before you commit to the changes.
- Recursive directory traversal — renames all matching files throughout your directory tree
- Preview mode — see what will be renamed before confirming
- Interactive confirmation — prevents accidental mass renames
- Skips hidden directories — dot folders (
.git,.node_modules, etc.) are automatically skipped - Undo capability — revert your last batch rename operation with a single command
- Cross-platform — Windows, macOS, and Linux support
Pre-built binaries for Windows, macOS, and Linux are available on the Releases page.
- Navigate to the Releases page
- Download the binary for your operating system:
- Windows:
simulacrum-windows.exe - macOS:
simulacrum-macos - Linux:
simulacrum-linux
- Windows:
- Make the binary executable (macOS/Linux only):
chmod +x simulacrum-* - Optionally, add it to your
PATHfor system-wide access:- macOS/Linux: Move to
/usr/local/bin/and rename it:mv simulacrum-macos /usr/local/bin/simulacrum # or for Linux: mv simulacrum-linux /usr/local/bin/simulacrum - Windows: Move to your desired location and add that directory to your
PATHenvironment variable, or rename tosimulacrum.exe
- macOS/Linux: Move to
- Odin compiler installed and in your
PATH
-
Clone the repository:
git clone https://github.com/thelazybastard/simulacrum.git cd simulacrum -
Build the project:
odin build . -
The compiled binary will be created in the current directory as
simulacrum(macOS/Linux) orsimulacrum.exe(Windows) -
Optionally, move it to your
PATHfor system-wide access
This scans all subdirectories from you current working directory for files matching the specified old filename and renames them to the new filename.
simulacrum <old_filename> <new_filename><old_filename>— the exact filename to search for (without path)<new_filename>— the new filename to rename matches to
Rename all files named config.txt to settings.txt in the current directory and all subdirectories:
simulacrum config.txt settings.txtThe tool will:
- Preview mode: Show all matches and what they'll be renamed to
- Confirmation prompt: Ask you to confirm (
yto proceed,nto cancel) - Execution: Rename all matching files if you confirm
/home/user/project/config.txt -> settings.txt
/home/user/project/src/config.txt -> settings.txt
/home/user/project/tests/config.txt -> settings.txt
Proceed with operation(y/n): y
/home/user/project/config.txt has been renamed to settings.txt
/home/user/project/src/config.txt has been renamed to settings.txt
/home/user/project/tests/config.txt has been renamed to settings.txt
Revert your last batch rename operation:
simulacrum undo renameThis will restore all files renamed in the previous operation to their original names. Undo data is stored in undo.json in the directory where you have your binary stored.
simulacrum config.txt settings.txt
# ... confirms the operation ...
# Later, to undo:
simulacrum undo rename
/home/user/project/settings.txt has been reverted to config.txt
/home/user/project/src/settings.txt has been reverted to config.txt
/home/user/project/tests/settings.txt has been reverted to config.txt- The tool walks through your entire directory tree starting from the current working directory
- It skips hidden directories (those starting with
.) to avoid modifying version control or dependency folders - In preview mode, it shows all files that match the old filename
- After confirmation, it renames each matching file to the new filename in place
- Rename operations are logged to
undo.json, allowing you to revert changes if needed - If any errors occur during renaming, they're reported but don't stop the operation
MIT