cb
A cloud backup and restore utility for Backblaze B2 storage. Backs up
directories whilst intelligently handling git repositories (preserving only
.git/config), respecting .no-backup markers, and tracking executable
permissions. Automatically excludes temporary files and Python cache
directories.
Provides three operations: store (backup to B2), restore (download with
optional ownership control), and run (automated nightly backups via shell
scripts in /etc/backup.d). Requires uv for B2 CLI access and reads bucket
credentials from /etc/backup (configurable).
Last Updated 2026-01-27
ding
Plays an audio notification - either immediately or after executing a command.
When running a command, plays a success sound (ding) on exit code 0 or an error
sound on failure. Displays elapsed time for commands taking longer than 5
seconds.
Useful for wrapping long-running commands to provide audible feedback when they
complete. The wrapped command's exit code is preserved, making ding transparent
when used in scripts or pipelines.
Last Updated 2026-01-27
docker-run
Wrapper for running commands within Docker containers, simplifying execution
via cron jobs. Automatically handles volume mounts, container naming, and
cleanup.
Supports optional randomised start times, host network mode, custom
users/hostnames, and can execute in already-running containers.
eg.
docker-run travel --mount /storage/travel:/app/db -- /app/nightly -q
becomes
docker run \
--rm \
--mount type=bind,source=/storage/travel,target=/app/db \
--name travel \
travel \
/app/nightly -q
Last Updated 2026-01-27
dot
Dotfiles manager for tracking and synchronising configuration files. Stores
dotfiles in a git repository (~/.dotfiles) and creates symlinks from your home
directory to the tracked files, allowing you to version control your
configuration whilst keeping files in their expected locations.
Last Updated 2026-01-27
ff
FFmpeg wrapper with sensible defaults for common video and audio operations.
Automatically selects appropriate codecs, displays progress bars for long
operations, and preserves file modification times. Provides simple commands for
transcoding, resizing, cropping, trimming, and other transformations without
requiring complex ffmpeg command-line knowledge.
Includes a filter DSL for querying media files by attributes (codec, duration,
size, fps, dimensions, etc.), allowing operations on specific subsets of files.
For example, `ff info *.mp4 -f 'fps >= 25 and duration < 5m'` to find short
high-framerate videos.
Last Updated 2026-01-29
find-hq-music
Searches YouTube for high-quality music videos using the YouTube Data API.
Automatically appends "hd remastered" to your search query and returns up to 15
results with colour-coded titles to highlight official uploads and high-quality
versions.
Requires a YouTube Data API key configured in ~/.config/find-hq-music (format:
api-key=...). Results are displayed with YouTube URLs, channel names, and
colour-coded titles based on quality indicators.
Last Updated 2026-01-27
git-outgoing-list
Lists unpushed commits in the current repository. Walks the commit history from
HEAD and displays all commits until reaching one that exists on a remote
tracking branch. Shows shortened commit SHAs in yellow alongside commit message
titles.
Last Updated 2026-01-27
git-outgoing-review
Shows full diffs for all unpushed commits in the current repository. Displays
each commit's complete changes (via git show) in chronological order, making it
easy to review all local work before pushing. Uses a pager for comfortable
viewing of large diffs.
Last Updated 2026-01-27
git-todo
Lists open GitHub issues for the current repository with colour-coded output.
Displays shortened URLs, issue numbers, labels, and titles for easy reference.
Automatically discovers the GitHub repository from the current directory's git
remote. Optionally uses GitHub API authentication from ~/.github for private
repositories or higher rate limits.
Last Updated 2026-01-27
git-url
Generates GitHub URLs for the current repository or current commit.
Automatically discovers the repository from the git remote and outputs the URL
to stdout, or optionally opens it in your browser.
Last Updated 2026-01-27
git-vendor
Manages vendored code from external repositories with tracking and update
capabilities. Configuration is stored in a .gitvendor file that maps local
directories to their upstream git repositories.
Vendored directories can be checked for updates, diffed against upstream, and
updated in place. Supports vendoring entire repositories or specific
subdirectories from the source repository.
Last Updated 2026-01-27
is-alive
Network connectivity checker with DNS resolution and ICMP ping or TCP port
testing. Resolves hostnames using a configurable nameserver (default 1.1.1.1)
and tests connectivity via ping or TCP connection to a specific port.
Supports wait modes to poll until a host comes online or goes offline, with
configurable delay between checks and optional timestamps. Exits with success
when the desired condition is met or failure on timeout.
Last Updated 2026-01-27
monit-notify
Sends Slack notifications when a Monit service changes status. Queries the
Monit HTTP endpoint, compares service states against the previous run, and
sends notifications for any changes.
Designed to be run periodically via cron. Skips operation if not online or
Monit is not running.
Last Updated 2026-01-27
mp3-info
Displays MP3 file metadata including tags, duration, bitrate, and sample rate.
Can process individual files or directories, with optional recursion into
subdirectories and summary statistics.
Long format shows detailed tag information in a formatted table, whilst default
format provides a compact single-line output. Automatically skips hidden files
and non-MP3 files.
Last Updated 2026-01-27
mtime-filename
Encodes file modification times into filenames or decodes them back. Encoding
prepends `mtime(timestamp)` to the filename, whilst decoding extracts the
timestamp, sets the file's modification time, and removes the prefix.
Useful for preserving original modification times when editing files - encode
before editing, then decode after to restore the original mtime.
Last Updated 2026-01-27
opt
Installs and manages tools in /opt from PyPI, NPM, or GitHub repositories with
automatic dependency handling. Creates Python virtual environments using uv,
builds Rust projects, and manages symlinks in /usr/local/bin.
Supports configurable update frequencies (weekly, monthly, always) and tracks
versions. Automatically detects tool types and applies appropriate build steps
including Makefile targets, cargo builds, and custom opt-install scripts.
Last Updated 2026-01-27
shorten-url
Generates shortened URLs using the s.glob.au URL shortening service. Takes a
URL as input and returns a shortened version for easier sharing.
Last Updated 2026-01-27
sleep-random
Sleeps for a random duration before executing a command. The sleep time is
randomly chosen between 0 and the specified maximum seconds.
Useful for avoiding load spikes when running multiple scheduled tasks
simultaneously via cron. Preserves the command's exit code.
Last Updated 2026-01-27
slideshow
Creates slideshows by finding image and video files and playing them in mpv.
Scans directories for media files, applies optional filtering and sorting, then
launches mpv to display them in sequence.
Supports various sort orders (shuffle, name, time, size), filename filtering
(AND or OR matching), limiting to images or videos only, and configurable image
display duration. Can also list matching files instead of playing them.
Last Updated 2026-01-27
wait-exists
Waits for files or glob patterns to exist or not exist, with optional timeout.
Polls every second until all specified files exist, exiting successfully when
the condition is met or failing on timeout.
Supports glob patterns for matching multiple files and can wait for deletion
instead of creation using the --not flag. Useful in scripts for waiting on
file-based synchronisation or completion signals.
Last Updated 2026-01-27