Skip to content
y3owk1nPublic

About

Stop memorizing complex commands. Compress, convert, and inspect any media file using the same simple pattern.

Resources

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

0 watching

Forks

Repository files navigation

uts

The universal remote for your media files.

Stop memorizing complex commands. Compress, convert, and inspect any media file using the same simple pattern.

Go Version Latest Release License

100% free, open-source, and zero telemetry. Everything runs locally on your machine.

macOS Linux
Full featured ✅ Full featured ✅
uts-demo.mp4

Why uts?

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.


See It In Action

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.mp4

Say Goodbye to Tool Anxiety

Forget 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.


Getting Started

# 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 low

For complete installation instructions and dependency details, see the Installation Guide.


Powerful Abilities, Simple Commands

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

How Does It Work?

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.


Advanced Usage

  • 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 --backup keeps the original as <name>.bak.
  • Big batches: -j 0 processes one file per CPU core, and --skip-existing lets 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 1920 shrinks 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 convert copies the streams into the new container whenever the codecs allow, so mov → mp4 takes a second and loses nothing. Pass -q to force a re-encode.
  • Scripting: uts exits 1 when any file fails, --quiet prints only warnings and errors, uts info --json emits machine-readable details, and -v logs every external command it runs. The banner is only shown on a terminal, so piped output stays clean.
  • Shell completions: uts completion zsh|bash|fish prints a completion script that also completes --to and --algorithm values. See the Installation Guide.

For a complete reference, check out the CLI Guide.


Color Customization

uts supports full color palette customization via environment variables. See the Configuration Guide for details.


Documentation & Contributions

  • 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.


License

MIT — see LICENSE.


Stop memorising. Start doing.

brew install y3owk1n/tap/uts && uts image compress screenshot.png -q low

Made with ❤️ by y3owk1n

About

Stop memorizing complex commands. Compress, convert, and inspect any media file using the same simple pattern.

Resources

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages