Skip to content
Duster

One binary for Windows 10 and 11, no dependencies

Your drive,swept clean.

A single-binary Windows CLI that cleans caches, purges dev artifacts, and shows what's actually eating your disk. Every destructive command previews first.

Install with PowerShell

irm https://raw.githubusercontent.com/Nur-Adnan/Duster/main/scripts/install.ps1 | iex

du clean
Scanning34 categories, 12.4 GB found

Commands

One tool, thirteen jobs

Five of the thirteen. Run du --help for the rest.

du clean

Sweeps 34 cache categories across the OS, browsers, and dev tools.

du analyze

Drills into any folder to find what's actually eating disk space.

du purge

Hunts down stray node_modules, target, and .gradle folders.

du doctor

Runs ten health checks and tells you exactly what's misconfigured.

du status

A live dashboard for CPU, RAM, disk, network, and thermals.

Inside a scan

Every delete is checked before it happens

Duster resolves every path through the same safety layer: symlinks are never followed, OneDrive placeholders are skipped during cleaning instead of forced online, and protected system folders are refused outright.

Three paths enter the same safety layer. Only one of them comes out the other side.

Path validated

Every target is normalized and checked first

Symlink never followed

Links and junctions are unlinked, never walked

C:\Users\you\Projects\link → D:\data

Skipped: link not followed

OneDrive placeholder skipped

Cloud-only files are never pulled down

Protected folder refused

System folders and Windows.old stay put

C:\Windows\System32\drivers

Refused: protected

Dry-run preview

Nothing moves without --yes or a confirm

Operation logged

Each action lands in operations.log

Recycled or deleted

Recycle Bin where the command offers it

Through every gate

%LOCALAPPDATA%\Temp\*.tmp

Removed, logged

Preview before delete

Every destructive command takes --dry-run. Nothing is removed without --yes or an explicit confirm.

Logged, not silent

Every deletion is recorded in a local operations log with what it freed, so you can audit what happened.

Reclaimed space

What a first run tends to find

Numbers from real machines that hadn't been cleaned in a while.

Local Disk (C:)

11.3 GB reclaimable

8 categories on a first run

Deployments

Runs on your terms

A one-off PowerShell install or a pinned binary in CI. Same tool, same safety rules.

du clean

[i] System scan complete. Ready for cleanup.

CategorySize
Browser caches3.1 GB
Temporary files2.9 GB
Windows Update cache1.9 GB
Thumbnail cache310 MB
Windows error reports184 MB
Delivery Optimization612 MB
Recycle Bin650 MB

4 selected8.2 GB

Up and down arrowsmovespaceselectenterclean

Interactive

Launch the TUI and step through categories, drivers, and startup apps from the keyboard.

  • Bubble Tea terminal UI
  • Live system dashboard
  • Category checklist with previews
  • Keyboard-only navigation
PowerShell
PS C:\dev> du purge --dry-run --json{  "scanned_path": "C:\\dev",  "total_found": 3,  "total_size_bytes": 2903457792,  "artifacts": [    {      "path": "C:\\dev\\web\\node_modules",      "name": "node_modules",      "type": "node_modules",      "framework": "Node.js",      "size": 1503238553,      "selected": true    },    { … }, { … }  ]}PS C:\dev> $plan = du purge --dry-run --json | ConvertFrom-JsonPS C:\dev> $plan.artifacts.namenode_modules
target
.gradle

Scripted

Pipe it into CI, a scheduled task, or your own tooling.

  • --json output for scripts and CI
  • --yes for non-interactive runs
  • Headless when output is piped

Automation

Built to be scripted

Most commands emit structured --json, so you can wire Duster into a scheduled task or a CI health check without guessing at its behavior.

What a scheduled run looks like

  1. Task Scheduler

    Daily at 03:00, signed in or not.

  2. du optimize --yes --json

    Runs headless. No prompts, no window.

  3. report.json

    {"total_reclaimed_bytes": 734003200"admin_elevated": false"timestamp": "2026-09-24T03:00:04Z"}
  4. Exit code 0

    The scheduler logs 0x0. A failed task exits 1.

  • Structured --json output
  • Deterministic exit codes
  • Works headless over SSH or RDP
