windowsweep collects usage data and crash reports to improve the product for everyone.

There is no switch. This page is a notice rather than a consent request, and nothing on it asks you for an answer. Three programs carry the windowsweep name, and they do not behave alike: the desktop window and this website send analytics, and the command line sends nothing at all.

What each of them sends

The command line sends nothing.

  • No telemetry.
  • No update check.
  • No network calls of any kind. Self-test check [9] greps the source for HTTP and socket calls and fails the build if it finds one. Run npx windowsweep --self-test to watch it go past.

Session logs, reports and crash bundles are written to disk and stay there. It opens your browser only when you ask it to: --report-issue, --feedback, or a link out of the reports manager.

The desktop window and this website send analytics.

  • Google Analytics 4 records which pages you opened and which controls you pressed.
  • Amplitude records the same events, in a second analytics tool.
  • Microsoft Clarity records a session replay: the page as you used it, with every piece of text masked. It sees where you moved and what you clicked. It does not see what any of it said.
  • Sentry receives a stack trace when something breaks, with file paths stripped out, because a stack trace from your machine would otherwise carry the name of the folder it ran in.
  • There is no switch for this and no setting to find. Not in the desktop window either. This is how windowsweep gets better for the next person who runs it.

If you want a cleanup that transmits nothing at all, that is the command line, and it runs the same engine.

What is never part of an analytics event

The desktop window knows a great deal about your disk. None of it leaves. This website knows none of it: it is a page in a browser, and it never reads your disk. A run summary carries the sections it ran, how long it took, and two byte figures: the bytes it reclaimed, and the bytes a dry-run estimated.

  • A file path or a folder name

    Not the ones it removed, not the ones it refused, not the ones it skipped. This website has none to send in the first place.

  • A drive label or a machine name

    Or your Windows user name.

  • The contents of anything

    The engine reads sizes and timestamps. Nothing it reads is transmitted anywhere by any part of the product.

  • A scan result

    What the map shows you is computed on your machine and stays there.

  • Anything you type into the contact form

    The subject and the message are stored, and they are stored so the message can be read and answered. They are never sent to any of the four tools above.

If you sign in

Signing in is optional and it is Google. One account covers the desktop window and this website, so what follows is true of both. The window opens your normal browser rather than a panel inside the app, which is how you get to see the address bar you are typing into. What it uploads, in full:

The whole of it.
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
—bytes reclaimed, and bytes a dry-run estimated

Two more things are stored. The email address you signed in with is kept, so the account page can show you which account you are looking at and a message has somewhere to be answered. Anything you send through the contact form is kept in full, subject and message both. Neither reaches Google Analytics 4, Amplitude, Clarity or Sentry.

You can read every one of those values back on your account page, and delete the account from there. Deleting removes the sign-in itself and everything stored against it: your profile, the settings the desktop app has synced, your run summaries, and the messages you have sent. It happens immediately and it cannot be undone.

What stays is not yours: when an admin handles one of your messages, that action is logged with the message's id, its status and who handled it. It carries none of your words. Nothing on your machine is touched.

Plans and payments

From desktop version 1.4.0, your account stores payment, grant and team records, including their dates and where each grant came from. Your current plan is worked out from those records, not stored as a separate plan field.

When checkout opens, Polar (polar.sh) will take payments for windowsweep’s plans as the merchant of record. It will collect what it needs to take the payment and the tax, under its own privacy policy. windowsweep never receives your card number.

For each payment Polar takes, windowsweep will keep one record: the plan, the period it covers, the seat count, the amount, its status and Polar’s order number.

All purchases are final; windowsweep does not offer refunds. The terms say how a plan renews, ends and is cancelled.

If a bank or Polar returns a payment, the plan time that payment covered ends, and you are told by email.

While checkout is closed, a plan request stores the plan, the billing period, the seat count and any optional note you provide, and when you asked. Nothing is charged.

When checkout opens, the windowsweep team uses it once, to email you a link to pay, and the request closes.

What is kept in your browser

Three kinds of thing. None of them is behind a banner, because this site does not ask.

  • Your appearance settings

    The theme, the colour treatment and the other axes, read back before the page paints. That is why you do not get a flash of the wrong one on the way in.

  • Your sign-in session, if you signed in

    It is what stops a refresh signing you out. Signing out removes it.

  • An identifier for each analytics tool

    So a second visit is recognised as the same browser rather than as a new person.

You can read all of it yourself. Open your browser's storage inspector on this page and it is listed there under this site's own name.

Two requests that run without being asked for

On every start the desktop app fetches latest.json from the release page to see whether an update exists. On a machine with no WebView2, the installer downloads it from Microsoft. Neither request carries anything the app knows about you; both are ordinary downloads, so GitHub and Microsoft see them the way any website sees a visit.

If you would rather nothing left the machine at all

Then use the command line. It is the same engine the desktop window drives, and it runs the same thirty sections. It makes no network call: check [9] No network code greps every source file for HTTP and socket calls, and a hit fails the build. That is not a setting somebody can change for you later. It is a check that has to pass before the code ships.

npx windowsweep --scan measures what is reclaimable and deletes nothing.

A question about anything on this page goes to aoneahsan@gmail.com. The contact form on this site works too, though it needs an account first.