Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/xcoder-es/media-cleaner-pro/llms.txt

Use this file to discover all available pages before exploring further.

MediaCleaner Pro ships as a single self-contained native binary. There is no runtime to install, no Docker daemon to manage, and no Node.js or Python environment to configure. Download the binary for your platform, place it in a directory, and run it — the embedded web UI and all processing logic are bundled inside the executable itself.

Download

Grab the latest release from the Releases page and choose the file that matches your platform:
PlatformFile
Windows x86_64mediacleaner-pro-windows-x86_64.exe
macOS Apple Siliconmediacleaner-pro-macos-aarch64
macOS Intelmediacleaner-pro-macos-x86_64
Linux x86_64mediacleaner-pro-linux-x86_64
The binary is entirely self-contained — the frontend UI is compiled and embedded directly inside it. No separate web server, npm install, or asset directory is needed.

First Run

After downloading, mark the binary as executable and run it from your terminal:
chmod +x mediacleaner-pro-linux-x86_64   # or mediacleaner-pro-macos-aarch64, etc.
./mediacleaner-pro-linux-x86_64
You can rename the binary to mediacleaner-pro for convenience:
mv mediacleaner-pro-linux-x86_64 mediacleaner-pro
chmod +x mediacleaner-pro
./mediacleaner-pro
macOS Gatekeeper: Because the binary is not code-signed, macOS will block it on the first launch with a message saying it “cannot be opened because it is from an unidentified developer.” To bypass this, right-click (or Control-click) the binary in Finder and select Open, then confirm in the dialog. Subsequent launches will work normally.

What Gets Created on First Run

On the very first run, MediaCleaner Pro bootstraps its own working directory. In the same folder as the binary you will find:
PathPurpose
.envConfiguration file, pre-populated with sensible defaults
data/source/Drop the images you want to process here
data/output/Organized output — duplicates, categories, and quality rankings appear here after a run
mediacleaner.dbSQLite database that tracks pipeline state between runs
You do not need to create any of these by hand. Edit .env if you want to point SOURCE_DIR or DEST_DIR at directories outside the binary’s folder.

Configuration

The .env file created on first run contains all available settings:
# Server
SERVER_HOST=127.0.0.1
SERVER_PORT=8080

# Paths
SOURCE_DIR=./data/source
DEST_DIR=./data/output

# Processing
HAMMING_THRESHOLD=4       # Perceptual similarity threshold (0–64, lower = stricter)
MIN_WIDTH=100             # Minimum image width in pixels
MIN_HEIGHT=100            # Minimum image height in pixels
WORKER_THREADS=0          # 0 = use all available CPU cores

# Logging
RUST_LOG=info
Edit the file in any text editor and restart the binary to apply changes.

Open the Web UI

Once the binary is running, open your browser and navigate to:
http://127.0.0.1:8080
From the UI you can browse source directories, configure the pipeline sensitivity, start or pause a processing job, and watch real-time progress via the built-in SSE log stream.

Running as a Background Service (Linux)

For headless servers or always-on workstations, you can manage MediaCleaner Pro with systemd so it starts automatically on boot and restarts on failure. Create a unit file at /etc/systemd/system/mediacleaner.service:
[Unit]
Description=MediaCleaner Pro
After=network.target

[Service]
Type=simple
User=your-username
WorkingDirectory=/opt/mediacleaner
ExecStart=/opt/mediacleaner/mediacleaner-pro
Restart=on-failure
RestartSec=5
EnvironmentFile=/opt/mediacleaner/.env

[Install]
WantedBy=multi-user.target
Then enable and start the service:
sudo systemctl daemon-reload
sudo systemctl enable mediacleaner
sudo systemctl start mediacleaner
Check the live logs with:
sudo journalctl -u mediacleaner -f

Build docs developers (and LLMs) love