vexy-formi¶
vexy-formi formats and minifies source files by handing each file to an external tool that is already installed on your machine: ruff or black for Python, biome, prettier or dprint for JavaScript and CSS, esbuild or swc to minify JavaScript, and so on. It finds the files, picks a tool per file type, runs the tools in parallel and reports what happened.
The package installs one command, vfor, and a Python package, vexy_formi.
What goes in, what comes out¶
You give vfor a directory or a file and an operation:
vfor fmt <path>formats every supported file in place.vfor mini <path>minifies every supported file in place.
For each file the tool:
- Skips it if it matches an exclusion pattern, is empty, larger than 100 MB, binary, unreadable or not writable.
- Looks up the file's extension in a fixed list of tools for that operation, for example
.py→ruff, thenblack. - Runs the first tool that is installed. If that tool fails, it tries the next one.
- Records the size before and after.
At the end it prints a summary such as Processed 4 files. With --verbose it lists each file.
What it is not¶
- It is not a formatter itself. Without the external tools it does nothing.
vfor toolsshows which are installed;vfor installtries to install them. - It does not read each tool's settings for you. A tool such as
dprintstill needs its owndprint.json. - It is not reversible. The files are rewritten in place; see Safety and backups before you run it on work you have not committed.
Where to go next¶
| If you want to… | Read |
|---|---|
Install vfor and the tools it calls |
Installation |
| Format a project for the first time | Quick start |
| Look up a command or flag | CLI reference |
| See which tool handles which file type | Tools and file types |
| Change worker count or exclusion patterns | Configuration |
| Understand what is skipped, what is asked, what is backed up | Safety and backups |
| Call it from Python | Python API |
| Fix a problem | Troubleshooting |
| Work on the code | Development |