Skip to content

Releases: AliHamza-Coder/Crush

v2.5.0 — Arrange by Type & Better Video Reliability

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 14 Aug 04:27

See CHANGELOG.md for details.

v2.4.0 — Favicon Generator & Quality Improvements

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 12 Jul 18:35

✨ What's New in v2.4.0

🆕 Favicon Generator

Generate 16×16 and 32×32 SVG favicons directly from any image — right from the interactive menu. Perfect for websites and web apps.

🎬 Much Better Video Quality

  • CRF 15 at default q85 (was CRF 21) — dramatically reduces blocky artifacts
  • In-place compression preserves audio — uses -c:a copy instead of re-encoding to 128k AAC
  • Audio extraction now reliable-map a:0 ensures full-duration extraction (no more "2 min video → 20 sec audio")
  • Higher audio bitrate — 192k AAC for format conversions (was 128k)

🔧 Bug Fixes

  • Flags after path now work: crush ./dir/ -f webp -q 90 is finally supported
  • Windows rename fixed: No more "Access is denied" when compressing in-place
  • CLI audio extraction: crush . -f mp3 now works on video files
  • alac support: Added to conversion tables for full codec compatibility
  • Help flag cleanup: --help exits cleanly without spurious error messages

📦 Download

  • Windows: crush.exe — portable, no installer needed (just put it in your PATH)
  • FFmpeg: Run crush install to auto-install FFmpeg alongside the app

v2.3.1

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 12 Jul 17:20

v2.3.1 (2026-07-12)

Added

  • Quality presets: Choose 90 (high quality) or Custom (enter any value 1-100) in the quality selector
  • Export Audio from Video: Rewritten with dedicated format picker — pick from mp3, wav, flac, ogg, aac, opus, m4a, alac. Original video is always preserved.

Fixed

  • Audio encoder bug: flac and alac formats no longer silently encode as MP3 — correct codecs are used
  • Video deletion fixed: Audio extraction no longer deletes the original video file

v2.3.0 (2026-07-12)

Changed

  • promptuicharmbracelet/huh: Replaced the unmaintained promptui library with actively-maintained huh (built on Bubble Tea). Arrow-key menus now work on ALL terminals — Windows cmd, PowerShell, Windows Terminal, Linux, macOS. No more silent "Goodbye!" when the terminal doesn't support the old library.
  • Go 1.21 → 1.23 required by huh.

Added

  • Numbered fallback: If the interactive menu fails for any reason (non-interactive terminal, CI, etc.), automatically falls back to a simple number selection (1) All files, 2) Images, etc.).
  • Missing backup package: Backup functions (CreateDir, CopyFile) now included in the source tree.

Fixed

  • Banner visual bug: Version line was missing the closing border — now properly aligned.
  • Consistent input handling: install.go now uses ui.ReadInput() instead of raw fmt.Scanln.

v2.3.0

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 12 Jul 16:50

v2.3.0 (2026-07-12)

Changed

  • promptuicharmbracelet/huh: Replaced the unmaintained promptui library with actively-maintained huh (built on Bubble Tea). Arrow-key menus now work on ALL terminals — Windows cmd, PowerShell, Windows Terminal, Linux, macOS. No more silent "Goodbye!" when the terminal doesn't support the old library.
  • Go 1.21 → 1.23 required by huh.

Added

  • Numbered fallback: If the interactive menu fails for any reason (non-interactive terminal, CI, etc.), automatically falls back to a simple number selection (1) All files, 2) Images, etc.).
  • Missing backup package: Backup functions (CreateDir, CopyFile) now included in the source tree.

Fixed

  • Banner visual bug: Version line was missing the closing border — now properly aligned.
  • Consistent input handling: install.go now uses ui.ReadInput() instead of raw fmt.Scanln.

v2.2.6

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 12 Jul 16:17

v2.2.6 (2026-07-12)

Fixed & Improved

  • Robust Backend Error Handling: FFmpeg stderr output is now captured during failure. The exact error reason (e.g., Unknown encoder, Invalid data) is parsed and printed next to the failed file name.
  • Fully Integrated PromptUI Library: Built-in, cross-platform arrow-key selection in all menus (no typed inputs required for menus).
  • Up/down arrow key selection working identically on Windows, Linux, and macOS consoles.
  • PNG compression handling dynamically mapping quality to standard compression levels.
  • PowerShell installer download failure — added TLS 1.2 and -UseBasicParsing to Invoke-WebRequest in install.ps1.

