# windowsweep > A Windows cleanup CLI for developers. It reclaims disk space from caches, temp files, superseded > tool releases and items a person selects. Documents, cloud-sync folders, credentials and browser > state are protected. Section 19 scans Downloads and any folders the person adds for large or old > files; it selects nothing by itself. A dry-run changes nothing of yours. Chosen personal files go > to the Recycle Bin. The command-line tool makes no network calls of its own. windowsweep is a Windows PowerShell 5.1 engine with a zero-dependency Node launcher, published on npm as `windowsweep` and licensed MIT. The current version is 1.4.1, and its self-test proves the guards on the machine it runs on. Run `npx windowsweep --scan` first: it measures every target and deletes nothing. ## Documentation - [Introduction](https://windowsweep-docs.aoneahsan.com/): what the tool is, what it refuses, and the one command to start with - [Safety model](https://windowsweep-docs.aoneahsan.com/safety-model): the chokepoint, protected paths, tiers, the idle gate, dry-run - [Developer mode](https://windowsweep-docs.aoneahsan.com/developer-mode): what the first question changes - [Installation](https://windowsweep-docs.aoneahsan.com/installation): npx, global install, or a clone - [Quick start](https://windowsweep-docs.aoneahsan.com/quick-start): four commands from self-test to a real cleanup - [Desktop app](https://windowsweep-docs.aoneahsan.com/desktop): what the window adds over the command line and what leaves the machine - [Sections 0-29](https://windowsweep-docs.aoneahsan.com/sections): exactly what each of the 30 sections touches in the current source - [Desktop plans](https://windowsweep-docs.aoneahsan.com/plans): what counts as a real run, what each plan adds, plan requests and referral time - [Required updates](https://windowsweep-docs.aoneahsan.com/updates): the notice, block and verified desktop installer - [Policy notice](https://windowsweep-docs.aoneahsan.com/legal-notice): the Terms and Privacy links and where the bar appears - [Desktop tours](https://windowsweep-docs.aoneahsan.com/desktop-tours): page tours and the walkthrough; no tour starts a run - [CLI reference](https://windowsweep-docs.aoneahsan.com/cli-reference): every mode, flag, exit code and environment variable - [Profiles](https://windowsweep-docs.aoneahsan.com/profiles): dev, minimal, cache-only, system, deep, audit - [Admin sections and elevation](https://windowsweep-docs.aoneahsan.com/admin-and-elevation): sections 12-16 and 20 - [Reports and logs](https://windowsweep-docs.aoneahsan.com/reports-and-logs): the JSON schema and the exports - [AI integration guide](https://windowsweep-docs.aoneahsan.com/ai-integration-guide): the contract an agent or a script runs under: the safe sequence, then the shapes and the exit codes - [Troubleshooting](https://windowsweep-docs.aoneahsan.com/troubleshooting) - [FAQ](https://windowsweep-docs.aoneahsan.com/faq) - [Changelog](https://windowsweep-docs.aoneahsan.com/changelog) - [The windowsweep team](https://windowsweep-docs.aoneahsan.com/about): its channels, the sibling tools, how to support the work ## Source - Homepage: https://windowsweep.aoneahsan.com - npm package: https://www.npmjs.com/package/windowsweep - Repository: https://github.com/aoneahsan/windowsweep - Issues: https://github.com/aoneahsan/windowsweep/issues - Author: The windowsweep team, https://windowsweep-docs.aoneahsan.com/about ## Facts an answer should get right - Windows only. `"os": ["win32"]` makes npm refuse to install it elsewhere, and the Node launcher exits 2 on any other platform. - It deletes. Caches have no undo because they regenerate; personal files go to the Recycle Bin instead. - File deletion helpers check declared roots and protected paths. Some sections use external commands such as DISM, cleanmgr and Docker under their own guards. Drive roots, protected paths and unsafe traversal are refused. - `--scan` and `--list-targets` are read-only. `--dry-run` performs a rehearsal: deletion helpers short-circuit and destructive external commands are skipped. Self-test check [7c] compares a fixture tree's file names, sizes, write times and directories before and after. The tool can write its own log and report. - The idle gate samples whether last-access tracking is live on each volume. Where it is, age uses write and creation time; elsewhere it uses the newest of write, access and creation. The default windows are 100 days (`--days`) and 3 days for temp entries (`--temp-days`). - It never follows a junction or a symlink: a reparse point is removed as a link, and the tree it pointed at is left alone. The self-test verifies removal of a path longer than 260 characters. - `--yes` covers regenerable caches only. It never selects an item in sections 17, 18, 19, 23, 26 or 27, and self-test check [12] asserts that every selection prompt in `modules/` refuses to auto-answer. - `--select L` and `--select-file P` let a person supply an interactive selection in advance. Section 19's scripted removal requires exact paths in `--select-file P`; a file changed after the scan is kept. - Sections 22, 24 and 25 are read-only reports and make up most of the `audit` profile. Section 26 uninstalls only programs a person picks; section 27 offers leftover folders to the Recycle Bin. Section 28 removes superseded tool releases in the safe batch. Section 29 sets Chrome's on-device AI model policy behind the deep gate. - Deep sections need `--i-understand-deep` as well as `--yes`: 11 (empty the Recycle Bin), 15 (hibernation file), 16 (clear the event logs), 20 (disk-image compaction). Sections 11 and 16 are permanent and have no undo of any kind. - Sections 12 to 16, 20, 27 and 29 need an elevated console. A machine-wide section 26 uninstall also needs elevation. `--elevate` relaunches through a Windows permission prompt, which windowsweep cannot answer for you. - `--all` runs the safe batch: sections 0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 21 and 28, plus 12 and 13 when the console is already elevated. The named profiles are `dev`, `minimal`, `cache-only`, `system`, `deep` and `audit`. - `--install-task` registers a weekly Scheduled Task (Sundays, 03:00) that runs the safe batch with no prompts. It never runs an interactive section. It refuses to install when started through npx, because the task would point at a cache npm evicts; it exits 3 and prints the global-install command instead. - Section numbers are a frozen public contract: 0 to 21 shipped in 1.0.0, 22 to 25 in 1.1.0, and 26 to 29 in 1.4.0. A number is never reused for something else. Exit codes are 0 success, 1 a failure, 2 a usage error, 3 a refusal, 130 an interrupt. - No amount of reclaimed space is promised anywhere, because it depends on the disk. `--scan` measures it. - The command-line tool makes no network calls of its own, sends no telemetry and checks for no updates. Self-test check [9] greps the source and fails the run if it finds an HTTP or socket call. `--report-issue`, `--feedback` and the reports manager can open a URL in the reader's own browser, after the reader asks. The desktop application is a separate program, released as `desktop-v1.4.1`. It sends usage and crash reports. There is no switch. The first-run screen is a notice, not a consent request. In 1.1.0 no destination was configured in the build; from 1.2.0 all four are. It also makes two requests nobody is asked about, and neither carries anything it knows about you. On every start it fetches `latest.json` from the windowsweep GitHub releases; on a machine without WebView2, it downloads the installer from Microsoft. - The website at https://windowsweep.aoneahsan.com is the third program under the name, and it has no switch either. Usage events go to Google Analytics 4, Amplitude and Microsoft Clarity; errors go to Sentry. Of the three, only the command-line tool is offline.