Version: 0.7.1
Changelog:
CHANGELOG.md(full project history and release notes)archive/ARCHIVE_INDEX.md(archive map and external archive-root policy)
This is a modular desktop suite for practical file workflows:
- Convert
- Compress
- Extract
- Metadata
- PDF / Documents
- Images / Audio / Video
- Archives
- Rename / Organize
- Duplicate Finder
- Storage Analyzer
- Checksums / Integrity
- Subtitles
- Presets / Batch Jobs
Advanced media modules now include:
- Images: resize to fit, export to a chosen format, and optional sharpen pass
- Audio: format conversion, sample-rate conversion, mono/stereo control, loudness normalization, and silence trimming
- Video: remux, trim clips, stream-prep presets, and thumbnail-sheet generation
Image conversion coverage includes:
- Standard raster formats such as PNG, JPG, WEBP, BMP, GIF, TIFF, and ICO
- Modern Apple/HEIF-family formats such as HEIC, HEIF, and AVIF when the bundled
pillow-heifplugin is available
This file is the combined README + How-To guide.
Installer behavior is configured to reduce duplicate installs and preserve upgrades:
- Reuses previous install directory automatically (
UsePreviousAppDir) - Hides directory chooser for upgrades (
DisableDirPage=auto) - Detects running app/updater instances via mutex and requests closing before install (
AppMutex) - Replaces existing installed files with the new version during upgrade
Runtime behavior:
- Main app is single-instance (one running copy at a time)
- Updater is also single-instance
Universal Conversion Hub (UCH) is designed as one desktop app with separate tools, instead of a single tangled converter view.
Core behavior:
- Queue-based processing for batch workflows
- Safe output conflict prompts (replace / rename / change location / cancel)
- Optional backend integrations for advanced formats
- Activity log for command/result visibility
- First-run setup, settings persistence, and update checks
Top tabs:
- Workspace
- Suite Plan
- Backends / Links
- Activity Log
Workspace now has a second navigation layer:
- Conversion
- Advanced
- Misc
Each of those category tabs contains the relevant module tabs for the current feature set.
First launch opens setup wizard so you can configure:
- Output folder
- Theme and window mode
- Update checks
- Optional backend prompt behavior
- Update manifest URL
After that, use:
File -> Settings
Settings page includes:
- Output path defaults
- Dark mode, fullscreen, borderless defaults
- Hover tooltip preference for advanced option explanations
- Applies to Convert, Compress, Storage Analyzer, Duplicate Finder, and Backends / Links
- High contrast mode, interface scaling, and reduced-motion startup behavior for improved accessibility
- Startup animation toggle + duration
- FFmpeg thread count (
0= auto) - Activity log line retention
- Update and backend prompt settings
- Security controls:
- confirm before opening external links
- require HTTPS for backend/update links
- require HTTPS for update manifest URLs
- allow/block local manifest files
- Open a module (example: Convert).
- Add files or a folder.
- Select valid options for the current queue type.
- Confirm output path.
- Run queue.
- Review output and Activity Log.
Convert queue behavior:
- Queue is limited to one source extension at a time.
- Target format list updates to valid outputs for the current source type.
Base app functions work without all backends, but advanced workflows improve when these are installed:
- FFmpeg + FFprobe
- Pandoc
- LibreOffice
- 7-Zip
- ImageMagick
Backends panel behavior:
- Detected backend path: click to open file location
- Missing backend: click to open install link
Use Settings -> Update manifest URL for app update checks.
You can also use the standalone updater executable (UniversalConversionHub_UCH_Updater.exe), which supports:
- Manifest URL
- Local manifest JSON file
- GitHub repo URL (checks latest release metadata/tags)
Default updater source:
https://github.com/Pugmaster04/Universal-File-Conversion
Updater security options include:
- HTTPS-only manifest/download URLs
- optional confirmation before opening download URLs
- SHA256 verification policy for downloaded update files
Example:
{
"latest_version": "0.7.1",
"download_url": "https://example.com/UniversalConversionHub_UCH.exe",
"sha256": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"notes": "Release notes here"
}Manual check:
Help -> Check for Updates
python modular_file_utility_suite.pybuild_suite_release.batOutputs:
dist\UniversalConversionHub_UCH.exedist\UniversalConversionHub_UCH_Updater.exeinstaller_output\UniversalConversionHub_UCH_Setup.exerelease_bins\UniversalConversionHub_UCH.exerelease_bins\UniversalConversionHub_UCH_Updater.exerelease_bins\UniversalConversionHub_UCH_Setup.exe
release_bins is the stable folder that always keeps the latest runnable app, updater, and installer binaries together.
chmod +x build_linux.sh
./build_linux.shLinux outputs:
dist/UniversalConversionHub_UCHdist/UniversalConversionHub_UCH_Updaterrelease_bins/UniversalConversionHub_UCHrelease_bins/UniversalConversionHub_UCH_Updater
Install Python dependencies:
python -m pip install -r requirements.txtThe log tracks:
- Executed commands
- Workflow progress
- File output mapping
- Errors
Retention is configurable in Settings (log_max_lines) to avoid unbounded growth.
- Use SSD output paths for faster batch writes.
- Install FFmpeg/FFprobe for media-heavy workflows.
- Tune FFmpeg threads in Settings:
0= backend default/auto- Higher values can increase speed and CPU usage
- Keep queues type-consistent.
Backend shows Not found:
- Install from Backends / Links tab
- Restart app
- Verify executable path exists
Wrong/limited conversion options:
- Queue may be extension-locked to a different source type
- Clear queue, add one known test file, then retry
No update results:
- Check manifest URL or GitHub repo URL
- Validate JSON keys and URL accessibility
- If using GitHub: publish a Release (recommended) or include
update_manifest.jsonin the repo
This repo uses automated historical snapshots:
tools/create_historical_snapshot.ps1.githooks/post-commit
Default external snapshot location:
%USERPROFILE%\\Documents\\Universal File Utility Suite Output\\Universal Conversion Hub Archives\\history\\v<version>\\<timestamp>_<reason>\\
Build script also runs snapshots:
- pre-build source snapshot
- post-build source + artifacts snapshot
Legacy imported archives are also stored in that external archive root, under:
legacy_universal_file_utility_suite
Override location:
- Set environment variable
UCH_ARCHIVE_ROOT
To enable local hooks in a clone:
git config core.hooksPath .githooksSettings file:
%LOCALAPPDATA%\UniversalConversionHubUCH\settings.json- Legacy fallback:
%LOCALAPPDATA%\UniversalConversionHubHCB\settings.json - Legacy fallback:
%LOCALAPPDATA%\UniversalFileUtilitySuite\settings.json - Updater settings:
%LOCALAPPDATA%\UniversalConversionHubUCH\updater_settings.json - Updater legacy fallback:
%LOCALAPPDATA%\UniversalConversionHubHCB\updater_settings.json - Updater legacy fallback:
%LOCALAPPDATA%\UniversalFileUtilitySuite\updater_settings.json
Default output root:
%USERPROFILE%\Documents\Universal Conversion Hub Output
- Use lawful personal workflows.
- Test on a small sample before large batch jobs.
- Keep backups for destructive operations.