Rename files with spaces and irregular casing to lowercase underscore style.
Parses filenames using a stack-based dot parser — every dot is a structural separator, every segment gets the same transform. No extension map needed.
| Input | Output |
|---|---|
My File Name.txt |
my_file_name.txt |
camelCaseFile.go |
camel_case_file.go |
component.test.js |
component.test.js |
XMLParser.d.ts |
xml_parser.d.ts |
LOUD FILE.tar.gz |
loud_file.tar.gz |
.eslintrc.json |
.eslintrc.json |
go build -o easypath && codesign -s - easypath
sudo cp easypath /usr/local/bin/Or with just:
just install# Single file
easypath --cli "My File.txt"
# Multiple files
easypath --cli "File One.txt" "File Two.go"
# Directory
easypath --cli --dir /path/to/dir
# Recursive directory
easypath --cli --dir /path/to/dir --recursive
# Dry run (preview without renaming)
easypath --cli --dry-run --dir /path/to/dirRuns as a stdio MCP server by default (no --cli flag). Parameters:
| Param | Type | Description |
|---|---|---|
files |
array | Array of absolute file paths to rename |
dir |
string | Directory to scan and rename all files |
recursive |
bool | Recurse into subdirectories (dir mode) |
dry_run |
bool | Preview renames without executing |
MIT