v2.2.5

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 12 Jul 14:49

v2.2.5 (2026-07-12)

Added

  • Arrow key selection for all prompts — use ↑/↓ to choose mode, quality, backup, and format (previously only format used arrow keys)
  • New SelectQuality helper — pick quality from a curated list (Balanced, Smaller, Max, Lossless) with arrow keys instead of typing a number
  • Safe in-place compression — writes to .crush_tmp file first, then renames to target (prevents data corruption if interrupted)
  • Backup file auto-cleaned on failure — no wasted disk space from failed processing

Fixed

  • "★ recommended" label duplication bug in Windows arrow key menu
  • Backup copies no longer orphaned when compression fails

Changed

  • All interactive prompts now use arrow key selection (mode, quality, backup yes/no, format)
  • First list option now shows (default) label for clarity
  • Code quality improvements in processFile and runProcess

v2.2.4 — Fix: update now actually works

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 12 Jul 14:20

v2.2.4 (2026-07-12)

Fixed

  • crush update now actually works — the batch file renames the running exe to \crush.exe.old\ first, THEN moves the new file in, THEN deletes the old one.
  • Windows does not allow overwriting a running executable. The old code tried \move /y new.exe old.exe\ which silently failed. Now it renames first.

How to get this fix

If you're on v2.2.3, run \crush update\ again — it should now work properly.

v2.2.2 — Fix: duplicate files, format menu, original cleanup

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 12 Jul 13:58

v2.2.2 (2026-07-12)

Critical fixes

Files no longer duplicated after conversion
The analyse scanner was recursively walking into backup/ directories, showing each original twice (once in current dir, once in backup). Now backup* and originals_* directories are skipped.

Originals deleted after conversion (when backup enabled)
Previously the original file stayed in the current directory after conversion — backup was a copy. Now: backup has a copy → original is deleted → only the converted file remains.

Format selection menu

Instead of typing a format name, pick by number:

  • Images: [1] webp [2] avif [3] jpg [4] png [5] gif
  • Videos: [1] mp4 [2] webm [3] mov [4] avi [5] mkv [6] gif
  • Audio: [1] mp3 [2] flac [3] ogg [4] wav [5] aac [6] opus [7] m4a [8] alac

You can still type a format name directly if you prefer.

v2.2.1 — Reliable Uninstall, Version Fix

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 12 Jul 13:26

v2.2.1 (2026-07-12)

Fixed

  • Uninstall now works reliably — replaced batch file with PowerShell (old batch file ran in same console window and died before deleting)
  • Confirmed \crush -v\ and \crush --version\ print version correctly
  • Added _crush_*\ temp files to .gitignore

Why crush still ran after uninstall (v2.2.0)

The old uninstall used a batch file that ran in the same console window. When \os.Exit(0)\ closed the window, the batch file was killed before it could delete the .exe. Now PowerShell runs in a hidden, independent process — waits 2 seconds for CRUSH to exit, then deletes the binary.

v2.2.0 — Compress/Convert Modes, Extract Audio

Choose a tag to compare

@AliHamza-Coder AliHamza-Coder released this 12 Jul 13:19

v2.2.0 (2026-07-12)

Two Modes

When you select files, CRUSH now asks:

  • %5BC%5D Compress — shrink file size, keep same format
  • %5BF%5D Convert — change to another format (e.g., jpg → webp)

Extract Audio from Video

New %5BX%5D menu option to pull audio from video files:

  • mp4 → mp3, mov → flac, webm → ogg, etc.

Quality Recommendations

Before each quality prompt, a table shows recommended values:

  • Images: 85★ (balanced), 75 (smaller), 100 (lossless)
  • Videos: 85★ (CRF 23), 70 (CRF 28), 100 (CRF 18)
  • Audio: 85★ (VBR ~192k), 60 (VBR ~128k), 100 (max)

Smart Defaults

  • Empty quality = lossless/best quality
  • Empty format = keep original (compress mode only)

Other Fixes

  • Fixed .gitignore pattern /crush (was blocking internal/crush/ package)
  • Added -vn flag for proper audio extraction from video
  • Added crush* temp scripts to .gitignore