The universal remote for your media files.
Stop memorizing complex commands. Compress, convert, and inspect any media file using the same simple pattern.
100% free, open-source, and zero telemetry. Everything runs locally on your machine.
| macOS | Linux |
|---|---|
| Full featured ✅ | Full featured ✅ |
uts-demo.mp4
Do you remember the exact ffmpeg flags to compress a video? What about pngquant for PNGs, or ghostscript for PDFs?
Every time you need to do something with a media file, you end up Googling, copy‑pasting, and praying the command works. It's a massive waste of time.
uts ends that chaos. It wraps all your everyday media operations into one dead‑simple command pattern:
uts <category> <action> <input...> [flags]That’s it. The same pattern works for images, video, audio, PDFs, and archives. Install uts, install your encoders, and you'll never look up a media‑related command again.
Here are a few real‑world examples that show how uts saves you time:
# Compress image with a low-quality (small size) preset
uts image compress screenshot.png -q low
# Convert HEIC photo to JPG
uts image convert photo.heic --to jpg
# Compress video in-place (replaces original recording)
uts video compress recording.mp4 -i
# Downscale a 4K recording to 1080p while compressing
uts video compress recording.mov --max 1920
# Convert MOV video to MP4 (stream copy when the codecs fit: instant and lossless)
uts video convert clip.mov --to mp4
# Convert a screen recording to an animated GIF, 640px wide
uts video convert demo.mp4 --to gif --max 640
# Combine frames into one animated GIF
uts image convert frame-*.png --to gif --animate
# Convert multiple pages to high-res PNGs
uts pdf convert slides.pdf --to png -q high
# Stitch/Convert multiple images into a single PDF
uts pdf convert page1.png page2.png page3.jpg --to pdf
# Compress WAV audio to MP3 using high preset quality
uts audio convert track.wav --to mp3 -q high
# Compress PDF document to a medium-res profile
uts pdf compress draft.pdf -q medium
# Compress every image in a folder tree, using every core
uts image compress ./photos -r -j 0
# Compress folder to a zstd tarball archive
uts archive compress ./project/ --algorithm zstd
# Inspect media file details and get format-specific recommendations
uts info recording.mp4Forget the command salad
uts replaces the complicated syntax of ffmpeg, pngquant, jpegoptim, ghostscript, tar, and many others with a single, memorable pattern.
Quality, simplified
Stop fiddling with CRF values, DPI, and bitrates. uts gives you three intuitive presets via the -q (or --quality) flag:
| Preset | When to use |
|---|---|
high |
Archival, printing, or when quality is paramount |
medium |
Everyday use – a good balance of size and quality |
low |
Quick sharing, tiny files, maximum compression |
You can also pass a raw numeric value (e.g., -q 75) for fine‑grained control.
Your data, your machine
No cloud, no telemetry, no backdoors. uts is just a smart dispatcher that runs the right local tools (like ffmpeg) on your own hardware.
# 1. Install uts (Homebrew is recommended)
brew install y3owk1n/tap/uts
# 2. Install the underlying tools (example for macOS)
brew install ffmpeg imagemagick pngquant jpegoptim ghostscript
# 3. Start using it!
uts image compress my-photo.jpg -q lowFor complete installation instructions and dependency details, see the Installation Guide.
uts organizes all operations into clear categories and actions:
| Category | Actions | Supported formats (partial) |
|---|---|---|
image |
compress, convert |
png, jpg, webp, gif, heic, avif, tiff, bmp |
video |
compress, convert |
mp4, mov, mkv, avi, webm, m4v, flv, wmv, gif |
audio |
compress, convert |
mp3, flac, aac, wav, m4a, opus, ogg, wma |
pdf |
compress, convert |
pdf, jpg, png |
archive |
compress, extract, list |
zip, tar, tar.gz, tar.zst, tar.xz, tar.bz2, tar.br |
uts is not a re‑encoding engine – it's an intelligent orchestrator. It detects which command‑line tools you already have installed and chooses the best one for each job.
┌───► [pngquant / optipng] (PNG compression)
├───► [jpegoptim] (JPEG optimisation)
uts image ───────►├───► [cwebp] (WebP conversion)
└───► [imagemagick] (other formats)
uts video ───────────► [ffmpeg] (video/audio processing)
uts pdf ─────────────► [ghostscript] (PDF compression)
uts archive ─────────► [tar / zstd / zip] (archiving)
You don't need to install all of them – uts will intelligently work with what you have.
- Batch processing: Pass files, directories, or quoted globs. A directory expands to the media files inside it, and
-r(or--recursive) walks the whole tree. - Dry‑run preview: Use
-n(or--dry-run) to print the exact commands that would run, without making any changes. - In‑place replacement: Use
-i(or--in-place) to overwrite the original file. A result that is not smaller than the original is never swapped in, and--backupkeeps the original as<name>.bak. - Big batches:
-j 0processes one file per CPU core, and--skip-existinglets you re-run an interrupted batch without redoing finished files. - Custom output directory: Use
-o(or--output) to specify where results are saved. - Resize while you compress:
--max 1920shrinks images and videos so the longest edge is at most that many pixels. It keeps the aspect ratio and never enlarges. - Lossless video conversion:
video convertcopies the streams into the new container whenever the codecs allow, somov → mp4takes a second and loses nothing. Pass-qto force a re-encode. - Scripting:
utsexits1when any file fails,--quietprints only warnings and errors,uts info --jsonemits machine-readable details, and-vlogs every external command it runs. The banner is only shown on a terminal, so piped output stays clean. - Shell completions:
uts completion zsh|bash|fishprints a completion script that also completes--toand--algorithmvalues. See the Installation Guide.
For a complete reference, check out the CLI Guide.
uts supports full color palette customization via environment variables. See the Configuration Guide for details.
- Installation – Detailed setup for all platforms.
- CLI Reference – Every command, flag, and exit code explained.
- Configuration – Color customization and environment variables.
- Development – Build tasks, testing, and release process.
- Contributing – Code of conduct, commit guidelines, and pull request workflow.
uts is written in pure Go with a clean, modular architecture. Contributions of all kinds are warmly welcomed.
If uts has made your life easier, please consider starring the repository on GitHub ⭐ – it means a lot to us.
MIT — see LICENSE.
Stop memorising. Start doing.
brew install y3owk1n/tap/uts && uts image compress screenshot.png -q lowMade with ❤️ by y3owk1n