. oooo .o8
.o8 `888 "888
.o888oo .ooooo. .ooooo. 888 888oooo. .ooooo. oooo ooo
888 d88' `88b d88' `88b 888 d88' `88b d88' `88b `88b..8P'
888 888 888 888 888 888 888 888 888 888 Y888'
888 . 888 888 888 888 888 888 888 888 888 .o8"'88b
"888" `Y8bod8P' `Y8bod8P' o888o `Y8bod8P' `Y8bod8P' o88' 888otoolbox is a collection of Unix shell utilities for everyday use.
It also has a website.
Each utility is a portable POSIX script built on the Unix shell framework
shellbase:
-
bakwrapsrdiff-backupto create incremental backups. -
chownerchanges the owner and permissions on a directory. -
copyrightupdates years in copyright notices. -
essidwatches for changes to the connected Wi-Fi network’s ESSID and reports them. -
flactomp3converts audio files tomp3with tags. -
ivalvalidates image files. The name stands for Image Validation. -
myipcontinuously displays the external IP address usingdig. -
pingoadds timestamps to the ping command output. -
reelconverts a video clip to a vertical 1080×1920 social media reel usingffmpeg, padding it with a blurred copy of itself. Options:-ccenter-crops to fill the frame instead of padding,-fsets the input file,-othe output file,-sthe start time,-uthe duration, and-zthe horizontal crop shift in pixels (negative values allowed). -
remountremounts filesystems using a temporaryfstabconfiguration, then restores the permanent one. -
rsynxwrapsrsyncand picks a safe option set for the installedrsyncversion. -
scannerdetects whether a device with a given MAC address appears on the local network usingarp-scan. -
siftcopies a random subset of files from a source directory into a destination directory until it reaches a byte budget. Options:-ssets the byte budget (a number with an optionalK,M, orGsuffix, default8G) and-othe destination directory (default: the current directory). The source directory is a required positional argument. -
speedcontinuously displays download and upload internet speeds usingspeedtest. -
texcompiles a TeX source file to PDF and opens the result. -
truremoves a torrent and its content, then adds it again to increase the share ratio. The name stands for Transmission Remote Updater. It can run undercron. -
ydatawrapsyt-dlp: it downloads, converts, renames, and stores media, skipping videos it already downloaded. It can run undercron.
The project uses Daniel J. Bernstein’s build system redo.
You can also use Sergey Matveev’s goredo implementation.
redo lint runs whichever of the following linters you have installed:
actionlint,
checkbashisms,
conform,
gitleaks,
reuse,
shellcheck,
shfmt,
typos,
vale,
yamllint,
zizmor.
It also parses every script with dash -n and mksh -n to catch syntax
errors and Bash-only constructs.
$ redo lint
20260803-14:02:01 » dash -n ./lint.do
20260803-14:02:01 » mksh -n ./lint.do
20260803-14:02:02 » shellcheck ./*.do ./app/*
# actionlint, checkbashisms, conform, gitleaks, reuse - not installed, nothing logged
20260803-14:02:04 shfmt failed, err=1.
20260803-14:02:05 » yamllint ./.github/*.yml ./.github/workflows/*.yml
OKDavid Rabkin holds the copyright to toolbox and distributes it
under the Zero-Clause BSD license.