Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

☀️ sunSweep (from the 2025 archive. rewritten and tested)

Fast and safe junk cleaner for Windows

sunCleaner banner


PowerShell Windows Categories Languages


English · Русский


English

Overview

sunSweep helps clean temporary files, caches, logs and other unnecessary data from Windows.

It runs directly from PowerShell and requires no installer or additional modules.

The interactive TUI provides keyboard navigation, category selection, cleanup statistics and an animated sun while scanning.

Tip

Run Dry Run Preview before cleanup to see what sunSweep can remove and how much space can be freed.


🚀 Quick Start

Download or clone the repository, open PowerShell in the project folder and run:

powershell -ExecutionPolicy Bypass -File .\sunSweep.ps1

Standalone

You can also run the single-file version:

powershell -ExecutionPolicy Bypass -File .\sunSweep.standalone.ps1

Or launch the latest standalone version directly from GitHub:

powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/lordofsunshine/sunSweep/refs/heads/main/sunSweep.standalone.ps1 | iex"

Important

Review remote scripts before running them through iex.


Features

Feature Description
Interactive TUI Keyboard navigation, checkboxes and a responsive terminal layout
Animated scan Rotating sun animation while sunSweep checks the system
13 cleanup categories System, browser, storage and development caches
Safety levels Every category is marked as safe, moderate or risky
Dry run Preview files and estimated freed space before cleanup
Automatic localization Russian for ru* system locales, English for other locales
Modular structure Cleanup categories are stored as independent PowerShell modules
CLI mode Scan and clean directly from terminals, scripts and automation
JSON output Machine-readable scan reports with --json
Persistent settings User configuration is stored in %APPDATA%\sunSweep\config.json
Exclusions Paths can be protected with --exclude
Admin awareness System categories check administrator permissions before running

Responsive terminal UI

The menu adjusts to the current terminal width.

Descriptions are hidden when the terminal is narrower than 55 columns, keeping navigation compact and readable.


🧹 Cleanup Categories

Category Level Admin Default
User Temp Files safe No On
Windows Temp safe Yes On
Windows Update Cache moderate Yes On
Delivery Optimization safe Yes On
Browser Cache safe No On
Recycle Bin safe No On
Thumbnail Cache safe No On
Error Reports safe No On
System Logs moderate Yes On
Prefetch moderate Yes Off
DirectX Shader Cache safe No On
Old Downloads risky No Off
Development Cache moderate No Off
System Junk / User Temp Files safe

Cleans temporary files created by applications.

Paths:

%TEMP%
%LOCALAPPDATA%\Temp

The user temp directory is resolved through the %TEMP% environment variable.

System Junk / Windows Temp safe · admin

Cleans Windows temporary files from:

C:\Windows\Temp

Administrator permissions are required when:

"requireAdminForSystem": true
System Junk / Windows Update Cache moderate · admin

Cleans downloaded Windows Update files from:

C:\Windows\SoftwareDistribution\Download

Windows can download required update files again when needed.

System Junk / Delivery Optimization safe · admin

Cleans cached files used by Windows Delivery Optimization.

Main locations include:

C:\Windows\SoftwareDistribution\DeliveryOptimization
C:\Windows\ServiceProfiles\NetworkService\...\DeliveryOptimization\Cache
Browsers / Browser Cache safe

Cleans browser caches for supported Chromium-based browsers and Firefox.

Chromium cache locations include:

Cache
Cache_Data
Code Cache
GPUCache

Profiles:

Default
Profile *

Supported browsers:

  • Google Chrome
  • Microsoft Edge
  • Brave
  • Mozilla Firefox

Firefox cleanup includes:

cache2
startupCache

Profiles are discovered through %LOCALAPPDATA% and %APPDATA%.

Storage / Recycle Bin safe

Calculates and clears Recycle Bin contents.

sunSweep uses:

Shell.Application
Virtual folder 0xA

Size is calculated through item.Size.

Cleanup uses Clear-RecycleBin with a COM fallback when needed.

System Junk / Thumbnail Cache safe

Cleans Explorer thumbnail databases:

%LOCALAPPDATA%\Microsoft\Windows\Explorer\thumbcache_*.db

Windows rebuilds thumbnail cache files when they are needed again.

System Junk / Error Reports safe

Cleans archived and queued Windows Error Reporting data.

User locations:

%LOCALAPPDATA%\Microsoft\Windows\WER\ReportArchive
%LOCALAPPDATA%\Microsoft\Windows\WER\ReportQueue

System data under:

C:\ProgramData\Microsoft\Windows\WER\

is included when permissions allow access.

