# OncePower renames and reorganises files without asking you to learn regex

> OncePower is a GPL-3.0 Flutter desktop tool that batch renames and reorganises files through a visual pipeline of match, modify and organise steps rather than regular expressions, with modes for image and video preview, CSV driven renaming and per group folder classification. It targets Chinese and English users on Windows 10 or later and Linux.

**ilgnefz/once_power** — All-in-One Desktop Tool for Batch Rename & Organization, Built with Flutter

- Repository: https://github.com/ilgnefz/once_power
- Stars: 1,097 · Forks: 48
- Language: Dart
- License: GPL-3.0
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/ilgnefz-once-power

## The core idea is a pipeline, not a regular expression

OncePower is described as an all-in-one desktop tool for batch rename and organisation, and the reason the project exists is stated in the introduction with a specific anecdote. The software was originally built to batch rename images, which is why it has features aimed particularly at pictures and video, the view mode that previews them.

The differentiating claim is that users do not need to learn to write regular expressions to do advanced matching and modification of file names.

That is the design centre, and the whole mode structure follows from it. The basic operations come first, and then there are two naming models, the replace and keep modes, and then the advanced mode, which has finer control over sequences. The README explains the difference between replace and keep with a pair of screenshots, and each of the two input boxes has a toggle button on the right that changes its function, so the match box becomes a match length control when lit, and the modify box becomes a case insensitive toggle when lit.

The modify box also has a date button that fills in today's date automatically, and the up and down arrows adjust it numerically, with the README making the naive arithmetic explicit, noting that the adjustment targets the digits, so 20260401 minus 1 gives 20260400. That is a small detail and it is exactly the kind of detail that tells you the tool was built by someone who renames files by date regularly.

There is also a date naming option that renames using the file's own date, and prefix and suffix handling that can be typed in, uploaded from a file, or edited directly, with the note that editing the uploaded content does not change the file itself.

## Three rename modes with different amounts of control

The three modes divide the work by how much you want to steer, and the split is worth understanding before choosing one.

The replace and keep modes are the everyday ones. Replace mode changes what matches, keep mode changes what is preserved, and both work on the same two boxes, one for what to match and one for what to write. Under them sit the common transformations, date naming, prefixes and suffixes, sequences, and extension handling for batch changing file extensions.

The sequences feature is the numbering mechanism, and there is a distinction setting attached to it. Files are grouped into sequences by category, and the README notes that when date naming is in use, files with the same date are added as one group sequence and then further distinguished by file type and extension.

The advanced mode is the one with finer control, and the README says so directly, that it has more precise sequence control than the replace and keep modes. Its structure is by operation and by what is operated on. For delete, you can delete text, delete the Nth matching value, delete by type, delete by position, and delete the file extension. For add, you can add text, add a sequence, add a random number, add other types, and control the insertion position, with the trailing and interval options called out in particular, where the trailing option appends the content at the end of the file extension and the number beside it does not affect the position.

The replace section in advanced mode has a distinction from the simpler mode, since the two buttons on the right are used to match a regular expression and to match the extension name. It also has a conversion option, and a formatting option where a match that is not a number is turned into the length of each name, and a word separation option that automatically splits words, with the technical limitation stated that this can only be done by capitalising the first letter.

Presets let you store a set of instructions and reuse them, and they can be imported and exported, and the preset list supports the same right click bulk operations as the file list.

## The organise mode is where renaming turns into filing

The organise mode is the second half of the tool's stated purpose, and it addresses the moment after the names are fixed.

The README describes the problem plainly. Sometimes after changing the file names you need to move the files to other folders, and that is when you use the organise mode.

The move options are a classification scheme rather than a single destination. The default moves all selected files into the target folder. Group name classification sets a different folder per group, through the set group folder button. Type classification does the same by file type, through the set type folder button. Date classification sorts files by date and creates folders named after the date. And there are options for a top level folder, for deleting the selected files, and for deleting empty folders, with the README noting that the software has explanations for these inside the app.

That last item, deleting empty folders, is the detail that shows the tool is aimed at a real tidying job rather than a demo. Moving files out of a folder tree leaves empty directories behind, and cleaning them up is exactly the boring step that makes people avoid doing the reorganisation in the first place.