du --help
  C:\>du

      /   ______   _    _   _____  _______  ______  _____   │
     /   |  __  \ | |  | | / ____|__   __| |  ____||  __ \  │ System Maintenance CLI v1.2.0
    /    | |  \  \| |  | || (___    | |    | |__   | |__) | │ Keep your system clean. Keep it running smooth.
   /_    | |  |  || |  | | \___ \   | |    |  __|  |  _  /  │
  \--/   | |__/  /| |__| | ____) |  | |    | |____ | | \ \  │
  /__/   |______/  \____/ |_____/   |_|    |______||_|  \_\ │

  ────────────────────────────────────────────────────────────────────────────────

  DESCRIPTION
    Duster (du) is a powerful, Windows-native command-line cleaning
    and optimization utility designed to reclaim disk space, uninstall software remnants,
    and improve overall system responsiveness.

  USAGE
    du [flags]

  AVAILABLE COMMANDS
    ▪ analyze      Interactive TUI disk space explorer and visual analyzer
    ▪ benchmark    Benchmark scan speed, delete speed, memory, goroutines, and JSON engine
    ▪ clean        Deep clean system temp files, prefetch, browser caches, and error logs
    ▪ completion   Generate the autocompletion script for the specified shell
    ▪ doctor       Diagnose Windows environment, privilege, permission, and terminal compatibility
    ▪ installer    Find and remove large installer files
    ▪ optimize     Optimize PC performance (flush DNS, SSD trim, clean caches)
    ▪ purge        Find and clean developer build artifacts recursively to reclaim space
    ▪ remove       Uninstall Duster and delete all configuration files and logs
    ▪ status       Real-time system health dashboard and live resource monitor
    ▪ uninstall    Interactive application uninstaller and remnants clean sweeper
    ▪ update       Check and update Duster to the latest version
    ▪ vdisk        Shrink WSL and Docker virtual disks
    ▪ verify       Audit protected paths, symlink guards, dry-runs, registry safety, and self-integrity

  FLAGS
    ○ -h, --help      help for du
    ○ -v, --version   version for du

  Use du [command] --help for more information about a command.
Real output, captured from the actual binary.

At scale

One executable, every workstation

No installer service, no telemetry endpoint, no dependency to patch across a fleet.

Fleet lifecycle

  1. 1Deploy
  2. 2Schedule
  3. 3Verify
  4. 4Report
  5. 5Update

After Update, the cycle starts again at Deploy.

No runtime

CGO disabled, statically linked. Copy the binary and run it.

Verified releases

SHA-256 checksums and build-provenance attestations on every release.

Auditable

Every clean, purge and uninstall is recorded, with its outcome, in a local operations log.

Self-updating

Checks GitHub releases and rolls back if swapping the binary fails.

Release pipeline

Shipped the way it's built

Every change runs these gates, and the Windows smoke and end-to-end tests run before each release.

Release gates

7 of 8 stages live

  1. CIgo test, every change, passed
  2. Vetvet + staticcheck, every change, passed
  3. Fmtgofmt, every change, passed
  4. Sign, configuring, not yet live
  5. Hashsha256 + attestation, releases, passed
  6. Tagsemver release, passed
  7. SmokeWindows runner, before release, passed
  8. E2Edu.exe in ConPTY, before release, passed

Release run

#214Branch main
  • gofmt, go vet, staticcheckdone
  • Windows cross-compiledone
  • Checksums + provenance attestationdone
  • Authenticode signing (SignPath)configuring

3 of 4 jobs done, 1 configuring

FAQ

Questions worth answering upfront

No. Most commands run as a normal user. A handful of operations (prefetch cleanup, drive optimization, DISM component-store cleanup) need elevation, and Duster will tell you when it's blocked instead of failing silently.