System Junk / System Logs moderate · admin

Cleans old Windows log files from locations such as:

C:\Windows\Logs
C:\Windows\Logs\CBS
C:\Windows\Debug
C:\Windows\inf\setupapi.offline*.log

Supported extensions:

*.log
*.etl
*.evtx

Files are filtered using:

"logsOlderThanDays": 7
System Junk / Prefetch moderate · admin · disabled by default

Cleans Windows Prefetch data:

C:\Windows\Prefetch\*.pf

Prefetch stores application launch optimization data. Windows recreates this data as applications are used.

System Junk / DirectX Shader Cache safe

Cleans compiled DirectX shader cache:

%LOCALAPPDATA%\D3DSCache

GPU drivers and applications recreate required shader data automatically.

Storage / Old Downloads risky · disabled by default

Targets files in:

~\Downloads

Only files older than the configured threshold are included.

Default:

"downloadsOlderThanDays": 30

This category contains personal files and requires explicit selection.

Select it manually in the interactive menu.

For CLI cleanup, use --force.

Development / Dev Cache moderate · disabled by default

Cleans package manager and development caches, including:

npm-cache
Yarn\Cache
pip\Cache
~\.cache\pip
~\.nuget\packages
~\.gradle\caches
NuGet\Cache

Development tools can download required dependencies again after cleanup.


Usage

Interactive Menu

Start sunSweep:

.\sunSweep.ps1

Available actions:

Menu item Action
Scan & Clean Scan the system and choose categories before cleanup
Quick Clean Clean enabled safe and moderate categories
Dry Run Preview Calculate what can be removed without deleting files
Categories Enable or disable cleanup categories
Settings View and manage configuration
What gets cleaned Read category descriptions directly in the TUI

Navigation is handled with the keyboard and checkbox selection.


CLI

Scan

.\sunSweep.ps1 --scan

Scan and export JSON

.\sunSweep.ps1 --scan --json > report.json

Dry run

.\sunSweep.ps1 --dry-run

Scan selected categories

.\sunSweep.ps1 --categories temp-files,browser-cache --scan

Clean

.\sunSweep.ps1 --clean

Clean with risky categories allowed

.\sunSweep.ps1 --clean --force

Exclude paths

.\sunSweep.ps1 --exclude "C:\Temp\keep*" --clean --force

Configuration Commands

Enable a category:

.\sunSweep.ps1 --enable downloads

Disable a category:

.\sunSweep.ps1 --disable prefetch

List categories:

.\sunSweep.ps1 --list-categories

Show current configuration:

.\sunSweep.ps1 --show-config

Reset user configuration:

.\sunSweep.ps1 --reset-config

Standalone

sunSweep.standalone.ps1 contains the project in a single PowerShell file.

Run a local copy:

powershell -ExecutionPolicy Bypass -File .\sunSweep.standalone.ps1

Run the latest version directly from GitHub:

powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/lordofsunshine/sunSweep/main/sunSweep.standalone.ps1 | iex"

Configuration

Default settings:

Config/default.json

User settings:

%APPDATA%\sunSweep\config.json

User settings override matching values from the default configuration.

Example:

{
  "categories": {
    "temp-files": true,
    "prefetch": false,
    "downloads": false
  },
  "thresholds": {
    "downloadsOlderThanDays": 30,
    "logsOlderThanDays": 7
  },
  "excludePaths": [
    "C:\\Temp\\keep*"
  ],
  "safety": {
    "allowRiskyWithoutForce": false
  },
  "behavior": {
    "requireAdminForSystem": true
  }
}

Main Settings

Setting Description
categories Enabled and disabled cleanup modules
downloadsOlderThanDays Minimum age for files in Downloads
logsOlderThanDays Minimum age for system logs
excludePaths Files and folders protected from cleanup
allowRiskyWithoutForce Allows risky categories without CLI --force
requireAdminForSystem Requires elevation for system-level categories

Project Structure

sunSweep/
├── sunSweep.ps1
├── sunSweep.standalone.ps1
│
├── Config/
│   └── default.json
│
├── Locales/
│   ├── en.json
│   └── ru.json
│
├── Core/
│   ├── Scanner
│   ├── Cleaner
│   ├── Reporter
│   ├── Menu
│   └── Engine
│
├── Modules/
│   ├── TempFiles
│   ├── WindowsTemp
│   ├── WindowsUpdate
│   ├── DeliveryOptimization
│   ├── BrowserCache
│   ├── RecycleBin
│   ├── ThumbnailCache
│   ├── ErrorReports
│   ├── Logs
│   ├── Prefetch
│   ├── DirectXCache
│   ├── Downloads
│   └── DevCache
│
└── Utils/
    ├── Format
    ├── FsHelper
    ├── I18n
    ├── Logger
    ├── Privileges
    ├── Interactive
    └── UI

