v2.0shipped
box
v2.0 shipped on 14 July 2026: 23 tools in one binary, JSON output for scripts, and a preview before anything destructive.
Problem
box gathers the small jobs I do in PowerShell 7 on Windows into one command: hashing a file, making a UUID, flattening a folder, renaming a batch of files. v1.0 put 23 tools in one Rust binary. v2.0 made them scriptable: JSON output that ConvertFrom-Json reads, --clip for the clipboard, and defaults in a config file.
Pipeline
01
Settings
A flag beats an environment variable, which beats the config file, which beats the built-in default.
02
Command
One of the 23 tools runs with those settings.
03
Output
Plain text for people,
--jsonfor the next command,--clipfor the clipboard.
Safety
Commands that delete, move or rename files run as a preview by default: box shows what it would do and renames, moves or deletes nothing until you add --force. box checks the whole job before it changes the first file.
❯ box bulk-rename ./sample '^(.*)\.txt$' '$1.md' - copies (skipped: directory) ~ hut.txt -> hut.md ~ zmutt.txt -> zmutt.md Dry run: 2 to rename, 0 unchanged, 1 skipped. Re-run with --force to apply.
With --force, box would rename hut.txt to hut.md and zmutt.txt to zmutt.md, and leave the copies folder alone.
Metrics
Demo
Four commands I ran with box, replayed with the output they returned.
box
Command 1 of 4. Command: box hash sample/hut.txt. Output: a113912ef20f332e35c86601e1c90df90a110e260827f0ae9f861611927ecf1d sample/hut.txt. BLAKE3 is the default hash.
Stack
Language
- Rust 2021
Crates
- clap
- serde_json
- blake3
- regex
- rayon
- chrono
- image
- crossterm
Platform
- Windows
- PowerShell 7