Skip to main content

Desktop app


title: 'Desktop app' description: 'The windowsweep desktop window: what it adds over the command-line tool, what it collects, and the SmartScreen note on first run.' tags: [desktop, tauri, privacy, install]

Desktop app

The desktop app is a window over the same engine. It runs the bundled windowsweep.ps1 with --json --no-color and reads its section list from --list --json. It reimplements no cleanup logic: the chokepoint, the protected lists and every refusal are the ones the command line enforces. The two differ in what leaves the machine, and that has three answers.

What it adds over the command line

Nothing to the deletion behaviour. Everything to what you can see while it happens.

The catalogue becomes a table you can filter. A run shows the engine's own log as it arrives, beside a table of what each section reclaimed; the four sections that ask a person to choose get a picker. Most controls in Settings map to a flag the engine already has, so anything you set there you can also type.

What it does not do

It never raises its own privileges. Six sections need Windows to ask your permission first. Ask for one, and a second, elevated window runs only those sections and writes its own report, while this one waits unelevated. It does not remove the deep-section gate.

What leaves the machine

Three answers, because three different things are running.

The engine sends nothing, ever. No network calls at all, and a self-test check fails the build if one appears.

The window sends usage and crash reports, to improve the product for everyone. There is no switch. The first-run screen is a notice with one Continue. Four destinations - product analytics, behaviour analytics, session replay with every piece of text masked, and crash reports with file paths stripped out. In 1.1.0 no destination is configured in the build, so nothing has left the machine yet. That is a fact about this release, not a promise: it stops being true the day a key is added.

Two requests run without asking, and neither carries anything this app knows about you. On every start the app fetches latest.json from this repository's releases; on a machine with no WebView2, the installer downloads it from Microsoft.

Never sent: a file path, a folder name, a drive label, your user name, your machine name, or the contents of anything. A run summary is a count and a number of bytes.

Sign-in and sync

Optional, Google, and it opens your normal browser rather than a window inside the app, so you can see the address bar. What it uploads, in full:

Your settingsEach run summary
your preferences, and when you last changed themdate and duration
the developer answermode, dry-run, elevated
your email address and display namethe section numbers it ran
a last-seen timestampbytes reclaimed, bytes estimated, and an id

In 1.1.0 this is dormant: Google is not enabled on the backend project, and the Account screen reports sign-in as unconfigured.

Install it

Download the .msi or the .exe installer from Releases. The .exe installs for the current user and asks for no administrator rights; the .msi installs for every user, so Windows asks once. The engine ships inside the app: no separate PowerShell setup, and no Node.

Windows may warn you the first time you install this

The installer is not signed with a paid code-signing certificate, so Microsoft SmartScreen shows "Windows protected your PC" on first run. That is a statement about the certificate, not about the file.

Choose More info and then Run anyway. You can verify what you downloaded first: every release publishes a SHA-256 checksum for each installer, and a minisign signature the app's own updater checks. Neither is a code-signing certificate - they prove the file is the one that was built, not who built it. The source is public.

This note is here rather than hidden because meeting that dialog unexplained is worse than reading about it in advance.

Updates

The check runs on the splash screen. An update is offered rather than applied: Later, or Install and restart. If the check cannot reach the network, you get a note saying so, with Try again, and the app carries on without it.

Where it writes

Each run gets its own folder under %LOCALAPPDATA%\com.aoneahsan.windowsweep\runs\, holding that run's report and log. An elevated run writes a second report beside the first, because two windows each write their own.

See also: Safety model · Admin sections and elevation · Sections 0-25

Last Updated: 2026-09-08