Each cleanup category is implemented as a separate module. This keeps scanning and cleanup logic easy to maintain and extend.


🛡️ Safety

sunSweep assigns a safety level to every cleanup category.

Level Meaning
safe Temporary data and caches that applications can recreate
moderate Logs, optimization data and development caches
risky User files that require explicit approval

Protection

  • Risky categories require explicit selection
  • CLI cleanup of risky categories uses --force
  • --dry-run previews cleanup without removing files
  • --exclude protects matching paths
  • Locked files are skipped
  • Files that cannot be removed are counted as failed operations
  • System categories respect administrator requirements

A dry run reports the estimated result:

Would free: X

Tip

Use --dry-run after changing categories, thresholds or exclusions.


Localization

sunSweep detects the interface language through:

CurrentUICulture

Locale selection:

ru*   -> Russian
other -> English

English is used as the fallback language.

Localization files:

Locales/en.json
Locales/ru.json

Requirements

  • Windows 10 or Windows 11
  • Windows PowerShell 5.1+
  • No additional PowerShell modules

Administrator permissions are required for:

windows-temp
windows-update
delivery-optimization
logs
prefetch

Other supported categories can run with regular user permissions.


Clean Windows. Keep what matters.

☀️ sunSweep

Back to top


Русский

О проекте

sunSweep помогает очищать Windows от временных файлов, кэша, старых журналов и других ненужных данных.

Проект запускается напрямую через PowerShell и не требует установки или дополнительных модулей.

Интерактивный интерфейс поддерживает управление с клавиатуры, выбор категорий, статистику очистки и анимацию солнца во время сканирования.

Tip

Перед первой очисткой запустите Dry Run Preview. sunSweep покажет, какие данные можно удалить и сколько места освободится.


🚀 Быстрый запуск

Скачайте проект, откройте PowerShell в его папке и выполните:

powershell -ExecutionPolicy Bypass -File .\sunSweep.ps1

Standalone

Также можно использовать версию проекта в одном файле:

powershell -ExecutionPolicy Bypass -File .\sunSweep.standalone.ps1

Последнюю standalone-версию можно запустить напрямую с GitHub:

powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/lordofsunshine/sunSweep/refs/heads/main/sunSweep.standalone.ps1 | iex"

Important

Перед запуском удаленного скрипта через iex рекомендуется проверить его содержимое.


Возможности

Возможность Описание
Интерактивный TUI Навигация с клавиатуры, чекбоксы и адаптивный интерфейс
Анимация сканирования Вращающееся солнце во время проверки системы
13 категорий очистки Система, браузеры, хранилище и кэши инструментов разработки
Уровни безопасности Каждая категория имеет уровень safe, moderate или risky
Предварительный просмотр Проверка файлов и расчет свободного места до удаления
Автоматический язык Русский для системной локали ru*, английский для остальных
Модульная структура Каждая категория находится в отдельном PowerShell-модуле
CLI-режим Сканирование и очистка из терминала и сценариев автоматизации
JSON-отчеты Машиночитаемый результат сканирования через --json
Постоянные настройки Пользовательский конфиг хранится в %APPDATA%\sunSweep\config.json
Исключения Защита путей через --exclude
Проверка прав Системные категории проверяют наличие прав администратора

Адаптивный интерфейс

Меню подстраивается под ширину терминала.

При ширине меньше 55 символов дополнительные описания скрываются. Меню остается компактным и читаемым.


🧹 Категории очистки

Категория Уровень Администратор По умолчанию
Временные файлы пользователя safe Нет Вкл
Windows Temp safe Да Вкл
Кэш Windows Update moderate Да Вкл
Delivery Optimization safe Да Вкл
Кэш браузеров safe Нет Вкл
Корзина safe Нет Вкл
Кэш миниатюр safe Нет Вкл
Отчеты об ошибках safe Нет Вкл
Системные журналы moderate Да Вкл
Prefetch moderate Да Выкл
Кэш шейдеров DirectX safe Нет Вкл
Старые загрузки risky Нет Выкл
Кэш разработки moderate Нет Выкл
Система / Временные файлы пользователя safe

Очищает временные файлы, которые создают приложения.

Пути:

%TEMP%
%LOCALAPPDATA%\Temp

Пользовательская временная папка определяется через переменную окружения %TEMP%.

Система / Windows Temp safe · admin

Очищает системные временные файлы:

C:\Windows\Temp

Права администратора требуются при настройке:

"requireAdminForSystem": true
Система / Кэш Windows Update moderate · admin

Очищает загруженные файлы Windows Update:

C:\Windows\SoftwareDistribution\Download

Windows сможет повторно загрузить необходимые файлы обновлений.

Система / Delivery Optimization safe · admin

Очищает кэш службы оптимизации доставки Windows.

Основные расположения:

C:\Windows\SoftwareDistribution\DeliveryOptimization
C:\Windows\ServiceProfiles\NetworkService\...\DeliveryOptimization\Cache
Браузеры / Кэш браузеров safe

Очищает кэш Chromium-браузеров и Firefox.

Для Chromium учитываются:

Cache
Cache_Data
Code Cache
GPUCache

Профили:

Default
Profile *

Поддерживаются:

  • Google Chrome
  • Microsoft Edge
  • Brave
  • Mozilla Firefox

Для Firefox очищаются:

cache2
startupCache

Профили ищутся через %LOCALAPPDATA% и %APPDATA%.

Хранилище / Корзина safe

Подсчитывает размер содержимого корзины и очищает ее.

sunSweep использует:

Shell.Application
Virtual folder 0xA

Размер определяется через item.Size.

Для очистки используется Clear-RecycleBin с COM fallback при необходимости.

Система / Кэш миниатюр safe

Очищает базы миниатюр Проводника:

%LOCALAPPDATA%\Microsoft\Windows\Explorer\thumbcache_*.db

Windows автоматически создаст необходимые файлы кэша снова.

Система / Отчеты об ошибках safe

Очищает архивные и ожидающие отправки отчеты Windows Error Reporting.

Пользовательские расположения:

%LOCALAPPDATA%\Microsoft\Windows\WER\ReportArchive
%LOCALAPPDATA%\Microsoft\Windows\WER\ReportQueue

Также учитываются системные данные в:

C:\ProgramData\Microsoft\Windows\WER\

при наличии необходимых прав.

Система / Системные журналы moderate · admin

Очищает старые журналы Windows из расположений:

C:\Windows\Logs
C:\Windows\Logs\CBS
C:\Windows\Debug
C:\Windows\inf\setupapi.offline*.log

Поддерживаемые расширения:

*.log
*.etl
*.evtx

Возраст файлов определяется настройкой:

"logsOlderThanDays": 7
Система / Prefetch moderate · admin · выключено по умолчанию

Очищает данные Windows Prefetch:

C:\Windows\Prefetch\*.pf

Prefetch хранит данные для оптимизации запуска приложений. Windows постепенно создаст их снова во время использования программ.

Система / Кэш шейдеров DirectX safe

Очищает скомпилированный кэш шейдеров DirectX:

%LOCALAPPDATA%\D3DSCache

Драйвер видеокарты и приложения автоматически создают необходимые данные заново.

Хранилище / Старые загрузки risky · выключено по умолчанию

Проверяет файлы в:

~\Downloads

В очистку попадают файлы старше указанного срока.

Значение по умолчанию:

"downloadsOlderThanDays": 30

В этой категории находятся пользовательские файлы, поэтому она требует явного выбора.

В интерактивном меню категорию нужно выбрать вручную.

Для очистки через CLI используется --force.

Разработка / Кэш разработки moderate · выключено по умолчанию

Очищает кэш пакетных менеджеров и инструментов разработки:

npm-cache
Yarn\Cache
pip\Cache
~\.cache\pip
~\.nuget\packages
~\.gradle\caches
NuGet\Cache

После очистки инструменты разработки могут повторно загрузить необходимые зависимости.


Использование

Интерактивное меню

Запуск:

.\sunSweep.ps1

Основные действия:

Пункт Действие
Scan & Clean Сканирует систему и позволяет выбрать категории перед очисткой
Quick Clean Очищает включенные категории safe и moderate
Dry Run Preview Показывает возможный результат без удаления файлов
Categories Управляет категориями очистки
Settings Показывает и изменяет настройки
What gets cleaned Показывает описание категорий внутри TUI

Навигация выполняется с клавиатуры, категории выбираются чекбоксами.


CLI

Сканирование

.\sunSweep.ps1 --scan

Сканирование с JSON-отчетом

.\sunSweep.ps1 --scan --json > report.json

Предварительный просмотр

.\sunSweep.ps1 --dry-run

Сканирование выбранных категорий

.\sunSweep.ps1 --categories temp-files,browser-cache --scan

Очистка

.\sunSweep.ps1 --clean

Очистка с разрешением risky-категорий

