Files
nomina/README.md
2026-03-14 20:16:34 +02:00

7.0 KiB

Nomina

Rename your files, not yourself.

A bulk file renaming tool for people who have better things to do than click through files one by one.

Built with Rust and Tauri. Runs on Windows. Yours to keep, no strings attached.

License: CC0 Built with Tauri Rust React Platform: Windows No Telemetry No Account Required


🪴 What is this?

Nomina is a desktop app that renames files in bulk. You point it at a folder, build a chain of renaming rules, see a live preview of every change, and hit rename when you're ready. That's the whole idea.

No subscriptions. No cloud. No accounts. No data harvested. It sits on your computer, it does what you tell it, it belongs to you. The code is public domain - you can copy it, change it, share it, sell it, print it out and wallpaper your bathroom with it. Nobody owns it.


🌿 What can it do?

Nomina has 18 different rule types that you can stack together in any order, like building blocks. Each rule transforms the filename in some way, and the changes cascade through the pipeline.

Renaming rules

Rule What it does
Replace Find and replace text, with optional regex and case sensitivity
Regex Pattern matching with capture group support
Remove Strip characters, words, digits, symbols, accents, or regex matches
Add Insert text at any position - prefix, suffix, or somewhere in the middle. Supports template variables like {name}, {date}, {index}
Case 13 modes - upper, lower, title, sentence, camelCase, snake_case, kebab-case, and more. Smart title case knows about common exception words
Numbering Add sequential numbers in decimal, hex, octal, binary, alphabetic, or roman numerals. Per-folder counters, reverse ordering, custom formatting
Date Insert file dates (created, modified, accessed, EXIF) in various formats
Move parts Extract text by position, word count, or regex and move it somewhere else
Extension Change, remove, or normalize file extensions
Hash Add content-based MD5, SHA1, or SHA256 hashes
Folder name Pull in the parent folder name (or grandparent, etc.)
Transliterate Convert unicode to ASCII - turns "cafe" into "cafe", that sort of thing
Padding Pad numbers with leading zeros for proper sorting
Truncate Cut filenames down to a maximum length
Randomize Generate random hex, alphabetic, alphanumeric strings, or UUIDs
Swap Swap parts of a filename around a delimiter ("Last, First" becomes "First, Last")
Sanitize Strip illegal characters, normalize unicode, collapse whitespace, replace spaces
Text editor When all else fails, just type the new names yourself

Everything else

  • Live preview - see exactly what every file will be renamed to before anything happens
  • Conflict detection - warns you when two files would end up with the same name
  • Undo - every rename operation is reversible, with persistent history
  • Presets - save your rule pipelines, export them as files, share them with others
  • Filters - narrow down which files get renamed by name pattern, size, type
  • Drag and drop - reorder rules by dragging them around
  • Context menus - right-click files, rules, and sidebar items for quick actions
  • Explorer integration - adds "Edit in Nomina" to your Windows right-click menu, auto-fixes itself if you move the exe
  • Keyboard shortcuts - select all, deselect, the usual stuff

🌱 Portable and self-contained

Nomina doesn't install anything. There's no installer. It's a single exe file that you put wherever you want.

All data the app creates - settings, presets, undo history, webview cache - lives in a data folder right next to the exe. Nothing goes into your registry, AppData, or anywhere else on your system. The only exception is the optional Explorer context menu, which does write to the registry (because that's how Windows works), but there's a button to remove it and then the app has left zero trace.

You can put it on a USB stick, move it between computers, delete it by deleting the folder. Your computer before and after is the same computer.


🍄 Settings

Nomina is pretty configurable. Some things you can change:

Look and feel - dark/light/system theme, accent color, zoom level, compact mode, zebra striping on the file list

Behavior - auto-select files, confirm before rename, sort order, animations, always-on-top, preview delay

Safety - automatic backups before renaming, configurable backup location and cleanup schedule, undo history limit

Accessibility - high contrast mode, reduced motion (auto-detected from your OS), font scaling, enhanced focus indicators, screen reader support, color blind modes (deuteranopia, protanopia, tritanopia), larger touch targets, keyboard-only navigation. Nomina tries to read your OS accessibility preferences on first launch and configure itself accordingly.

Notifications - toast popups, taskbar flashing, and a little sound effect when a rename finishes


🔧 For developers

If you want to build it yourself or poke around the code.

Prerequisites

  • Rust (stable)
  • Node.js (LTS)
  • Visual Studio Build Tools (Windows)

Building

# install frontend dependencies
cd ui && npm install

# run in development mode
cargo tauri dev

# run the core library tests
cargo test -p nomina-core

# build a release binary
cargo tauri build --no-bundle

The release binary ends up at target/release/nomina.exe.

Project layout

nomina/
  crates/
    nomina-core/   # the rename engine - pure Rust library, no UI dependency
    nomina/        # Tauri v2 desktop shell, commands, system integration
  ui/              # React + TypeScript frontend

The core library (nomina-core) handles all the actual renaming logic - rules, pipeline execution, filters, undo tracking, presets. It doesn't know or care about the UI. The app crate (nomina) wraps it in a Tauri window and exposes it as commands. The frontend (ui) talks to those commands and renders everything.


🌻 License

CC0 1.0 - Public Domain Dedication

No rights reserved. This work is dedicated to the commons. Do whatever you want with it. You don't need permission, and you don't owe anyone anything.

The tools we use every day should belong to the people who use them.