Skip to main content
All routes

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

  1. 01

    Settings

    A flag beats an environment variable, which beats the config file, which beats the built-in default.

  2. 02

    Command

    One of the 23 tools runs with those settings.

  3. 03

    Output

    Plain text for people, --json for the next command, --clip for 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.

Preview run box bulk-rename
❯ 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

Tools
23
Tools in the README at v2.0, plus config and completions Source
Tests
507
At the v2.0 milestone Source
Binary
1
All tools ship in one executable Source

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