appclean 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +41 -0
- package/.github/workflows/test.yml +37 -0
- package/ACTION_CHECKLIST.md +342 -0
- package/APPCLEAN_SUMMARY.md +309 -0
- package/CHANGELOG.md +205 -0
- package/CODE_OF_CONDUCT.md +49 -0
- package/CODE_REVIEW_REPORT.md +447 -0
- package/COMMUNITY_POSTS.md +307 -0
- package/CONTRIBUTING.md +121 -0
- package/DEPLOYMENT_GUIDE.md +345 -0
- package/DEPLOYMENT_STATUS.md +182 -0
- package/EXECUTIVE_REPORT.md +393 -0
- package/GITHUB_OPTIMIZATION.md +383 -0
- package/INDEX.md +165 -0
- package/LICENSE +21 -0
- package/MARKETING_SUMMARY.md +352 -0
- package/NPM_PACKAGE_OPTIMIZATION.md +281 -0
- package/NPM_PUBLISH.md +116 -0
- package/PROJECT_SUMMARY.txt +249 -0
- package/QUICKSTART.md +219 -0
- package/README.md +548 -0
- package/SECURITY.md +104 -0
- package/SETUP_GITHUB.md +237 -0
- package/TESTING_SUMMARY.md +379 -0
- package/dist/core/appUpdateChecker.d.ts +23 -0
- package/dist/core/appUpdateChecker.d.ts.map +1 -0
- package/dist/core/appUpdateChecker.js +159 -0
- package/dist/core/appUpdateChecker.js.map +1 -0
- package/dist/core/detector.d.ts +13 -0
- package/dist/core/detector.d.ts.map +1 -0
- package/dist/core/detector.js +99 -0
- package/dist/core/detector.js.map +1 -0
- package/dist/core/duplicateFileFinder.d.ts +14 -0
- package/dist/core/duplicateFileFinder.d.ts.map +1 -0
- package/dist/core/duplicateFileFinder.js +80 -0
- package/dist/core/duplicateFileFinder.js.map +1 -0
- package/dist/core/orphanedDependencyDetector.d.ts +19 -0
- package/dist/core/orphanedDependencyDetector.d.ts.map +1 -0
- package/dist/core/orphanedDependencyDetector.js +148 -0
- package/dist/core/orphanedDependencyDetector.js.map +1 -0
- package/dist/core/performanceOptimizer.d.ts +37 -0
- package/dist/core/performanceOptimizer.d.ts.map +1 -0
- package/dist/core/performanceOptimizer.js +128 -0
- package/dist/core/performanceOptimizer.js.map +1 -0
- package/dist/core/permissionHandler.d.ts +9 -0
- package/dist/core/permissionHandler.d.ts.map +1 -0
- package/dist/core/permissionHandler.js +89 -0
- package/dist/core/permissionHandler.js.map +1 -0
- package/dist/core/pluginSystem.d.ts +39 -0
- package/dist/core/pluginSystem.d.ts.map +1 -0
- package/dist/core/pluginSystem.js +120 -0
- package/dist/core/pluginSystem.js.map +1 -0
- package/dist/core/removalRecorder.d.ts +32 -0
- package/dist/core/removalRecorder.d.ts.map +1 -0
- package/dist/core/removalRecorder.js +79 -0
- package/dist/core/removalRecorder.js.map +1 -0
- package/dist/core/remover.d.ts +15 -0
- package/dist/core/remover.d.ts.map +1 -0
- package/dist/core/remover.js +225 -0
- package/dist/core/remover.js.map +1 -0
- package/dist/core/reportGenerator.d.ts +9 -0
- package/dist/core/reportGenerator.d.ts.map +1 -0
- package/dist/core/reportGenerator.js +328 -0
- package/dist/core/reportGenerator.js.map +1 -0
- package/dist/core/scheduledCleanup.d.ts +38 -0
- package/dist/core/scheduledCleanup.d.ts.map +1 -0
- package/dist/core/scheduledCleanup.js +127 -0
- package/dist/core/scheduledCleanup.js.map +1 -0
- package/dist/core/serviceFileDetector.d.ts +18 -0
- package/dist/core/serviceFileDetector.d.ts.map +1 -0
- package/dist/core/serviceFileDetector.js +136 -0
- package/dist/core/serviceFileDetector.js.map +1 -0
- package/dist/core/verificationModule.d.ts +14 -0
- package/dist/core/verificationModule.d.ts.map +1 -0
- package/dist/core/verificationModule.js +102 -0
- package/dist/core/verificationModule.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +333 -0
- package/dist/index.js.map +1 -0
- package/dist/managers/brewManager.d.ts +10 -0
- package/dist/managers/brewManager.d.ts.map +1 -0
- package/dist/managers/brewManager.js +130 -0
- package/dist/managers/brewManager.js.map +1 -0
- package/dist/managers/customManager.d.ts +8 -0
- package/dist/managers/customManager.d.ts.map +1 -0
- package/dist/managers/customManager.js +139 -0
- package/dist/managers/customManager.js.map +1 -0
- package/dist/managers/linuxManager.d.ts +10 -0
- package/dist/managers/linuxManager.d.ts.map +1 -0
- package/dist/managers/linuxManager.js +191 -0
- package/dist/managers/linuxManager.js.map +1 -0
- package/dist/managers/npmManager.d.ts +10 -0
- package/dist/managers/npmManager.d.ts.map +1 -0
- package/dist/managers/npmManager.js +119 -0
- package/dist/managers/npmManager.js.map +1 -0
- package/dist/types/index.d.ts +44 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/guiServer.d.ts +10 -0
- package/dist/ui/guiServer.d.ts.map +1 -0
- package/dist/ui/guiServer.js +134 -0
- package/dist/ui/guiServer.js.map +1 -0
- package/dist/ui/menu.d.ts +6 -0
- package/dist/ui/menu.d.ts.map +1 -0
- package/dist/ui/menu.js +93 -0
- package/dist/ui/menu.js.map +1 -0
- package/dist/ui/prompts.d.ts +13 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +161 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/utils/filesystem.d.ts +13 -0
- package/dist/utils/filesystem.d.ts.map +1 -0
- package/dist/utils/filesystem.js +152 -0
- package/dist/utils/filesystem.js.map +1 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +49 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/platform.d.ts +9 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +75 -0
- package/dist/utils/platform.js.map +1 -0
- package/jest.config.js +20 -0
- package/logo.svg +60 -0
- package/package.json +55 -0
- package/setup-github.sh +125 -0
- package/src/core/appUpdateChecker.ts +220 -0
- package/src/core/detector.ts +133 -0
- package/src/core/duplicateFileFinder.ts +113 -0
- package/src/core/orphanedDependencyDetector.ts +195 -0
- package/src/core/performanceOptimizer.ts +209 -0
- package/src/core/permissionHandler.ts +121 -0
- package/src/core/pluginSystem.ts +194 -0
- package/src/core/removalRecorder.ts +146 -0
- package/src/core/remover.ts +280 -0
- package/src/core/reportGenerator.ts +354 -0
- package/src/core/scheduledCleanup.ts +204 -0
- package/src/core/serviceFileDetector.ts +181 -0
- package/src/core/verificationModule.ts +140 -0
- package/src/index.ts +449 -0
- package/src/managers/brewManager.ts +149 -0
- package/src/managers/customManager.ts +167 -0
- package/src/managers/linuxManager.ts +210 -0
- package/src/managers/npmManager.ts +137 -0
- package/src/types/index.ts +59 -0
- package/src/ui/guiServer.ts +155 -0
- package/src/ui/menu.ts +100 -0
- package/src/ui/prompts.ts +177 -0
- package/src/utils/filesystem.ts +145 -0
- package/src/utils/logger.ts +48 -0
- package/src/utils/platform.ts +75 -0
- package/tsconfig.json +20 -0
package/README.md
ADDED
|
@@ -0,0 +1,548 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="./logo.svg" alt="AppClean Logo" width="120" height="120">
|
|
3
|
+
|
|
4
|
+
# AppClean
|
|
5
|
+
|
|
6
|
+
> **Intelligently find and safely uninstall applications with all their artifacts**
|
|
7
|
+
|
|
8
|
+
[](https://github.com/praveenkay/AppClean/releases)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
[](README.md)
|
|
11
|
+
[](https://npmjs.com/package/appclean)
|
|
12
|
+
|
|
13
|
+
**A powerful, cross-platform CLI tool for developers and system administrators**
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
## ✨ Features
|
|
18
|
+
|
|
19
|
+
### Core Features
|
|
20
|
+
- **🔍 Smart Detection** — Finds apps installed via npm, yarn, pnpm, Homebrew, apt, yum, dnf, and custom installers
|
|
21
|
+
- **📊 Deep Analysis** — Shows installation method, version, and locates all related artifacts
|
|
22
|
+
- **🛡️ Safe Removal** — Dry-run preview, double confirmation, and optional backups
|
|
23
|
+
- **💾 Backup & Restore** — Create backups before deletion and restore if needed
|
|
24
|
+
- **⚡ Fast & Efficient** — Scans and analyzes systems in seconds
|
|
25
|
+
- **🖥️ Cross-Platform** — macOS (Intel & Apple Silicon), Linux, and Windows
|
|
26
|
+
- **🎨 Beautiful CLI** — Interactive menu-driven interface with colors and animations
|
|
27
|
+
|
|
28
|
+
### Advanced Features (v1.1.0+)
|
|
29
|
+
- **🔐 Elevated Permissions** — Automatic sudo/admin detection and prompts
|
|
30
|
+
- **🔧 Service File Detection** — Finds LaunchAgent/LaunchDaemon and systemd services
|
|
31
|
+
- **📋 Operation Recording** — Complete removal history tracking and reporting
|
|
32
|
+
- **✓ Verification** — Post-removal verification to ensure complete uninstall
|
|
33
|
+
- **📄 Professional Reports** — HTML and text reports with legal disclaimers
|
|
34
|
+
|
|
35
|
+
### Latest Features (v1.2.0 - v1.8.0)
|
|
36
|
+
- **🎨 GUI Application** — Modern web-based interface (v1.2.0)
|
|
37
|
+
- **🔍 Duplicate File Finder** — Find and remove duplicate files (v1.3.0)
|
|
38
|
+
- **📦 Orphaned Dependency Detector** — Identify unused npm packages (v1.4.0)
|
|
39
|
+
- **🔌 Plugin System** — Extensible architecture for custom detectors (v1.5.0)
|
|
40
|
+
- **⏰ Scheduled Cleanup** — Automate regular cleanup tasks (v1.6.0)
|
|
41
|
+
- **📈 App Update Checker** — Check for available updates (v1.7.0)
|
|
42
|
+
- **🚀 Performance Optimizer** — Multi-threaded scanning & caching (v1.8.0)
|
|
43
|
+
|
|
44
|
+
## 🚀 Installation
|
|
45
|
+
|
|
46
|
+
### Quick Install (npm)
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm install -g appclean
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### From Source
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
git clone https://github.com/praveenkay/AppClean.git
|
|
56
|
+
cd AppClean
|
|
57
|
+
npm install
|
|
58
|
+
npm run build
|
|
59
|
+
npm install -g .
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Requirements:** Node.js 16+ and npm 7+
|
|
63
|
+
|
|
64
|
+
## 💻 Usage
|
|
65
|
+
|
|
66
|
+
### Interactive Mode
|
|
67
|
+
|
|
68
|
+
Simply run:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
appclean
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Then use arrow keys to navigate and select actions:
|
|
75
|
+
- 🔍 Search for applications
|
|
76
|
+
- 📋 List all installed apps
|
|
77
|
+
- 📊 View app details and artifacts
|
|
78
|
+
- 🗑️ Remove applications safely
|
|
79
|
+
|
|
80
|
+
### Command Mode
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Search for an app
|
|
84
|
+
appclean search webpack
|
|
85
|
+
|
|
86
|
+
# List all applications
|
|
87
|
+
appclean list
|
|
88
|
+
|
|
89
|
+
# Analyze app artifacts before removal
|
|
90
|
+
appclean analyze webpack
|
|
91
|
+
|
|
92
|
+
# Preview removal (no files deleted)
|
|
93
|
+
appclean remove webpack --dry-run
|
|
94
|
+
|
|
95
|
+
# Remove with backup
|
|
96
|
+
appclean remove webpack --backup
|
|
97
|
+
|
|
98
|
+
# Remove without confirmations
|
|
99
|
+
appclean remove webpack --force
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Supported Package Managers
|
|
103
|
+
|
|
104
|
+
| Manager | Platform | Support |
|
|
105
|
+
|---------|----------|---------|
|
|
106
|
+
| npm | All | ✅ |
|
|
107
|
+
| yarn | All | ✅ |
|
|
108
|
+
| pnpm | All | ✅ |
|
|
109
|
+
| Homebrew | macOS, Linux | ✅ |
|
|
110
|
+
| apt | Linux | ✅ |
|
|
111
|
+
| yum | Linux | ✅ |
|
|
112
|
+
| dnf | Linux | ✅ |
|
|
113
|
+
| Custom Scripts | All | ✅ |
|
|
114
|
+
|
|
115
|
+
## How It Works
|
|
116
|
+
|
|
117
|
+
AppClean intelligently detects and removes applications by:
|
|
118
|
+
|
|
119
|
+
1. **Scanning Installation Locations**
|
|
120
|
+
- Checks npm/yarn/pnpm global directories
|
|
121
|
+
- Queries Homebrew installation database
|
|
122
|
+
- Searches Linux package manager databases
|
|
123
|
+
- Scans custom binary locations
|
|
124
|
+
|
|
125
|
+
2. **Locating Related Files**
|
|
126
|
+
- Configuration files (`~/.config`, `~/.bashrc`, etc.)
|
|
127
|
+
- Cache directories
|
|
128
|
+
- Data files and logs
|
|
129
|
+
- Service files (systemd, LaunchAgents, etc.)
|
|
130
|
+
|
|
131
|
+
3. **Safe Removal**
|
|
132
|
+
- Preview all files to be removed with `--dry-run`
|
|
133
|
+
- Create optional backups before deletion
|
|
134
|
+
- Double confirmation before final removal
|
|
135
|
+
- Detailed error reporting
|
|
136
|
+
|
|
137
|
+
## 📚 Examples
|
|
138
|
+
|
|
139
|
+
### Interactive Search and Remove
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
$ appclean search webpack
|
|
143
|
+
ℹ Found 1 app(s)
|
|
144
|
+
|
|
145
|
+
? Select an app to remove: (Use arrow keys)
|
|
146
|
+
❯ webpack (npm) - v5.89.0
|
|
147
|
+
|
|
148
|
+
? What would you like to do? (Use arrow keys)
|
|
149
|
+
❯ 📊 View details and artifacts
|
|
150
|
+
🗑️ Remove this app
|
|
151
|
+
⬅️ Back to search
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Preview Before Removal
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
$ appclean remove webpack --dry-run
|
|
158
|
+
|
|
159
|
+
ℹ Files to be removed:
|
|
160
|
+
binary 512 B /usr/local/bin/webpack
|
|
161
|
+
config 1.2 KB ~/.config/webpack
|
|
162
|
+
cache 15 MB ~/.cache/webpack
|
|
163
|
+
data 2.3 MB ~/.local/share/webpack
|
|
164
|
+
log 512 B ~/.local/share/log/webpack
|
|
165
|
+
|
|
166
|
+
ℹ Total space to be freed: 17.5 MB
|
|
167
|
+
|
|
168
|
+
✓ This is a preview only. No files were removed.
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Safe Removal with Backup
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
$ appclean remove webpack --backup
|
|
175
|
+
|
|
176
|
+
ℹ App: webpack
|
|
177
|
+
ℹ Method: npm
|
|
178
|
+
ℹ Version: 5.89.0
|
|
179
|
+
|
|
180
|
+
? This action cannot be undone. Remove webpack and all its files? (y/N) y
|
|
181
|
+
|
|
182
|
+
✓ Backup created: ~/.appclean-backups/webpack-2024-01-20T15-30-45.tar.gz
|
|
183
|
+
✓ Successfully removed webpack (freed 17.5 MB)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Check for Duplicate Files
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
$ appclean find-duplicates ~/Documents ~/Downloads
|
|
190
|
+
|
|
191
|
+
ℹ Scanning for duplicate files...
|
|
192
|
+
✓ Found 3 duplicate groups
|
|
193
|
+
Group 1: report.pdf (2.5 MB)
|
|
194
|
+
- ~/Documents/reports/report.pdf
|
|
195
|
+
- ~/Downloads/report.pdf
|
|
196
|
+
|
|
197
|
+
Group 2: image.png (1.2 MB)
|
|
198
|
+
- ~/Documents/images/image.png
|
|
199
|
+
- ~/Pictures/image.png
|
|
200
|
+
|
|
201
|
+
💾 Potential space savings: 3.7 MB
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Check for Updates
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
$ appclean check-updates
|
|
208
|
+
|
|
209
|
+
📦 webpack: 5.89.0 → Latest: 5.90.0
|
|
210
|
+
npm install -g webpack@latest
|
|
211
|
+
|
|
212
|
+
📦 typescript: 5.3.3 → Latest: 5.4.0
|
|
213
|
+
npm install -g typescript@latest
|
|
214
|
+
|
|
215
|
+
✓ Found 2 updates available
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### List All Installed Apps
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
$ appclean list
|
|
222
|
+
ℹ Found 42 app(s)
|
|
223
|
+
|
|
224
|
+
┌──────────────┬──────────┬──────────┐
|
|
225
|
+
│ Name │ Version │ Method │
|
|
226
|
+
├──────────────┼──────────┼──────────┤
|
|
227
|
+
│ webpack │ 5.89.0 │ npm │
|
|
228
|
+
│ typescript │ 5.3.3 │ npm │
|
|
229
|
+
│ lodash │ 4.17.21 │ npm │
|
|
230
|
+
│ node │ 20.10.0 │ custom │
|
|
231
|
+
│ git │ 2.43.0 │ brew │
|
|
232
|
+
│ python │ 3.11.7 │ system │
|
|
233
|
+
└──────────────┴──────────┴──────────┘
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Commands & Options
|
|
237
|
+
|
|
238
|
+
### Core Commands
|
|
239
|
+
```bash
|
|
240
|
+
appclean search <query> # Search for installed applications
|
|
241
|
+
appclean list # List all installed applications
|
|
242
|
+
appclean analyze <appName> # Analyze an application and show its artifacts
|
|
243
|
+
appclean remove <appName> # Remove an application
|
|
244
|
+
appclean gui # Launch GUI application (v1.2.0+)
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Advanced Commands (v1.2.0 - v1.8.0)
|
|
248
|
+
```bash
|
|
249
|
+
# Duplicate file operations
|
|
250
|
+
appclean find-duplicates [paths] # Find duplicate files (v1.3.0)
|
|
251
|
+
|
|
252
|
+
# Dependency management
|
|
253
|
+
appclean find-orphaned-packages # Find unused npm packages (v1.4.0)
|
|
254
|
+
|
|
255
|
+
# Plugin management
|
|
256
|
+
appclean plugin register <path> # Register custom plugin (v1.5.0)
|
|
257
|
+
appclean plugin list # List installed plugins (v1.5.0)
|
|
258
|
+
appclean plugin enable <name> # Enable plugin (v1.5.0)
|
|
259
|
+
|
|
260
|
+
# Schedule management
|
|
261
|
+
appclean schedule create <app> # Create cleanup schedule (v1.6.0)
|
|
262
|
+
appclean schedule list # List all schedules (v1.6.0)
|
|
263
|
+
appclean schedule delete <id> # Delete schedule (v1.6.0)
|
|
264
|
+
|
|
265
|
+
# Update checking
|
|
266
|
+
appclean check-updates # Check for available updates (v1.7.0)
|
|
267
|
+
appclean update <appName> # Update an application (v1.7.0)
|
|
268
|
+
|
|
269
|
+
# Performance
|
|
270
|
+
appclean scan --optimize # Optimize scan performance (v1.8.0)
|
|
271
|
+
appclean clear-cache # Clear scan cache (v1.8.0)
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Common Options
|
|
275
|
+
```bash
|
|
276
|
+
--dry-run # Preview without removing files
|
|
277
|
+
--backup # Create backup before removal
|
|
278
|
+
--force # Skip confirmation prompts
|
|
279
|
+
--help # Show help information
|
|
280
|
+
--version # Show version information
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## Safety Features
|
|
284
|
+
|
|
285
|
+
⚠️ **AppClean prioritizes safety**:
|
|
286
|
+
|
|
287
|
+
- **Dry-run by default**: Use `--dry-run` to preview what will be deleted
|
|
288
|
+
- **Double confirmation**: You'll be asked to confirm twice before actual removal
|
|
289
|
+
- **Backups**: Create optional backups before removing apps
|
|
290
|
+
- **Detailed logging**: See exactly what's being removed
|
|
291
|
+
- **Error reporting**: Clear error messages if something goes wrong
|
|
292
|
+
|
|
293
|
+
## Latest Features Guide (v1.1.0 - v1.8.0)
|
|
294
|
+
|
|
295
|
+
### v1.1.0 - Advanced Features
|
|
296
|
+
- **Elevated Permissions**: Automatically detects and requests sudo/admin access
|
|
297
|
+
- **Service File Detection**: Identifies LaunchAgent/LaunchDaemon (macOS) and systemd (Linux) files
|
|
298
|
+
- **User Consent Recording**: Tracks all removal operations with timestamps
|
|
299
|
+
- **Post-Removal Verification**: Confirms complete app removal via filesystem and commands
|
|
300
|
+
- **Professional Reports**: Generate HTML and text reports with legal disclaimers
|
|
301
|
+
|
|
302
|
+
**Usage:**
|
|
303
|
+
```bash
|
|
304
|
+
appclean remove app-name # Automatic elevation detection
|
|
305
|
+
appclean remove app-name --backup # Creates backup before removal
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### v1.2.0 - GUI Application
|
|
309
|
+
Modern web-based interface for visual app management.
|
|
310
|
+
|
|
311
|
+
**Usage:**
|
|
312
|
+
```bash
|
|
313
|
+
appclean gui # Opens GUI at http://localhost:3000
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### v1.3.0 - Duplicate File Finder
|
|
317
|
+
Find and manage duplicate files by SHA256 hash.
|
|
318
|
+
|
|
319
|
+
**Usage:**
|
|
320
|
+
```bash
|
|
321
|
+
appclean find-duplicates ~/Documents ~/Downloads
|
|
322
|
+
appclean find-duplicates --recursive / # Search entire filesystem
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### v1.4.0 - Orphaned Dependency Detector
|
|
326
|
+
Identify npm packages with no project dependencies.
|
|
327
|
+
|
|
328
|
+
**Usage:**
|
|
329
|
+
```bash
|
|
330
|
+
appclean find-orphaned-packages # Find all unused packages
|
|
331
|
+
appclean find-orphaned-packages --dry-run # Preview without removal
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### v1.5.0 - Plugin System
|
|
335
|
+
Extend AppClean with custom application detectors.
|
|
336
|
+
|
|
337
|
+
**Usage:**
|
|
338
|
+
```bash
|
|
339
|
+
appclean plugin register ./my-plugin.js
|
|
340
|
+
appclean plugin list
|
|
341
|
+
appclean plugin enable my-plugin
|
|
342
|
+
appclean plugin config my-plugin --setting value
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### v1.6.0 - Scheduled Cleanup Automation
|
|
346
|
+
Automate cleanup with recurring schedules.
|
|
347
|
+
|
|
348
|
+
**Usage:**
|
|
349
|
+
```bash
|
|
350
|
+
appclean schedule create webpack --frequency daily
|
|
351
|
+
appclean schedule create node --frequency weekly --backup
|
|
352
|
+
appclean schedule list
|
|
353
|
+
appclean schedule update schedule-id --frequency monthly
|
|
354
|
+
appclean schedule delete schedule-id
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### v1.7.0 - App Update Checker
|
|
358
|
+
Check for available updates across all package managers.
|
|
359
|
+
|
|
360
|
+
**Usage:**
|
|
361
|
+
```bash
|
|
362
|
+
appclean check-updates # Check all apps
|
|
363
|
+
appclean check-updates webpack # Check specific app
|
|
364
|
+
appclean update webpack # Update app
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### v1.8.0 - Performance Optimizer
|
|
368
|
+
Optimize scanning performance for large systems.
|
|
369
|
+
|
|
370
|
+
**Features:**
|
|
371
|
+
- Multi-threaded scanning (configurable threads)
|
|
372
|
+
- Intelligent result caching
|
|
373
|
+
- Performance metrics and reporting
|
|
374
|
+
- Automatic optimization recommendations
|
|
375
|
+
|
|
376
|
+
**Usage:**
|
|
377
|
+
```bash
|
|
378
|
+
appclean scan --optimize # Use optimization settings
|
|
379
|
+
appclean scan --threads 8 # Set thread count
|
|
380
|
+
appclean clear-cache # Clear cached scan results
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
## Platform-Specific Notes
|
|
384
|
+
|
|
385
|
+
### macOS
|
|
386
|
+
- Detects both Intel and Apple Silicon installations
|
|
387
|
+
- Removes LaunchAgents and LaunchDaemons
|
|
388
|
+
- Cleans Application Support directories
|
|
389
|
+
- Handles .plist preference files
|
|
390
|
+
|
|
391
|
+
### Linux
|
|
392
|
+
- Supports apt, yum, and dnf package managers
|
|
393
|
+
- Removes systemd service files
|
|
394
|
+
- Cleans .config and .local directories
|
|
395
|
+
- Handles /var/log files
|
|
396
|
+
|
|
397
|
+
### Windows
|
|
398
|
+
- Scans Program Files directories
|
|
399
|
+
- Removes APPDATA and LOCALAPPDATA entries
|
|
400
|
+
- Handles .exe files and shortcuts
|
|
401
|
+
|
|
402
|
+
## Troubleshooting
|
|
403
|
+
|
|
404
|
+
### App not found
|
|
405
|
+
|
|
406
|
+
```bash
|
|
407
|
+
appclean search partial-name
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
Try searching with a partial name. AppClean searches by substring.
|
|
411
|
+
|
|
412
|
+
### Permission denied
|
|
413
|
+
|
|
414
|
+
Some system files may require elevated permissions:
|
|
415
|
+
|
|
416
|
+
```bash
|
|
417
|
+
sudo appclean remove app-name
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
### Can't restore backup
|
|
421
|
+
|
|
422
|
+
Backups are stored in `~/.appclean-backups/`:
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
ls ~/.appclean-backups/
|
|
426
|
+
tar -xzf ~/.appclean-backups/app-backup.tar.gz
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
## Data & Storage Locations
|
|
430
|
+
|
|
431
|
+
AppClean stores all data in user home directory:
|
|
432
|
+
|
|
433
|
+
| Data | Location | Purpose |
|
|
434
|
+
|------|----------|---------|
|
|
435
|
+
| Backups | `~/.appclean-backups/` | App removal backups |
|
|
436
|
+
| Records | `~/.appclean-records/` | Removal operation history |
|
|
437
|
+
| Reports | `~/.appclean-reports/` | Generated HTML/text reports |
|
|
438
|
+
| Schedules | `~/.appclean-schedules.json` | Cleanup automation schedules |
|
|
439
|
+
| Cache | `~/.appclean-cache/` | Scan result cache |
|
|
440
|
+
| Results | `~/.appclean-cleanup-results/` | Scheduled cleanup results |
|
|
441
|
+
|
|
442
|
+
All data is stored locally on your machine. No cloud upload or external connections.
|
|
443
|
+
|
|
444
|
+
## Performance Tips
|
|
445
|
+
|
|
446
|
+
### For Large Systems (100k+ files)
|
|
447
|
+
1. Use v1.8.0 Performance Optimizer
|
|
448
|
+
2. Enable result caching: `appclean scan --cache`
|
|
449
|
+
3. Increase thread count: `appclean scan --threads 8`
|
|
450
|
+
4. Exclude system directories: `--exclude /usr --exclude /var`
|
|
451
|
+
|
|
452
|
+
### For Faster Scans
|
|
453
|
+
1. Use caching: Results are automatically cached
|
|
454
|
+
2. Skip deep directory scans: Set `--max-depth 5`
|
|
455
|
+
3. Exclude symlinks: Enabled by default
|
|
456
|
+
4. Pre-filter patterns: Use exclude patterns
|
|
457
|
+
|
|
458
|
+
## Development
|
|
459
|
+
|
|
460
|
+
### Setup
|
|
461
|
+
|
|
462
|
+
```bash
|
|
463
|
+
git clone https://github.com/YOUR_USERNAME/appclean.git
|
|
464
|
+
cd appclean
|
|
465
|
+
npm install
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
### Build
|
|
469
|
+
|
|
470
|
+
```bash
|
|
471
|
+
npm run build
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### Development Server
|
|
475
|
+
|
|
476
|
+
```bash
|
|
477
|
+
npm run dev
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
### Run Tests
|
|
481
|
+
|
|
482
|
+
```bash
|
|
483
|
+
npm test
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
## Contributing
|
|
487
|
+
|
|
488
|
+
Contributions are welcome! Please:
|
|
489
|
+
|
|
490
|
+
1. Fork the repository
|
|
491
|
+
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
|
492
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
493
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
494
|
+
5. Open a Pull Request
|
|
495
|
+
|
|
496
|
+
## Version History & Roadmap
|
|
497
|
+
|
|
498
|
+
### Completed Features ✅
|
|
499
|
+
- [x] **v1.0.0** - Initial release with core functionality
|
|
500
|
+
- [x] **v1.1.0** - Advanced features (permissions, service detection, reporting)
|
|
501
|
+
- [x] **v1.2.0** - GUI application for all platforms
|
|
502
|
+
- [x] **v1.3.0** - Duplicate file finder
|
|
503
|
+
- [x] **v1.4.0** - Orphaned dependency detection
|
|
504
|
+
- [x] **v1.5.0** - Plugin system for custom detectors
|
|
505
|
+
- [x] **v1.6.0** - Scheduled cleanup automation
|
|
506
|
+
- [x] **v1.7.0** - App update checker
|
|
507
|
+
- [x] **v1.8.0** - Performance optimization for large scans
|
|
508
|
+
|
|
509
|
+
### Future Roadmap 🚀
|
|
510
|
+
- [ ] Mobile app (iOS/Android)
|
|
511
|
+
- [ ] Advanced caching system
|
|
512
|
+
- [ ] Batch operations
|
|
513
|
+
- [ ] Custom rule builder
|
|
514
|
+
- [ ] System notifications
|
|
515
|
+
- [ ] Cloud sync for schedules
|
|
516
|
+
- [ ] Advanced analytics dashboard
|
|
517
|
+
|
|
518
|
+
## Known Limitations
|
|
519
|
+
|
|
520
|
+
- System packages may require elevated permissions to remove
|
|
521
|
+
- Some service files may need manual cleanup
|
|
522
|
+
- Snap packages (Linux) are currently not supported
|
|
523
|
+
|
|
524
|
+
## License
|
|
525
|
+
|
|
526
|
+
MIT License © 2026
|
|
527
|
+
|
|
528
|
+
## Disclaimer
|
|
529
|
+
|
|
530
|
+
⚠️ **Use with caution**: This tool permanently deletes files. Always use `--dry-run` first to preview changes.
|
|
531
|
+
|
|
532
|
+
## 🤝 Support & Community
|
|
533
|
+
|
|
534
|
+
- **🐛 [Report Issues](https://github.com/praveenkay/AppClean/issues)** — Found a bug? Let us know
|
|
535
|
+
- **💬 [Discussions](https://github.com/praveenkay/AppClean/discussions)** — Share ideas and feedback
|
|
536
|
+
- **⭐ [Star on GitHub](https://github.com/praveenkay/AppClean)** — Show your support
|
|
537
|
+
|
|
538
|
+
## 📄 License
|
|
539
|
+
|
|
540
|
+
MIT License © 2026 [Praveen Kothapally](https://github.com/praveenkay)
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
**Built with care for developers and system administrators who value clean systems**
|
|
545
|
+
|
|
546
|
+
<div align="center">
|
|
547
|
+
Made with ❤️ by <a href="https://github.com/praveenkay">Praveen Kothapally</a>
|
|
548
|
+
</div>
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting Security Issues
|
|
4
|
+
|
|
5
|
+
**Do not open public GitHub issues for security vulnerabilities.**
|
|
6
|
+
|
|
7
|
+
If you discover a security vulnerability in AppClean, please report it responsibly by:
|
|
8
|
+
|
|
9
|
+
1. **Email**: Send details to the maintainer via GitHub (check profile for contact)
|
|
10
|
+
2. **GitHub Security Advisory**: Use GitHub's private vulnerability reporting feature
|
|
11
|
+
3. **Include**:
|
|
12
|
+
- Description of the vulnerability
|
|
13
|
+
- Steps to reproduce
|
|
14
|
+
- Potential impact
|
|
15
|
+
- Suggested fix (if you have one)
|
|
16
|
+
|
|
17
|
+
We will:
|
|
18
|
+
- Acknowledge receipt within 48 hours
|
|
19
|
+
- Provide a timeline for a fix
|
|
20
|
+
- Credit you in the advisory (unless you prefer anonymity)
|
|
21
|
+
- Work with you on the patch
|
|
22
|
+
|
|
23
|
+
## Supported Versions
|
|
24
|
+
|
|
25
|
+
| Version | Status | Support |
|
|
26
|
+
|---------|--------|---------|
|
|
27
|
+
| 1.8.x | Current | Security + Bug fixes |
|
|
28
|
+
| 1.7.x | Active | Security fixes only |
|
|
29
|
+
| < 1.7.0 | Outdated | Best effort |
|
|
30
|
+
|
|
31
|
+
## Security Considerations
|
|
32
|
+
|
|
33
|
+
### What AppClean Does
|
|
34
|
+
- Reads file system metadata
|
|
35
|
+
- Executes system commands (with your permission)
|
|
36
|
+
- Stores operation records locally
|
|
37
|
+
- Creates backups of removed artifacts
|
|
38
|
+
|
|
39
|
+
### What AppClean Does NOT Do
|
|
40
|
+
- Modify system files outside designated removal targets
|
|
41
|
+
- Send data to external servers
|
|
42
|
+
- Collect personal information
|
|
43
|
+
- Store sensitive data
|
|
44
|
+
|
|
45
|
+
### Best Practices
|
|
46
|
+
1. **Always use `--dry-run` first** to preview what will be removed
|
|
47
|
+
2. **Create backups** before major removals (`--backup` flag)
|
|
48
|
+
3. **Run as regular user** when possible, not as root
|
|
49
|
+
4. **Review removal details** before confirming
|
|
50
|
+
5. **Keep AppClean updated** to get security patches
|
|
51
|
+
|
|
52
|
+
## Dependencies
|
|
53
|
+
|
|
54
|
+
AppClean has minimal dependencies:
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"chalk": "^4.1.2",
|
|
59
|
+
"commander": "^11.1.0",
|
|
60
|
+
"inquirer": "^8.2.6",
|
|
61
|
+
"ora": "^5.4.1"
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
We monitor dependencies for security updates using:
|
|
66
|
+
- npm audit
|
|
67
|
+
- Dependabot
|
|
68
|
+
- Manual reviews
|
|
69
|
+
|
|
70
|
+
## Data Privacy
|
|
71
|
+
|
|
72
|
+
- **No external connections**: AppClean only reads/writes local files
|
|
73
|
+
- **No data collection**: No usage statistics or telemetry
|
|
74
|
+
- **Transparent operations**: All actions are logged locally
|
|
75
|
+
- **User control**: You control what gets removed
|
|
76
|
+
|
|
77
|
+
## Disclosure Policy
|
|
78
|
+
|
|
79
|
+
We follow responsible disclosure:
|
|
80
|
+
|
|
81
|
+
1. Vulnerability reported privately
|
|
82
|
+
2. We develop and test a fix
|
|
83
|
+
3. Security patch released
|
|
84
|
+
4. Public disclosure and credit (with your consent)
|
|
85
|
+
5. CVE assigned if critical
|
|
86
|
+
|
|
87
|
+
## Compliance
|
|
88
|
+
|
|
89
|
+
AppClean is designed to:
|
|
90
|
+
- Respect file permissions
|
|
91
|
+
- Work with system security features
|
|
92
|
+
- Maintain audit trails
|
|
93
|
+
- Support air-gapped/offline usage
|
|
94
|
+
|
|
95
|
+
## Contact
|
|
96
|
+
|
|
97
|
+
For security concerns:
|
|
98
|
+
- Check GitHub profile for current contact method
|
|
99
|
+
- Use GitHub's private vulnerability reporting
|
|
100
|
+
- Refer to this document for process
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
**Thank you for helping keep AppClean secure! 🔒**
|