The group concept, which only exists in the advanced and organise modes, is what connects the two halves. A group is a set of files that share a naming rule and a destination, and in the organise mode each group can have its own folder. So the workflow the tool supports is, group files by some rule, apply a naming rule per group, and then file each group into its own directory, which is a structure that a flat rename tool cannot express.

There is also a file date modification feature, separate from naming, which changes the dates of the files, and where choosing a non zero interval increments or decrements the date in file order.

## CSV in and CSV out, and the media preview that started it

Two features make OncePower usable in a workflow rather than only by hand.

The first is CSV driven renaming. The upload CSV button at the bottom accepts a CSV file, a TXT file in CSV format, and also the log files the application itself generates, and it uses the file list to batch rename. So the round trip is, export the current list as CSV, edit it in a spreadsheet, upload it back, and the names are applied. The README notes the exported format is CSV and that the file ends with a comma.

That CSV export is a list of the file names, and the log file is the more interesting artefact. The save log button, once enabled, saves the data before and after renaming, and the files go into a logs folder inside the application directory. So the tool keeps a record of the old name and the new name for every file it touched, which is the audit trail you want after an operation that rewrites hundreds of filenames.

The second feature is the view mode, which is the one the project's origin story points at. Clicking the icon at the bottom turns on preview of images and video, and it removes the other types of file from the list, so the list becomes only the media you are working with. You can double click to preview a larger image, and there is a control to change the width of the preview image for high resolution screens, done by long pressing the icon at the top right of the view mode panel.

There is also the multi selection model, with Ctrl and Shift and left mouse button, and selected files get a number in the top left corner, and the right click menu can use that number to reorder files quickly, which is the mechanism for controlling the order that a sequence numbering follows. The staging feature exists because there is no way to drag multiple selected files, so the files are staged instead.

## A Flutter app with a Rust core and an Inno Setup installer

The repository layout shows how the application is built, and there is a detail in it that is unusual for a Flutter project.

The Flutter structure is the standard one, with lib/ for the Dart code, test/ and integration_test/ for the tests, assets/ and doc/ for resources, pubspec.yaml and pubspec.lock, analysis_options.yaml for the lint configuration, and the platform directories android/, ios/, linux/, macos/ and windows/.

The unusual part is the Rust side. There is a rust/ directory, a rust_builder/ directory, and a flutter_rust_bridge.yaml at the root. The project is therefore a Flutter application with a Rust component connected through the flutter_rust_bridge, and the rust_builder directory is where the native side is compiled. For a file renaming tool, the plausible reason is performance on large file lists, since the string manipulation over long name lists is the hot path, and Riverpod handles the state on the Dart side, which matches the topics attached to the repository.

The packaging is a Windows installer written for Inno Setup, with OncePower.iss at the root, which is the script format for that installer tool. There is a version.json file, which is how a Flutter application usually carries the build version for the update check, and the.metadata file that Flutter writes to mark a project as Flutter based.

The application is GPL-3.0 licensed, and the release cadence is regular, with 3.2.2 on 2026-07-17, 3.2.3 on 2026-08-26 and 3.2.4 on 2026-09-27, and the last push on 2026-09-27. The project is written for a Chinese speaking audience first, with the README in Chinese and an English version at README-EN.md, and the interface supports Chinese and English. The documented platforms are Windows, with Windows 10 and later supported, and Linux.

## Where OncePower is the wrong tool

The first wrong case is an unattended pipeline. OncePower is a desktop application with a graphical pipeline, a file list, a preview pane and a right click menu. If you need to rename a hundred thousand files on a schedule from a shell script, you want a command line tool, and this is not one. The CSV import is the closest thing to a scriptable interface, and it is still a GUI round trip.

The second wrong case is a regular expression habit. The tool's selling point is that you do not need regex, and for a user with a folder of screenshots that is exactly right. For a user who already writes regex fluently, the pattern matching model is more clicks than a single expression, and the advanced mode's regular expression and extension matching buttons are there, but they are an escape hatch inside a visual model rather than the model itself.

