|
1 | 1 | <div align="center"> |
2 | 2 |
|
3 | | -<br> |
4 | | - |
5 | | -<img src="src-tauri/icons/icon.png" width="100" alt="System Health Tool icon"> |
| 3 | +<img src="src-tauri/icons/icon.png" width="80" alt="System Health Tool"> |
6 | 4 |
|
7 | 5 | <br> |
8 | 6 |
|
9 | 7 | # System Health Tool |
10 | 8 |
|
11 | | -### Keep your Windows PC fast, clean, and healthy. |
12 | | - |
13 | | -[](LICENSE) |
14 | | -[](https://v2.tauri.app) |
15 | | -[](https://react.dev) |
16 | | -[](https://www.rust-lang.org) |
17 | | -[](https://www.typescriptlang.org) |
| 9 | +A lightweight, open-source Windows desktop app that scans, diagnoses,<br>and cleans up system issues — built for people who aren't technical. |
18 | 10 |
|
19 | 11 | <br> |
20 | 12 |
|
21 | | -`~2.5 MB installer` · `No bloat` · `No telemetry` · `Open source` |
| 13 | +[](LICENSE) |
| 14 | + |
| 15 | +[](https://v2.tauri.app) |
| 16 | + |
| 17 | +[](https://react.dev) |
| 18 | + |
| 19 | +[](https://www.rust-lang.org) |
22 | 20 |
|
23 | 21 | <br> |
24 | 22 |
|
25 | | -<!-- TODO: Replace with actual screenshot once published --> |
26 | | -<!-- <img src="docs/assets/screenshot.png" width="720" alt="App screenshot"> --> |
27 | | - |
28 | | ---- |
29 | | - |
30 | | -</div> |
| 23 | +`~2.5 MB` • `No bloat` • `No telemetry` • `Open source` |
31 | 24 |
|
32 | 25 | <br> |
33 | 26 |
|
34 | | -## Overview |
| 27 | +[Download](https://github.com/TMHSDigital/system-cleaner/releases) | [Build from source](#build-from-source) | [Contributing](docs/CONTRIBUTING.md) |
35 | 28 |
|
36 | | -A lightweight, open-source Windows desktop app that scans, diagnoses, and cleans up system issues — designed for people who aren't technical. Built with **React** on the frontend and **Rust** on the backend via [Tauri 2](https://v2.tauri.app), it's fast, tiny, and runs natively with no Electron bloat. |
| 29 | +</div> |
37 | 30 |
|
38 | 31 | <br> |
39 | 32 |
|
40 | | -## Features |
| 33 | +--- |
41 | 34 |
|
42 | | -<table> |
43 | | -<tr> |
44 | | -<td width="50%" valign="top"> |
| 35 | +<br> |
45 | 36 |
|
46 | | -#### 📊 Dashboard |
47 | | -Real-time health score (0–100), drive space bars, RAM usage donut chart, and a one-click **Quick Clean** button that only touches safe items. |
| 37 | +### What it does |
48 | 38 |
|
49 | | -</td> |
50 | | -<td width="50%" valign="top"> |
| 39 | +One window. Five panels. Everything your PC needs to stay healthy. |
51 | 40 |
|
52 | | -#### 🧹 Disk Cleanup |
53 | | -Scans temp files, browser caches, crash dumps, dev caches, and the recycle bin. Every item has a color-coded risk label so you know exactly what's safe to delete. |
| 41 | +| Panel | What you get | |
| 42 | +|:------|:-------------| |
| 43 | +| **Dashboard** | Real-time health score (0-100), drive space bars, RAM donut chart, one-click **Quick Clean** that only touches safe items | |
| 44 | +| **Disk Cleanup** | Scans temp files, browser caches, crash dumps, dev caches, recycle bin — every item tagged with a color-coded risk level | |
| 45 | +| **Memory** | Live RAM usage, runaway process detection, Hyper-V and WSL VM detection, direct process kill for non-system processes | |
| 46 | +| **Startup** | Toggle startup programs on/off with impact ratings and "recommended to disable" flags — nothing is uninstalled, just toggled | |
| 47 | +| **Recommendations** | Auto-generated tips like *"Your pagefile is on a full drive"* with a **Fix It** button that jumps to the right panel | |
54 | 48 |
|
55 | | -</td> |
56 | | -</tr> |
57 | | -<tr> |
58 | | -<td width="50%" valign="top"> |
| 49 | +<br> |
59 | 50 |
|
60 | | -#### 🧠 Memory & Processes |
61 | | -See what's eating your RAM, spot runaway processes, detect Hyper-V and WSL virtual machines hogging memory. Kill non-system processes directly. |
| 51 | +### Safety model |
62 | 52 |
|
63 | | -</td> |
64 | | -<td width="50%" valign="top"> |
| 53 | +> [!IMPORTANT] |
| 54 | +> Nothing is deleted without showing you exactly what will happen first. |
65 | 55 |
|
66 | | -#### ⚡ Startup Manager |
67 | | -Toggle startup programs on/off with impact ratings (High / Medium / Low) and "recommended to disable" badges. Nothing is uninstalled — just toggled. |
| 56 | +| Risk | What it means | |
| 57 | +|:-----|:--------------| |
| 58 | +| **Safe** | Always fine to delete. Temp files, caches, crash dumps — regenerated automatically. Quick Clean only touches these. | |
| 59 | +| **Moderate** | Dev caches, Windows Update files. Re-downloaded on demand. Must be manually selected. | |
| 60 | +| **Advanced** | Reserved for future features. Will require explicit confirmation. | |
68 | 61 |
|
69 | | -</td> |
70 | | -</tr> |
71 | | -<tr> |
72 | | -<td colspan="2" valign="top"> |
| 62 | +Locked files are silently skipped. System processes cannot be killed. Full details in [`docs/SAFETY.md`](docs/SAFETY.md). |
73 | 63 |
|
74 | | -#### 💡 Smart Recommendations |
75 | | -Auto-generated tips like *"Your pagefile is on a full drive"* or *"6 apps launch at startup"* — each with a **Fix It** button that navigates directly to the right panel. |
| 64 | +<br> |
76 | 65 |
|
77 | | -</td> |
78 | | -</tr> |
79 | | -</table> |
| 66 | +--- |
80 | 67 |
|
81 | 68 | <br> |
82 | 69 |
|
83 | | -## Quick Start |
| 70 | +### Install |
84 | 71 |
|
85 | | -### Download |
| 72 | +Grab the latest build from [**Releases**](https://github.com/TMHSDigital/system-cleaner/releases): |
86 | 73 |
|
87 | | -Grab the latest installer from [**Releases**](https://github.com/TMHSDigital/system-cleaner/releases): |
88 | | - |
89 | | -| Format | Size | Notes | |
90 | | -|--------|------|-------| |
91 | | -| `System Cleaner_x.x.x_x64-setup.exe` | ~2.5 MB | NSIS installer (recommended) | |
92 | | -| `System Cleaner_x.x.x_x64_en-US.msi` | ~3.8 MB | MSI installer | |
| 74 | +| Installer | Size | |
| 75 | +|:----------|:-----| |
| 76 | +| `System Cleaner_x.x.x_x64-setup.exe` (NSIS) | ~2.5 MB | |
| 77 | +| `System Cleaner_x.x.x_x64_en-US.msi` | ~3.8 MB | |
93 | 78 |
|
94 | 79 | > [!NOTE] |
95 | | -> The app requests admin privileges on launch — needed for clearing Windows temp files, managing services, and reading all processes. |
| 80 | +> Admin privileges are requested on launch — required for clearing system temp files, managing services, and reading all processes. |
| 81 | +
|
| 82 | +<br> |
96 | 83 |
|
97 | 84 | ### Build from source |
98 | 85 |
|
99 | | -**Prerequisites:** [Node.js](https://nodejs.org/) 18+ · [Rust](https://rustup.rs/) 1.85+ · Windows 10/11 with [WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) |
| 86 | +Requires [Node.js](https://nodejs.org/) 18+, [Rust](https://rustup.rs/) 1.85+, and Windows 10/11 with [WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/). |
100 | 87 |
|
101 | 88 | ```bash |
102 | 89 | git clone https://github.com/TMHSDigital/system-cleaner.git |
103 | | -cd system-cleaner |
104 | | -npm install |
| 90 | +cd system-cleaner && npm install |
105 | 91 |
|
106 | | -npm run tauri:dev # dev mode with hot reload |
107 | | -npm run tauri:build # production build → src-tauri/target/release/bundle/ |
| 92 | +npm run tauri:dev # dev mode — hot reload |
| 93 | +npm run tauri:build # production → src-tauri/target/release/bundle/ |
108 | 94 | ``` |
109 | 95 |
|
110 | 96 | <br> |
111 | 97 |
|
112 | | -## Tech Stack |
113 | | - |
114 | | -| Layer | Technology | |
115 | | -|-------|-----------| |
116 | | -| **Frontend** | React 19 · TypeScript 5.9 · Tailwind CSS v4 · Recharts | |
117 | | -| **Backend** | Tauri 2 (Rust) — native Win32 & registry access via `tauri::command` | |
118 | | -| **Bundler** | Vite 7 | |
119 | | -| **Icons** | Lucide React | |
| 98 | +--- |
120 | 99 |
|
121 | 100 | <br> |
122 | 101 |
|
123 | | -## Architecture |
| 102 | +### Architecture |
124 | 103 |
|
125 | 104 | ``` |
126 | | -┌──────────────────────────────────────────────────────┐ |
127 | | -│ Tauri Window │ |
128 | | -│ │ |
129 | | -│ ┌────────────────────────────────────────────────┐ │ |
130 | | -│ │ React Frontend │ │ |
131 | | -│ │ Dashboard · Disk · Memory · Startup · Tips │ │ |
132 | | -│ │ ↕ api.ts │ │ |
133 | | -│ └────────────────────┬───────────────────────────┘ │ |
134 | | -│ │ IPC (JSON) │ |
135 | | -│ ┌────────────────────┴───────────────────────────┐ │ |
136 | | -│ │ Rust Backend (Tauri 2) │ │ |
137 | | -│ │ disk.rs · memory.rs · startup.rs │ │ |
138 | | -│ │ cleanup.rs · recommendations.rs │ │ |
139 | | -│ └────────────────────────────────────────────────┘ │ |
140 | | -│ │ |
141 | | -└─────────┬────────────────┬────────────────┬──────────┘ |
142 | | - Win32 API PowerShell Registry |
| 105 | + ┌─────────────────────────────────────┐ |
| 106 | + │ Tauri Window │ |
| 107 | + │ │ |
| 108 | + │ React 19 + TypeScript + Tailwind │ |
| 109 | + │ Dashboard / Disk / Memory / │ |
| 110 | + │ Startup / Recommendations │ |
| 111 | + │ ↕ api.ts │ |
| 112 | + │ ──────────────────────────────────── │ |
| 113 | + │ Rust Backend (Tauri 2) │ |
| 114 | + │ disk · memory · startup · cleanup │ |
| 115 | + │ · recommendations │ |
| 116 | + └────┬──────────┬──────────────┬───────┘ |
| 117 | + │ │ │ |
| 118 | + Win32 API PowerShell Registry |
143 | 119 | ``` |
144 | 120 |
|
145 | | -> Full architecture docs: [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) |
| 121 | +Full architecture docs: [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) |
146 | 122 |
|
147 | 123 | <br> |
148 | 124 |
|
149 | | -## Safety |
150 | | - |
151 | | -> [!IMPORTANT] |
152 | | -> No files are ever deleted without showing you exactly what will happen first. |
| 125 | +### Tech stack |
153 | 126 |
|
154 | | -Every cleanable item is categorized by risk: |
155 | | - |
156 | | -| Level | Meaning | Examples | |
157 | | -|-------|---------|----------| |
158 | | -| 🟢 **Safe** | Always fine to delete — regenerated automatically | Temp files, browser caches, crash dumps | |
159 | | -| 🟡 **Moderate** | Re-downloaded when needed | Dev caches (npm, pip, cargo), Windows Update files | |
160 | | -| 🔴 **Advanced** | Requires explicit confirmation | Reserved for future features | |
| 127 | +| | | |
| 128 | +|:--|:--| |
| 129 | +| **Frontend** | React 19 · TypeScript 5.9 · Tailwind CSS v4 · Recharts | |
| 130 | +| **Backend** | Tauri 2 (Rust) · Win32 API · PowerShell · Registry | |
| 131 | +| **Build** | Vite 7 · Cargo | |
| 132 | +| **Icons** | Lucide React | |
161 | 133 |
|
162 | | -- **Quick Clean** only touches Safe items |
163 | | -- Moderate / Advanced items must be manually selected in the Disk Cleanup tab |
164 | | -- Locked files are silently skipped — no errors, no data loss |
165 | | -- System processes cannot be killed from the Memory tab |
| 134 | +<br> |
166 | 135 |
|
167 | | -> Full safety details: [`docs/SAFETY.md`](docs/SAFETY.md) |
| 136 | +<details> |
| 137 | +<summary><strong>Project structure</strong></summary> |
168 | 138 |
|
169 | 139 | <br> |
170 | 140 |
|
171 | | -## Project Structure |
172 | | - |
173 | 141 | ``` |
174 | | -system-cleaner/ |
175 | | -├── src/ # React frontend |
176 | | -│ ├── App.tsx # Sidebar nav + tab routing |
177 | | -│ ├── components/ |
178 | | -│ │ ├── Dashboard.tsx # Health score, drives, RAM, Quick Clean |
179 | | -│ │ ├── DiskCleanup.tsx # Scan → Review → Clean workflow |
180 | | -│ │ ├── MemoryPanel.tsx # RAM chart, processes, VM detection |
181 | | -│ │ ├── StartupManager.tsx # Toggle switches + impact ratings |
182 | | -│ │ └── Recommendations.tsx # Auto-tips with Fix It navigation |
183 | | -│ ├── lib/ |
184 | | -│ │ ├── api.ts # Typed Tauri invoke() wrappers |
185 | | -│ │ ├── types.ts # Shared interfaces |
186 | | -│ │ └── format.ts # Byte/percent formatting |
187 | | -│ └── styles/ |
188 | | -│ └── tokens.css # Design tokens + component classes |
189 | | -├── src-tauri/ # Rust backend |
190 | | -│ ├── src/ |
191 | | -│ │ ├── lib.rs # Tauri bootstrap + command registration |
192 | | -│ │ ├── main.rs # Windows entry point |
193 | | -│ │ └── commands/ |
194 | | -│ │ ├── disk.rs # Drive info, temp/cache scanning |
195 | | -│ │ ├── memory.rs # RAM stats, process list, VM detection |
196 | | -│ │ ├── startup.rs # Registry + folder startup management |
197 | | -│ │ ├── cleanup.rs # Safe deletion with progress tracking |
198 | | -│ │ └── recommendations.rs # Auto-generated system tips |
199 | | -│ ├── tauri.conf.json |
200 | | -│ └── Cargo.toml |
201 | | -├── docs/ |
202 | | -│ ├── ARCHITECTURE.md |
203 | | -│ ├── SAFETY.md |
204 | | -│ └── CONTRIBUTING.md |
205 | | -├── package.json |
206 | | -├── vite.config.ts |
207 | | -└── tsconfig.json |
| 142 | +src/ |
| 143 | +├── App.tsx # Sidebar nav + tab routing |
| 144 | +├── components/ |
| 145 | +│ ├── Dashboard.tsx # Health score, drives, RAM, Quick Clean |
| 146 | +│ ├── DiskCleanup.tsx # Scan → Review → Clean workflow |
| 147 | +│ ├── MemoryPanel.tsx # RAM chart, processes, VM detection |
| 148 | +│ ├── StartupManager.tsx # Toggle switches + impact ratings |
| 149 | +│ └── Recommendations.tsx # Auto-tips with Fix It navigation |
| 150 | +├── lib/ |
| 151 | +│ ├── api.ts # Typed Tauri invoke() wrappers |
| 152 | +│ ├── types.ts # Shared interfaces |
| 153 | +│ └── format.ts # Byte/percent formatting |
| 154 | +└── styles/ |
| 155 | + └── tokens.css # Design tokens + component classes |
| 156 | +
|
| 157 | +src-tauri/ |
| 158 | +├── src/ |
| 159 | +│ ├── lib.rs # Tauri bootstrap + command registration |
| 160 | +│ ├── main.rs # Windows entry point |
| 161 | +│ └── commands/ |
| 162 | +│ ├── disk.rs # Drive info, temp/cache scanning |
| 163 | +│ ├── memory.rs # RAM stats, process list, VM detection |
| 164 | +│ ├── startup.rs # Registry + folder startup management |
| 165 | +│ ├── cleanup.rs # Safe deletion with progress tracking |
| 166 | +│ └── recommendations.rs # Auto-generated system tips |
| 167 | +├── tauri.conf.json |
| 168 | +└── Cargo.toml |
| 169 | +
|
| 170 | +docs/ |
| 171 | +├── ARCHITECTURE.md |
| 172 | +├── SAFETY.md |
| 173 | +└── CONTRIBUTING.md |
208 | 174 | ``` |
209 | 175 |
|
| 176 | +</details> |
| 177 | + |
210 | 178 | <br> |
211 | 179 |
|
212 | | -## Contributing |
| 180 | +--- |
213 | 181 |
|
214 | | -PRs welcome. See [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) for setup instructions, code style, and how to add new cleanup targets or recommendations. |
| 182 | +<br> |
215 | 183 |
|
216 | | -```bash |
217 | | -git clone https://github.com/TMHSDigital/system-cleaner.git |
218 | | -cd system-cleaner && npm install |
219 | | -npm run tauri:dev |
220 | | -``` |
| 184 | +### Contributing |
| 185 | + |
| 186 | +PRs welcome. See [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) for setup, code style, and how to add new cleanup targets. |
221 | 187 |
|
222 | 188 | <br> |
223 | 189 |
|
224 | 190 | <div align="center"> |
225 | 191 |
|
226 | | -## License |
227 | | - |
228 | | -[MIT](LICENSE) · Built by [TMHSDigital](https://github.com/TMHSDigital) |
| 192 | +[MIT License](LICENSE) · [TMHSDigital](https://github.com/TMHSDigital) |
229 | 193 |
|
230 | 194 | </div> |
0 commit comments