.\sunSweep.ps1 --clean --force

Исключение путей

.\sunSweep.ps1 --exclude "C:\Temp\keep*" --clean --force

Управление конфигурацией

Включить категорию:

.\sunSweep.ps1 --enable downloads

Выключить категорию:

.\sunSweep.ps1 --disable prefetch

Показать категории:

.\sunSweep.ps1 --list-categories

Показать текущую конфигурацию:

.\sunSweep.ps1 --show-config

Сбросить пользовательские настройки:

.\sunSweep.ps1 --reset-config

Standalone

sunSweep.standalone.ps1 содержит весь проект в одном PowerShell-файле.

Локальный запуск:

powershell -ExecutionPolicy Bypass -File .\sunSweep.standalone.ps1

Запуск последней версии напрямую с GitHub:

powershell -ExecutionPolicy Bypass -Command "irm https://raw.githubusercontent.com/lordofsunshine/sunSweep/main/sunSweep.standalone.ps1 | iex"

Конфигурация

Настройки по умолчанию:

Config/default.json

Пользовательские настройки:

%APPDATA%\sunSweep\config.json

Пользовательский конфиг переопределяет соответствующие значения из настроек по умолчанию.

Пример:

{
  "categories": {
    "temp-files": true,
    "prefetch": false,
    "downloads": false
  },
  "thresholds": {
    "downloadsOlderThanDays": 30,
    "logsOlderThanDays": 7
  },
  "excludePaths": [
    "C:\\Temp\\keep*"
  ],
  "safety": {
    "allowRiskyWithoutForce": false
  },
  "behavior": {
    "requireAdminForSystem": true
  }
}

Основные параметры

Параметр Описание
categories Включенные и выключенные модули очистки
downloadsOlderThanDays Минимальный возраст файлов в Downloads
logsOlderThanDays Минимальный возраст системных журналов
excludePaths Файлы и папки, защищенные от очистки
allowRiskyWithoutForce Разрешение risky-категорий без CLI-флага --force
requireAdminForSystem Требование прав администратора для системных категорий

Структура проекта

sunSweep/
├── sunSweep.ps1
├── sunSweep.standalone.ps1
│
├── Config/
│   └── default.json
│
├── Locales/
│   ├── en.json
│   └── ru.json
│
├── Core/
│   ├── Scanner
│   ├── Cleaner
│   ├── Reporter
│   ├── Menu
│   └── Engine
│
├── Modules/
│   ├── TempFiles
│   ├── WindowsTemp
│   ├── WindowsUpdate
│   ├── DeliveryOptimization
│   ├── BrowserCache
│   ├── RecycleBin
│   ├── ThumbnailCache
│   ├── ErrorReports
│   ├── Logs
│   ├── Prefetch
│   ├── DirectXCache
│   ├── Downloads
│   └── DevCache
│
└── Utils/
    ├── Format
    ├── FsHelper
    ├── I18n
    ├── Logger
    ├── Privileges
    ├── Interactive
    └── UI

Каждая категория очистки реализована отдельным модулем. Такая структура упрощает поддержку и добавление новых категорий.


🛡️ Безопасность

Каждая категория sunSweep имеет свой уровень безопасности.

Уровень Что входит
safe Временные данные и кэш, которые приложения могут создать снова
moderate Журналы, данные оптимизации и кэши инструментов разработки
risky Пользовательские файлы, для которых требуется явное подтверждение

Защита данных

  • Risky-категории требуют явного выбора
  • Для risky-категорий в CLI используется --force
  • --dry-run показывает результат без удаления файлов
  • --exclude защищает подходящие под шаблон пути
  • Заблокированные и используемые файлы пропускаются
  • Файлы, которые не удалось удалить, учитываются как неудачные операции
  • Системные категории проверяют наличие прав администратора

Предварительный просмотр показывает расчетное значение:

Would free: X

Tip

Запускайте --dry-run после изменения категорий, ограничений или исключений.


Локализация

sunSweep определяет язык интерфейса через:

CurrentUICulture

Правило выбора:

ru*   -> Русский
other -> English

Английский используется как резервная локаль.

Файлы переводов:

Locales/en.json
Locales/ru.json

Требования

  • Windows 10 или Windows 11
  • Windows PowerShell 5.1+
  • Дополнительные PowerShell-модули не требуются

Права администратора нужны для категорий:

windows-temp
windows-update
delivery-optimization
logs
prefetch

Остальные поддерживаемые категории могут работать с обычными правами пользователя.


Чистая система. Нужные файлы остаются на месте.

☀️ sunSweep

Наверх

Releases

Packages

Contributors

Languages