The third wrong case is a file set that needs careful preview. A rename tool that shows you a list of proposed names is the right safety mechanism, and OncePower has that. But a tool for a very large set where you want to diff the old and new names systematically, group by pattern and check each rule, is a different kind of program.

The fourth wrong case is macOS. The platform list in the README names Windows and Linux, and although the repository has macos/ and ios/ directories, those are the standard Flutter platform folders, and the application is not documented as supporting them.

## How it differs from a regex rename tool

The comparison worth making is with the classic shell one-liner or with a dedicated regex renaming utility, and the difference in approach is where the description of the rule lives.

A regex rename tool expresses the rule as a pattern and a replacement. That is compact, precise and scriptable, and it is also the thing you have to learn. The rule in OncePower is a set of labelled boxes and toggles, one describing what to match and one describing what to write, with the mode deciding whether the second box replaces or preserves. Match length, case sensitivity, sequence, extension, position and type are each a control rather than a piece of syntax.

The second difference is the feedback loop. With a regex tool, the usual workflow is write the expression, run it on a sample, read the output, adjust. With OncePower, the file list is the output, and the preview mode shows you the actual images with their proposed names, so you are checking a visual result rather than reading a diff. For a rename tool that started life as an image renamer, that is the point of the whole design.

The third difference is the scope. A regex rename tool does one thing, rename. OncePower covers the rename, the classification into groups, and then the filing into a folder structure, and the group concept ties those together so that the same grouping that drove the naming drives the destination. The organise mode's move options, default, group, type, date, plus a top level folder and cleanup of empty directories, are a small file manager built around the same concept.

The fourth difference is the round trip. The CSV export and import means the rule can be prepared and edited outside the application, and the log file gives a before and after record of every operation. A regex one-liner leaves you to build that audit trail yourself.

## Conclusion

OncePower fits someone with a folder of thousands of screenshots or media files who wants to rename and sort them by a rule they can describe rather than one they can express as a regular expression, and it fits a Chinese speaking user who wants the interface and the documentation in their own language. It does not fit a pipeline that needs scripted, unattended batch renaming, since this is a desktop application with a graphical pipeline, and it does not fit macOS users, since the supported platforms are listed as Windows 10 and later and Linux. Before adopting it in a workflow, note that the source README is in Chinese with an English version at README-EN.md, that the project is GPL-3.0 licensed, and that the current release is 3.2.4 from 2026-09-27 with the last push on the same day.

## FAQ

### Which platforms does OncePower support?

The documented platforms are Windows, with Windows 10 and later supported, and Linux. The interface is available in Chinese and English, and the project ships an Inno Setup installer script at OncePower.iss for the Windows build.

### What is the difference between replace mode and keep mode in OncePower?

The replace and keep modes are the two everyday naming models. Replace mode changes what matches, keep mode changes what is preserved, and each mode has a match input box and a modify input box, whose right hand buttons toggle extra behaviour such as match length and case insensitivity. The advanced mode adds finer sequence control and delete, add and position options.

### Can OncePower rename files from a CSV file?

Yes. The upload CSV button accepts a CSV file, a TXT file in CSV format, and also the log files the tool itself generates, and uses the file list to batch rename. The tool can also export the current file list as CSV, which you can edit and upload back, with the exported file ending in a comma.

### What does the organise mode in OncePower do?

It moves files into folders after they have been renamed. The options are moving everything to the target folder, classifying by group name into separate folders, classifying by file type, classifying by date with folders created and named after the date, and options for a top level folder, deleting the selected files and deleting empty folders.

### Is OncePower open source and what licence does it use?

Yes, it is released under the GPL 3.0 License, with the LICENSE file at the top of the repository. The current release is 3.2.4 from 2026-09-27, and the last push to the master branch was on the same day.

## Sources

- [ilgnefz/once_power on GitHub](https://github.com/ilgnefz/once_power)
- [Issues](https://github.com/ilgnefz/once_power/issues)
- [License: GPL-3.0](https://github.com/ilgnefz/once_power/blob/master/LICENSE)
- [README](https://github.com/ilgnefz/once_power/blob/master/README.md)
- [Releases](https://github.com/ilgnefz/once_power/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/ilgnefz-once-power
