Documentation

Using Cleaner

Quick start, the safety model, the full CLI reference, and where your data files live. For release notes see the changelog.

Quick start

  1. Pick a tool from the sidebar — Dashboard is a good first stop.
  2. Choose a folder and tweak the filters (extension, glob pattern, age, size).
  3. Hit Scan — this only previews matches, nothing is touched.
  4. Look over the results, deselect anything you want to keep, then hit Clean.

Six themes live in the header bar — Midnight is the default — and switching between them animates instead of snapping.

Install & uninstall

Requirements: Windows 10 or newer, 64-bit (x64). No runtime dependencies — it's a single native Rust binary.

Installer (recommended)

Grab Cleaner-Setup-<ver>.exe from the Releases page (or the Download button on the home page). It installs per-user with no admin prompt, adds a Start Menu shortcut, and registers a proper uninstaller.

Portable zip

Grab cleaner-v<ver>-windows-x64.zip instead, unzip anywhere — a folder, a USB stick — and run cleaner.exe. Data stays next to the exe.

Uninstalling

Settings → Apps → Cleaner → Uninstall, or "Uninstall Cleaner" in the Start Menu folder. It removes the whole program folder, deletes the scheduled task if you registered one, and then asks if you want the data folder gone too — say yes and there's genuinely nothing left.

Safety model

A cleaner deletes files, so every default is tuned to make the destructive path the deliberate one:

  • Dry run is on out of the box — nothing is deleted until you turn it off.
  • Deletion goes to the recycle bin by default; permanent delete is opt-in.
  • Every clean asks for confirmation first.
  • Optional 3-pass secure erase for files you really want gone.
  • A protected-paths list that's never scanned or deleted, period.
  • A persistent log records every operation.
Permanent delete and secure erase are irreversible. Review the preview list carefully before confirming a clean.

CLI reference

Run cleaner with no arguments to open the GUI. Pass a command to run headless — handy for scripting and Task Scheduler.

Scan commands (preview only)

CommandWhat it does
scan-systemScan the enabled system-clean targets
scan-custom <dir>Scan a folder with filters
scan-duplicates <dir>Find duplicate files
scan-large <dir>Find large files
scan-empty <dir>Find empty folders
scan-folders <dir>Folder-size breakdown

Clean commands (delete for real)

CommandWhat it does
clean-system [--yes]Clean enabled system targets
clean-custom <dir> [filters] [--yes]Clean a folder with filters
clean-duplicates <dir> [--yes]Keeps the first file in each group
clean-large <dir> [--min-mb N] [--yes]Clean files above a size threshold
clean-empty <dir> [--yes]Remove empty folders

Filters & flags

FlagMeaning
--ext a,b,cExtensions (default: tmp,log)
--pattern <glob>Glob pattern, e.g. "*.tmp"
--older-than <d>Only files older than N days
--min-size <b> / --max-size <b>Size bounds in bytes (0 = no limit)
--min-mb <n>Large-file threshold in MB (default: 100)
--exclude <paths>Comma-separated directories to skip
--recursive / --hiddenInclude subdirectories / hidden files
--yesSkip the confirmation prompt
--permanentDelete permanently instead of recycle bin
--secure3-pass overwrite before deletion
--forceDelete for real even if dry run is enabled
--minimizedLaunch the GUI parked in the system tray
Clean commands honor your saved settings — if dry run is enabled in the app, clean-* commands only preview unless you pass --force.

Example — clean tmp/log files older than 30 days, recursively, no prompt:

cleaner clean-custom "C:\Users\you\Downloads" --ext tmp,log --older-than 30 --recursive --yes

Settings

Saved to cleaner_settings.json in the data folder.

FieldWhat it does
themeMidnight, Dark, Light, Nord, Dracula, or Solarized
dry_runPreview matches without deleting anything
use_trashSend deleted files to the recycle bin
recursiveInclude subdirectories in custom scans
include_hiddenInclude dotfiles and hidden folders
confirm_cleanAsk before deleting
secure_deleteOverwrite files 3 times before removing
protected_pathsFolders that are never scanned or deleted
dupe_excludesFolders the duplicate finder skips
custom_targetsYour own entries in the System Cleaner list

Where your files live

Everything the app saves goes in one folder:

  • Installed: next to the exe (...\Programs\Cleaner\) — the whole thing self-destructs on uninstall.
  • Portable: next to wherever you put cleaner.exe.
  • If the exe's folder is ever read-only, data moves to %APPDATA%\Cleaner\ automatically.

Inside you'll find cleaner_settings.json, cleaner_history.log, a reports\ folder for exports, and a README.txt that explains each one. The About tab has an "Open data folder" button if you ever want to look.

Building from source

You'll need Rust. Then:

# clone and build
git clone https://github.com/w0wzahh/cleaner.git
cd cleaner
cargo build --release

# binary lands at target\release\cleaner.exe

To build the installer you'll also need Inno Setup 6, then run ISCC.exe installer.iss — the setup lands in dist\.