| Crates.io | unfk |
| lib.rs | unfk |
| version | 1.1.0 |
| created_at | 2025-11-21 15:50:44.534345+00 |
| updated_at | 2025-11-25 21:58:10.776934+00 |
| description | A fast, modern CLI tool for scanning and repairing file formatting issues |
| homepage | |
| repository | https://github.com/keathmilligan/unfk |
| max_upload_size | |
| id | 1943741 |
| size | 294,228 |
UNiversal File... Korrector?
A fast, modern CLI tool for scanning and repairing file formatting issues
unfk detects and fixes common file formatting inconsistencies across your codebase:
.md filesUnlike code formatters such as Prettier or Black, unfk is not concerned with code style or syntax. Instead, it focuses on low-level file hygiene issues that affect a much broader range of file types—config files, scripts, data files, documentation, and more.
unfk is aware of file type-specific conventions and applies the right defaults automatically. For example:
.bat, .cmd) and PowerShell scripts require CRLF line endingsMakefile requires tabs for indentation.go files use tabs by convention, while .py uses 4 spaces and .rb uses 2.vb and .reg files expect CRLFThis means you can run unfk fix across a mixed codebase and trust it to do the right thing for each file type.
For markdown files (.md), unfk includes additional checks:
Example:
# Scan for issues including successive blank lines
unfk scan document.md
# Fix all issues including successive blank lines
unfk fix --all document.md
cargo install unfk
# Scan current directory for issues
unfk
# Fix all issues
unfk fix
# Preview changes without modifying files
unfk fix --dry-run
# Create a configuration file
unfk init
| Command | Description |
|---|---|
unfk / unfk scan |
Scan for formatting issues |
unfk fix |
Automatically repair issues |
unfk init |
Create .unfkrc.toml config file |
unfk types |
List supported file types |
unfk config |
Show current configuration |
A config file is not required — unfk assumes sane defaults for most file types and modern development conventions.
unfk automatically reads .editorconfig files if present. This lets you share formatting settings across tools and editors without duplicating configuration. The following EditorConfig properties are supported:
| EditorConfig Property | unfk Setting |
|---|---|
end_of_line |
Line ending style |
indent_style |
Tabs or spaces |
indent_size |
Indent width |
charset |
File encoding |
trim_trailing_whitespace |
Trailing whitespace |
insert_final_newline |
Final newline |
Precedence order: CLI flags > .unfkrc.toml > .editorconfig > built-in defaults
To disable EditorConfig integration, use --no-editorconfig.
For custom rules, create .unfkrc.toml in your project root:
line-ending = "lf"
encoding = "utf-8"
final-newline = true
trailing-whitespace = "remove"
[indent]
style = "spaces"
width = 2
# Per-pattern overrides
[[rules]]
pattern = "*.py"
[rules.indent]
style = "spaces"
width = 4
unfk can replace several single-purpose legacy utilities with one modern, file-type-aware tool:
| Legacy Tool | unfk Equivalent |
|---|---|
dos2unix |
unfk fix --line-ending lf |
unix2dos |
unfk fix --line-ending crlf |
mac2unix |
unfk fix --line-ending lf |
fromdos / todos |
unfk fix --line-ending lf / crlf |
unfk automatically uses the correct line ending for each file type. Windows batch files stay CRLF even when you normalize everything else to LF.--dry-run before modifying files.# Convert all files to LF (respecting file-type conventions)
unfk fix --line-ending lf
# Convert specific files to CRLF
unfk fix --line-ending crlf src/scripts/*.bat
# Preview what would change
unfk fix --line-ending lf --dry-run
MIT