appclean 1.8.0 → 2.0.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/GUI_IMPLEMENTATION_STATUS.md +143 -0
- package/MD_Files/INDEX.md +51 -0
- package/MD_Files/PUBLICATION_SUCCESS_REPORT.md +227 -0
- package/PHASE2_COMPLETION.md +281 -0
- package/PHASE3_COMPLETION.md +364 -0
- package/README.md +446 -376
- package/assets/logo.svg +34 -0
- package/dist/core/appUpdateChecker.js +12 -16
- package/dist/core/appUpdateChecker.js.map +1 -1
- package/dist/core/detector.js +14 -18
- package/dist/core/detector.js.map +1 -1
- package/dist/core/duplicateFileFinder.js +12 -19
- package/dist/core/duplicateFileFinder.js.map +1 -1
- package/dist/core/orphanedDependencyDetector.js +19 -26
- package/dist/core/orphanedDependencyDetector.js.map +1 -1
- package/dist/core/performanceOptimizer.js +6 -10
- package/dist/core/performanceOptimizer.js.map +1 -1
- package/dist/core/permissionHandler.js +21 -25
- package/dist/core/permissionHandler.js.map +1 -1
- package/dist/core/pluginSystem.js +9 -13
- package/dist/core/pluginSystem.js.map +1 -1
- package/dist/core/removalRecorder.js +12 -19
- package/dist/core/removalRecorder.js.map +1 -1
- package/dist/core/remover.js +59 -66
- package/dist/core/remover.js.map +1 -1
- package/dist/core/reportGenerator.d.ts +1 -1
- package/dist/core/reportGenerator.d.ts.map +1 -1
- package/dist/core/reportGenerator.js +27 -34
- package/dist/core/reportGenerator.js.map +1 -1
- package/dist/core/scheduledCleanup.js +23 -30
- package/dist/core/scheduledCleanup.js.map +1 -1
- package/dist/core/serviceFileDetector.js +24 -31
- package/dist/core/serviceFileDetector.js.map +1 -1
- package/dist/core/verificationModule.js +10 -14
- package/dist/core/verificationModule.js.map +1 -1
- package/dist/index.js +190 -90
- package/dist/index.js.map +1 -1
- package/dist/managers/brewManager.d.ts.map +1 -1
- package/dist/managers/brewManager.js +35 -41
- package/dist/managers/brewManager.js.map +1 -1
- package/dist/managers/customManager.d.ts +2 -1
- package/dist/managers/customManager.d.ts.map +1 -1
- package/dist/managers/customManager.js +79 -53
- package/dist/managers/customManager.js.map +1 -1
- package/dist/managers/linuxManager.js +29 -36
- package/dist/managers/linuxManager.js.map +1 -1
- package/dist/managers/npmManager.js +27 -34
- package/dist/managers/npmManager.js.map +1 -1
- package/dist/types/index.js +1 -2
- package/dist/ui/client/api/client.d.ts +24 -0
- package/dist/ui/client/api/client.d.ts.map +1 -0
- package/dist/ui/client/api/client.js +96 -0
- package/dist/ui/client/api/client.js.map +1 -0
- package/dist/ui/client/app.d.ts +7 -0
- package/dist/ui/client/app.d.ts.map +1 -0
- package/dist/ui/client/app.js +71 -0
- package/dist/ui/client/app.js.map +1 -0
- package/dist/ui/client/index.html +107 -0
- package/dist/ui/client/pages/appDetails.d.ts +8 -0
- package/dist/ui/client/pages/appDetails.d.ts.map +1 -0
- package/dist/ui/client/pages/appDetails.js +287 -0
- package/dist/ui/client/pages/appDetails.js.map +1 -0
- package/dist/ui/client/pages/appSearch.d.ts +2 -0
- package/dist/ui/client/pages/appSearch.d.ts.map +1 -0
- package/dist/ui/client/pages/appSearch.js +210 -0
- package/dist/ui/client/pages/appSearch.js.map +1 -0
- package/dist/ui/client/pages/dashboard.d.ts +2 -0
- package/dist/ui/client/pages/dashboard.d.ts.map +1 -0
- package/dist/ui/client/pages/dashboard.js +154 -0
- package/dist/ui/client/pages/dashboard.js.map +1 -0
- package/dist/ui/client/pages/settings.d.ts +7 -0
- package/dist/ui/client/pages/settings.d.ts.map +1 -0
- package/dist/ui/client/pages/settings.js +279 -0
- package/dist/ui/client/pages/settings.js.map +1 -0
- package/dist/ui/client/state/appStore.d.ts +38 -0
- package/dist/ui/client/state/appStore.d.ts.map +1 -0
- package/dist/ui/client/state/appStore.js +121 -0
- package/dist/ui/client/state/appStore.js.map +1 -0
- package/dist/ui/client/state/dashboardStore.d.ts +31 -0
- package/dist/ui/client/state/dashboardStore.d.ts.map +1 -0
- package/dist/ui/client/state/dashboardStore.js +70 -0
- package/dist/ui/client/state/dashboardStore.js.map +1 -0
- package/dist/ui/client/state/uiStore.d.ts +43 -0
- package/dist/ui/client/state/uiStore.d.ts.map +1 -0
- package/dist/ui/client/state/uiStore.js +109 -0
- package/dist/ui/client/state/uiStore.js.map +1 -0
- package/dist/ui/client/styles/animations.css +327 -0
- package/dist/ui/client/styles/base.css +214 -0
- package/dist/ui/client/styles/components.css +400 -0
- package/dist/ui/client/styles/layout.css +224 -0
- package/dist/ui/client/styles/variables.css +140 -0
- package/dist/ui/client/utils/events.d.ts +19 -0
- package/dist/ui/client/utils/events.d.ts.map +1 -0
- package/dist/ui/client/utils/events.js +54 -0
- package/dist/ui/client/utils/events.js.map +1 -0
- package/dist/ui/client/utils/formatting.d.ts +11 -0
- package/dist/ui/client/utils/formatting.d.ts.map +1 -0
- package/dist/ui/client/utils/formatting.js +104 -0
- package/dist/ui/client/utils/formatting.js.map +1 -0
- package/dist/ui/client/utils/router.d.ts +25 -0
- package/dist/ui/client/utils/router.d.ts.map +1 -0
- package/dist/ui/client/utils/router.js +90 -0
- package/dist/ui/client/utils/router.js.map +1 -0
- package/dist/ui/guiServer.d.ts +8 -1
- package/dist/ui/guiServer.d.ts.map +1 -1
- package/dist/ui/guiServer.js +148 -110
- package/dist/ui/guiServer.js.map +1 -1
- package/dist/ui/menu.js +18 -27
- package/dist/ui/menu.js.map +1 -1
- package/dist/ui/prompts.js +34 -47
- package/dist/ui/prompts.js.map +1 -1
- package/dist/ui/server/middleware/errorHandler.d.ts +19 -0
- package/dist/ui/server/middleware/errorHandler.d.ts.map +1 -0
- package/dist/ui/server/middleware/errorHandler.js +100 -0
- package/dist/ui/server/middleware/errorHandler.js.map +1 -0
- package/dist/ui/server/routes/apps.d.ts +8 -0
- package/dist/ui/server/routes/apps.d.ts.map +1 -0
- package/dist/ui/server/routes/apps.js +74 -0
- package/dist/ui/server/routes/apps.js.map +1 -0
- package/dist/ui/server/routes/dashboard.d.ts +4 -0
- package/dist/ui/server/routes/dashboard.d.ts.map +1 -0
- package/dist/ui/server/routes/dashboard.js +57 -0
- package/dist/ui/server/routes/dashboard.js.map +1 -0
- package/dist/ui/server/routes/settings.d.ts +6 -0
- package/dist/ui/server/routes/settings.d.ts.map +1 -0
- package/dist/ui/server/routes/settings.js +31 -0
- package/dist/ui/server/routes/settings.js.map +1 -0
- package/dist/ui/server/services/appService.d.ts +45 -0
- package/dist/ui/server/services/appService.d.ts.map +1 -0
- package/dist/ui/server/services/appService.js +114 -0
- package/dist/ui/server/services/appService.js.map +1 -0
- package/dist/ui/server/services/removalService.d.ts +24 -0
- package/dist/ui/server/services/removalService.d.ts.map +1 -0
- package/dist/ui/server/services/removalService.js +83 -0
- package/dist/ui/server/services/removalService.js.map +1 -0
- package/dist/utils/filesystem.js +32 -49
- package/dist/utils/filesystem.js.map +1 -1
- package/dist/utils/logger.js +9 -18
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/platform.js +10 -22
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/upgrade.d.ts +22 -0
- package/dist/utils/upgrade.d.ts.map +1 -0
- package/dist/utils/upgrade.js +94 -0
- package/dist/utils/upgrade.js.map +1 -0
- package/package.json +4 -2
- package/src/core/appUpdateChecker.ts +1 -1
- package/src/core/detector.ts +6 -6
- package/src/core/duplicateFileFinder.ts +1 -1
- package/src/core/orphanedDependencyDetector.ts +2 -2
- package/src/core/performanceOptimizer.ts +1 -1
- package/src/core/permissionHandler.ts +2 -2
- package/src/core/pluginSystem.ts +1 -1
- package/src/core/removalRecorder.ts +2 -2
- package/src/core/remover.ts +11 -11
- package/src/core/reportGenerator.ts +2 -2
- package/src/core/scheduledCleanup.ts +2 -2
- package/src/core/serviceFileDetector.ts +2 -2
- package/src/core/verificationModule.ts +2 -2
- package/src/index.ts +133 -6
- package/src/managers/brewManager.ts +11 -9
- package/src/managers/customManager.ts +71 -30
- package/src/managers/linuxManager.ts +3 -3
- package/src/managers/npmManager.ts +3 -3
- package/src/ui/client/api/client.ts +163 -0
- package/src/ui/client/app.ts +121 -0
- package/src/ui/client/index.html +107 -0
- package/src/ui/client/pages/appDetails.ts +356 -0
- package/src/ui/client/pages/appSearch.ts +270 -0
- package/src/ui/client/pages/dashboard.ts +189 -0
- package/src/ui/client/pages/settings.ts +342 -0
- package/src/ui/client/state/appStore.ts +169 -0
- package/src/ui/client/state/dashboardStore.ts +113 -0
- package/src/ui/client/state/uiStore.ts +166 -0
- package/src/ui/client/styles/animations.css +327 -0
- package/src/ui/client/styles/base.css +214 -0
- package/src/ui/client/styles/components.css +400 -0
- package/src/ui/client/styles/layout.css +224 -0
- package/src/ui/client/styles/variables.css +140 -0
- package/src/ui/client/utils/events.ts +74 -0
- package/src/ui/client/utils/formatting.ts +157 -0
- package/src/ui/client/utils/router.ts +161 -0
- package/src/ui/guiServer.ts +206 -105
- package/src/ui/prompts.ts +1 -1
- package/src/ui/server/middleware/errorHandler.ts +174 -0
- package/src/ui/server/routes/apps.ts +132 -0
- package/src/ui/server/routes/dashboard.ts +93 -0
- package/src/ui/server/routes/settings.ts +63 -0
- package/src/ui/server/services/appService.ts +184 -0
- package/src/ui/server/services/removalService.ts +138 -0
- package/src/utils/upgrade.ts +143 -0
- package/tsconfig.json +3 -2
- package/INDEX.md +0 -165
- /package/{ACTION_CHECKLIST.md → MD_Files/ACTION_CHECKLIST.md} +0 -0
- /package/{APPCLEAN_SUMMARY.md → MD_Files/APPCLEAN_SUMMARY.md} +0 -0
- /package/{CHANGELOG.md → MD_Files/CHANGELOG.md} +0 -0
- /package/{CODE_OF_CONDUCT.md → MD_Files/CODE_OF_CONDUCT.md} +0 -0
- /package/{CODE_REVIEW_REPORT.md → MD_Files/CODE_REVIEW_REPORT.md} +0 -0
- /package/{COMMUNITY_POSTS.md → MD_Files/COMMUNITY_POSTS.md} +0 -0
- /package/{DEPLOYMENT_GUIDE.md → MD_Files/DEPLOYMENT_GUIDE.md} +0 -0
- /package/{DEPLOYMENT_STATUS.md → MD_Files/DEPLOYMENT_STATUS.md} +0 -0
- /package/{EXECUTIVE_REPORT.md → MD_Files/EXECUTIVE_REPORT.md} +0 -0
- /package/{GITHUB_OPTIMIZATION.md → MD_Files/GITHUB_OPTIMIZATION.md} +0 -0
- /package/{MARKETING_SUMMARY.md → MD_Files/MARKETING_SUMMARY.md} +0 -0
- /package/{NPM_PACKAGE_OPTIMIZATION.md → MD_Files/NPM_PACKAGE_OPTIMIZATION.md} +0 -0
- /package/{NPM_PUBLISH.md → MD_Files/NPM_PUBLISH.md} +0 -0
- /package/{PROJECT_SUMMARY.txt → MD_Files/PROJECT_SUMMARY.txt} +0 -0
- /package/{QUICKSTART.md → MD_Files/QUICKSTART.md} +0 -0
- /package/{SETUP_GITHUB.md → MD_Files/SETUP_GITHUB.md} +0 -0
- /package/{TESTING_SUMMARY.md → MD_Files/TESTING_SUMMARY.md} +0 -0
- /package/{setup-github.sh → MD_Files/setup-github.sh} +0 -0
package/README.md
CHANGED
|
@@ -1,548 +1,618 @@
|
|
|
1
1
|
<div align="center">
|
|
2
|
-
<img src="
|
|
2
|
+
<img src="https://raw.githubusercontent.com/praveenkay/AppClean/main/assets/logo.svg" alt="AppClean - Intelligent Application Uninstaller" width="150" height="150">
|
|
3
3
|
|
|
4
|
-
# AppClean
|
|
4
|
+
# AppClean 🧹
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
**Intelligently find and safely uninstall applications with all their artifacts**
|
|
7
7
|
|
|
8
|
-
[](https://github.com/praveenkay/AppClean/releases/tag/v2.0.0)
|
|
9
9
|
[](LICENSE)
|
|
10
|
-
[](#platform-support)
|
|
11
11
|
[](https://npmjs.com/package/appclean)
|
|
12
12
|
|
|
13
|
-
**A powerful, cross-platform
|
|
13
|
+
**A powerful, cross-platform tool for developers, system administrators, and everyone**
|
|
14
14
|
|
|
15
15
|
</div>
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
---
|
|
18
18
|
|
|
19
|
-
|
|
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
|
|
19
|
+
## What is AppClean?
|
|
27
20
|
|
|
28
|
-
|
|
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
|
|
21
|
+
AppClean is an intelligent application uninstaller that completely removes apps from your system along with all their hidden files, configurations, caches, and leftover data. It supports apps installed via npm, Homebrew, apt, yum, and custom installers across macOS, Linux, and Windows.
|
|
34
22
|
|
|
35
|
-
###
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
- **🚀 Performance Optimizer** — Multi-threaded scanning & caching (v1.8.0)
|
|
23
|
+
### Why AppClean?
|
|
24
|
+
- 🎯 **Complete Removal** - Finds and removes all app-related files, not just the executable
|
|
25
|
+
- 🛡️ **Safe & Smart** - Preview what will be deleted before confirming
|
|
26
|
+
- 💾 **Backup Option** - Create backups before removal for peace of mind
|
|
27
|
+
- 🎨 **Beautiful Interface** - Modern GUI makes app management easy for everyone
|
|
28
|
+
- ⚡ **Fast & Efficient** - ~50KB bundle, <100ms API responses
|
|
29
|
+
- 🔌 **Programmable** - Full REST API for automation and integration
|
|
43
30
|
|
|
44
|
-
|
|
31
|
+
---
|
|
45
32
|
|
|
46
|
-
|
|
33
|
+
## ✨ What's New in v2.0.0
|
|
47
34
|
|
|
48
|
-
|
|
49
|
-
npm install -g appclean
|
|
50
|
-
```
|
|
35
|
+
🎉 **Complete GUI Overhaul** - A brand new modern single-page application (SPA) interface for intelligent app management!
|
|
51
36
|
|
|
52
|
-
###
|
|
37
|
+
### New Features
|
|
38
|
+
- 🎨 **Beautiful SPA Interface** - Clean, minimal design with dark mode support
|
|
39
|
+
- 📊 **Dashboard** - System statistics, disk usage gauge, recent activity log
|
|
40
|
+
- 🔍 **Smart App Search** - Fuzzy search, filter by installation method, sort by name/size/date
|
|
41
|
+
- 📂 **Detailed Analysis** - Visual artifacts list, size breakdown pie chart, category breakdown
|
|
42
|
+
- 👁️ **Preview Mode** - See exactly what will be deleted before confirming
|
|
43
|
+
- 🛡️ **Safe Removal** - Dual confirmation dialogs, optional backup creation
|
|
44
|
+
- 🌙 **Dark Mode** - Beautiful theme with persistent preference
|
|
45
|
+
- 🔌 **REST API** - Full API endpoints for integration
|
|
46
|
+
- ⚡ **High Performance** - ~50KB gzipped, <100ms API response time
|
|
53
47
|
|
|
54
|
-
|
|
55
|
-
git clone https://github.com/praveenkay/AppClean.git
|
|
56
|
-
cd AppClean
|
|
57
|
-
npm install
|
|
58
|
-
npm run build
|
|
59
|
-
npm install -g .
|
|
60
|
-
```
|
|
48
|
+
---
|
|
61
49
|
|
|
62
|
-
|
|
50
|
+
## Quick Start
|
|
63
51
|
|
|
64
|
-
|
|
52
|
+
### 1. Install AppClean
|
|
65
53
|
|
|
66
|
-
|
|
54
|
+
```bash
|
|
55
|
+
npm install -g appclean@2.0.0
|
|
56
|
+
```
|
|
67
57
|
|
|
68
|
-
|
|
58
|
+
### 2. Launch the GUI (Recommended)
|
|
69
59
|
|
|
70
60
|
```bash
|
|
71
|
-
appclean
|
|
61
|
+
appclean gui
|
|
72
62
|
```
|
|
73
63
|
|
|
74
|
-
Then
|
|
75
|
-
- 🔍 Search for applications
|
|
76
|
-
- 📋 List all installed apps
|
|
77
|
-
- 📊 View app details and artifacts
|
|
78
|
-
- 🗑️ Remove applications safely
|
|
64
|
+
Then open **http://localhost:3000** in your browser.
|
|
79
65
|
|
|
80
|
-
###
|
|
66
|
+
### 3. Or Use the CLI
|
|
81
67
|
|
|
82
68
|
```bash
|
|
83
|
-
#
|
|
84
|
-
appclean search webpack
|
|
85
|
-
|
|
86
|
-
# List all applications
|
|
69
|
+
# List all apps
|
|
87
70
|
appclean list
|
|
88
71
|
|
|
89
|
-
#
|
|
90
|
-
appclean
|
|
91
|
-
|
|
92
|
-
# Preview removal (no files deleted)
|
|
93
|
-
appclean remove webpack --dry-run
|
|
72
|
+
# Search for an app
|
|
73
|
+
appclean search <app-name>
|
|
94
74
|
|
|
95
|
-
#
|
|
96
|
-
appclean
|
|
75
|
+
# Analyze app and artifacts
|
|
76
|
+
appclean analyze <app-name>
|
|
97
77
|
|
|
98
|
-
# Remove
|
|
99
|
-
appclean remove
|
|
78
|
+
# Remove app (with confirmation)
|
|
79
|
+
appclean remove <app-name>
|
|
100
80
|
```
|
|
101
81
|
|
|
102
|
-
|
|
82
|
+
---
|
|
103
83
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
84
|
+
## Features
|
|
85
|
+
|
|
86
|
+
### 🎨 Modern GUI Interface
|
|
87
|
+
|
|
88
|
+
**Dashboard View**
|
|
89
|
+
- 📊 Total apps, total space used, session metrics
|
|
90
|
+
- 💾 Real-time disk usage gauge with health indicators
|
|
91
|
+
- 📜 Recent activity log showing removed apps
|
|
92
|
+
- 🚀 Quick action buttons
|
|
93
|
+
|
|
94
|
+
**App Discovery (`#/apps`)**
|
|
95
|
+
- 🔍 Real-time search with fuzzy matching
|
|
96
|
+
- 🏷️ Filter by installation method (npm, Homebrew, apt, yum, custom)
|
|
97
|
+
- 📊 Sort by name, size, or date installed
|
|
98
|
+
- 📦 Visual app cards with version and size
|
|
99
|
+
- 📄 Infinite scroll pagination
|
|
100
|
+
|
|
101
|
+
**App Analysis (`#/apps/:appName`)**
|
|
102
|
+
- 📂 Complete artifact listing with file paths
|
|
103
|
+
- 📈 Visual pie chart showing size breakdown
|
|
104
|
+
- 📋 Category breakdown (binaries, configs, caches, data, logs)
|
|
105
|
+
- 👁️ Preview mode showing what will be deleted
|
|
106
|
+
- 🗑️ Safe removal with dual confirmation
|
|
107
|
+
- 💾 Optional backup creation before removal
|
|
108
|
+
|
|
109
|
+
**Settings**
|
|
110
|
+
- 🔄 Version checking and update notifications
|
|
111
|
+
- 🚀 One-click upgrade to latest version
|
|
112
|
+
- 🎨 Theme toggle (light/dark mode)
|
|
113
|
+
- ℹ️ About section with documentation
|
|
114
|
+
- ⚠️ Danger zone for uninstalling AppClean
|
|
115
|
+
|
|
116
|
+
### 💻 Powerful CLI
|
|
117
|
+
|
|
118
|
+
**Find Apps**
|
|
119
|
+
- Detect apps from npm, yarn, pnpm, Homebrew, apt, yum, dnf
|
|
120
|
+
- Search by name with instant results
|
|
121
|
+
- Show app version and installation method
|
|
122
|
+
|
|
123
|
+
**Analyze**
|
|
124
|
+
- Find all related files (binaries, configs, caches, logs)
|
|
125
|
+
- See how much space each app uses
|
|
126
|
+
- Preview what will be deleted before removing
|
|
127
|
+
|
|
128
|
+
**Remove Safely**
|
|
129
|
+
- Dry-run mode to preview first
|
|
130
|
+
- Backup option before deletion
|
|
131
|
+
- Confirmation prompts to prevent accidents
|
|
132
|
+
- Error reporting for failed deletions
|
|
133
|
+
|
|
134
|
+
**Manage**
|
|
135
|
+
- Check for updates: `appclean check-update`
|
|
136
|
+
- Upgrade automatically: `appclean upgrade`
|
|
137
|
+
- Uninstall AppClean: `appclean uninstall`
|
|
114
138
|
|
|
115
|
-
|
|
139
|
+
---
|
|
116
140
|
|
|
117
|
-
|
|
141
|
+
## GUI vs CLI
|
|
118
142
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
143
|
+
| Feature | GUI | CLI |
|
|
144
|
+
|---------|-----|-----|
|
|
145
|
+
| **User-Friendly** | ✅ Great for everyone | ✅ Great for power users |
|
|
146
|
+
| **Visuals** | ✅ Charts, cards, animations | ❌ Text-based |
|
|
147
|
+
| **Speed** | ✅ Fast with API | ✅ Very fast |
|
|
148
|
+
| **Automation** | ❌ Interactive | ✅ Scriptable |
|
|
149
|
+
| **Remote Access** | ✅ Via network | ❌ Local only |
|
|
150
|
+
| **Learning Curve** | ✅ Minimal | ⚠️ Moderate |
|
|
124
151
|
|
|
125
|
-
|
|
126
|
-
- Configuration files (`~/.config`, `~/.bashrc`, etc.)
|
|
127
|
-
- Cache directories
|
|
128
|
-
- Data files and logs
|
|
129
|
-
- Service files (systemd, LaunchAgents, etc.)
|
|
152
|
+
**Recommendation**: Use the GUI for discovery and management, CLI for scripting and automation.
|
|
130
153
|
|
|
131
|
-
|
|
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
|
|
154
|
+
---
|
|
136
155
|
|
|
137
|
-
##
|
|
156
|
+
## Common Tasks
|
|
138
157
|
|
|
139
|
-
###
|
|
158
|
+
### Using the GUI
|
|
140
159
|
|
|
141
160
|
```bash
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
161
|
+
# Start the GUI
|
|
162
|
+
appclean gui
|
|
163
|
+
|
|
164
|
+
# Open http://localhost:3000
|
|
165
|
+
# Then:
|
|
166
|
+
# 1. Click "Apps" to browse installed applications
|
|
167
|
+
# 2. Search for an app by name
|
|
168
|
+
# 3. Click app card to see details
|
|
169
|
+
# 4. Click "Preview Removal" to see what will be deleted
|
|
170
|
+
# 5. Click "Remove App" to uninstall (with confirmation)
|
|
152
171
|
```
|
|
153
172
|
|
|
154
|
-
###
|
|
173
|
+
### Using the CLI
|
|
155
174
|
|
|
156
175
|
```bash
|
|
157
|
-
|
|
176
|
+
# Find and remove an app
|
|
177
|
+
appclean search firefox
|
|
178
|
+
appclean analyze firefox
|
|
179
|
+
appclean remove firefox --dry-run # Preview first
|
|
180
|
+
appclean remove firefox # Actually remove
|
|
158
181
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
data 2.3 MB ~/.local/share/webpack
|
|
164
|
-
log 512 B ~/.local/share/log/webpack
|
|
182
|
+
# Remove multiple apps
|
|
183
|
+
appclean list
|
|
184
|
+
appclean remove <app1>
|
|
185
|
+
appclean remove <app2>
|
|
165
186
|
|
|
166
|
-
|
|
187
|
+
# Backup before removing
|
|
188
|
+
appclean remove <app-name> --backup
|
|
167
189
|
|
|
168
|
-
|
|
190
|
+
# Use without confirmation
|
|
191
|
+
appclean remove <app-name> --force
|
|
169
192
|
```
|
|
170
193
|
|
|
171
|
-
|
|
194
|
+
---
|
|
172
195
|
|
|
173
|
-
|
|
174
|
-
$ appclean remove webpack --backup
|
|
196
|
+
## All Commands
|
|
175
197
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
198
|
+
### GUI Server
|
|
199
|
+
```bash
|
|
200
|
+
appclean gui # Start GUI on port 3000
|
|
201
|
+
appclean gui --port 8080 # Use custom port
|
|
202
|
+
```
|
|
179
203
|
|
|
180
|
-
|
|
204
|
+
### Search & List
|
|
205
|
+
```bash
|
|
206
|
+
appclean search <query> # Find apps by name
|
|
207
|
+
appclean list # Show all installed apps
|
|
208
|
+
appclean analyze <app> # View app details and files
|
|
209
|
+
```
|
|
181
210
|
|
|
182
|
-
|
|
183
|
-
|
|
211
|
+
### Remove Apps
|
|
212
|
+
```bash
|
|
213
|
+
appclean remove <app> # Remove app (with confirmation)
|
|
214
|
+
appclean remove <app> --dry-run # Preview only
|
|
215
|
+
appclean remove <app> --backup # Create backup first
|
|
216
|
+
appclean remove <app> --force # Skip confirmation
|
|
184
217
|
```
|
|
185
218
|
|
|
186
|
-
###
|
|
219
|
+
### Update AppClean
|
|
220
|
+
```bash
|
|
221
|
+
appclean upgrade # Update to latest version
|
|
222
|
+
appclean check-update # Check for updates
|
|
223
|
+
appclean --version # Show current version
|
|
224
|
+
```
|
|
187
225
|
|
|
226
|
+
### Uninstall
|
|
188
227
|
```bash
|
|
189
|
-
|
|
228
|
+
appclean uninstall # Remove AppClean (with confirmation)
|
|
229
|
+
appclean uninstall --force # Remove without confirmation
|
|
230
|
+
```
|
|
190
231
|
|
|
191
|
-
|
|
192
|
-
✓ Found 3 duplicate groups
|
|
193
|
-
Group 1: report.pdf (2.5 MB)
|
|
194
|
-
- ~/Documents/reports/report.pdf
|
|
195
|
-
- ~/Downloads/report.pdf
|
|
232
|
+
---
|
|
196
233
|
|
|
197
|
-
|
|
198
|
-
- ~/Documents/images/image.png
|
|
199
|
-
- ~/Pictures/image.png
|
|
234
|
+
## API Documentation
|
|
200
235
|
|
|
201
|
-
|
|
236
|
+
The GUI server provides a REST API for integration with other tools.
|
|
237
|
+
|
|
238
|
+
### Base URL
|
|
239
|
+
```
|
|
240
|
+
http://localhost:3000
|
|
202
241
|
```
|
|
203
242
|
|
|
204
|
-
###
|
|
243
|
+
### Endpoints
|
|
205
244
|
|
|
245
|
+
**Get Dashboard Statistics**
|
|
206
246
|
```bash
|
|
207
|
-
|
|
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
|
|
247
|
+
curl http://localhost:3000/api/dashboard/stats
|
|
216
248
|
```
|
|
217
249
|
|
|
218
|
-
|
|
250
|
+
Response:
|
|
251
|
+
```json
|
|
252
|
+
{
|
|
253
|
+
"success": true,
|
|
254
|
+
"data": {
|
|
255
|
+
"totalApps": 99,
|
|
256
|
+
"totalSpaceUsed": 4236604496,
|
|
257
|
+
"sessionAppsRemoved": 0,
|
|
258
|
+
"sessionSpaceFreed": 0,
|
|
259
|
+
"diskUsagePercent": 12,
|
|
260
|
+
"recentlyRemoved": []
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
```
|
|
219
264
|
|
|
265
|
+
**List Applications**
|
|
220
266
|
```bash
|
|
221
|
-
|
|
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
|
-
└──────────────┴──────────┴──────────┘
|
|
267
|
+
curl 'http://localhost:3000/api/apps/list?limit=20&offset=0'
|
|
234
268
|
```
|
|
235
269
|
|
|
236
|
-
|
|
270
|
+
Response:
|
|
271
|
+
```json
|
|
272
|
+
{
|
|
273
|
+
"success": true,
|
|
274
|
+
"data": {
|
|
275
|
+
"apps": [...],
|
|
276
|
+
"total": 99,
|
|
277
|
+
"page": 1,
|
|
278
|
+
"pageSize": 20
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
```
|
|
237
282
|
|
|
238
|
-
|
|
283
|
+
**Search Applications**
|
|
239
284
|
```bash
|
|
240
|
-
|
|
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+)
|
|
285
|
+
curl 'http://localhost:3000/api/apps/search?q=node&method=npm&sort=name'
|
|
245
286
|
```
|
|
246
287
|
|
|
247
|
-
|
|
288
|
+
**Analyze Application**
|
|
248
289
|
```bash
|
|
249
|
-
|
|
250
|
-
|
|
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)
|
|
290
|
+
curl 'http://localhost:3000/api/apps/node/analysis'
|
|
291
|
+
```
|
|
268
292
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
293
|
+
Response:
|
|
294
|
+
```json
|
|
295
|
+
{
|
|
296
|
+
"success": true,
|
|
297
|
+
"data": {
|
|
298
|
+
"app": {...},
|
|
299
|
+
"artifacts": [...],
|
|
300
|
+
"totalSize": 52428800,
|
|
301
|
+
"breakdown": {
|
|
302
|
+
"binaries": 5000000,
|
|
303
|
+
"configs": 2000000,
|
|
304
|
+
"caches": 45000000,
|
|
305
|
+
"data": 100000,
|
|
306
|
+
"logs": 328800
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
272
310
|
```
|
|
273
311
|
|
|
274
|
-
|
|
312
|
+
**Remove Application**
|
|
275
313
|
```bash
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
--help # Show help information
|
|
280
|
-
--version # Show version information
|
|
314
|
+
curl -X POST 'http://localhost:3000/api/apps/node/remove' \
|
|
315
|
+
-H 'Content-Type: application/json' \
|
|
316
|
+
-d '{"dryRun": false, "createBackup": true}'
|
|
281
317
|
```
|
|
282
318
|
|
|
283
|
-
|
|
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:**
|
|
319
|
+
**Check Version**
|
|
303
320
|
```bash
|
|
304
|
-
|
|
305
|
-
appclean remove app-name --backup # Creates backup before removal
|
|
321
|
+
curl 'http://localhost:3000/api/version'
|
|
306
322
|
```
|
|
307
323
|
|
|
308
|
-
|
|
309
|
-
Modern web-based interface for visual app management.
|
|
310
|
-
|
|
311
|
-
**Usage:**
|
|
324
|
+
**Upgrade AppClean**
|
|
312
325
|
```bash
|
|
313
|
-
|
|
326
|
+
curl -X POST 'http://localhost:3000/api/upgrade'
|
|
314
327
|
```
|
|
315
328
|
|
|
316
|
-
|
|
317
|
-
Find and manage duplicate files by SHA256 hash.
|
|
318
|
-
|
|
319
|
-
**Usage:**
|
|
329
|
+
**Uninstall AppClean**
|
|
320
330
|
```bash
|
|
321
|
-
|
|
322
|
-
appclean find-duplicates --recursive / # Search entire filesystem
|
|
331
|
+
curl -X POST 'http://localhost:3000/api/uninstall'
|
|
323
332
|
```
|
|
324
333
|
|
|
325
|
-
|
|
326
|
-
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## Examples
|
|
327
337
|
|
|
328
|
-
|
|
338
|
+
### Remove Node.js package globally
|
|
329
339
|
```bash
|
|
330
|
-
|
|
331
|
-
|
|
340
|
+
# Using GUI: Click on app → Preview → Remove
|
|
341
|
+
# Using CLI:
|
|
342
|
+
appclean remove express
|
|
332
343
|
```
|
|
333
344
|
|
|
334
|
-
###
|
|
335
|
-
Extend AppClean with custom application detectors.
|
|
336
|
-
|
|
337
|
-
**Usage:**
|
|
345
|
+
### Remove Homebrew app
|
|
338
346
|
```bash
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
appclean
|
|
342
|
-
appclean plugin config my-plugin --setting value
|
|
347
|
+
# Using GUI: Search "spotify" → Click → Remove
|
|
348
|
+
# Using CLI:
|
|
349
|
+
appclean remove spotify
|
|
343
350
|
```
|
|
344
351
|
|
|
345
|
-
###
|
|
346
|
-
|
|
352
|
+
### Remove system package
|
|
353
|
+
```bash
|
|
354
|
+
# Using GUI: Search "vim" → Filter by apt → Click → Remove
|
|
355
|
+
# Using CLI:
|
|
356
|
+
sudo appclean remove vim
|
|
357
|
+
```
|
|
347
358
|
|
|
348
|
-
|
|
359
|
+
### Preview before removing
|
|
349
360
|
```bash
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
appclean
|
|
353
|
-
|
|
354
|
-
appclean
|
|
361
|
+
# Using GUI: Click "Preview Removal" button
|
|
362
|
+
# Using CLI:
|
|
363
|
+
appclean remove chrome --dry-run
|
|
364
|
+
# Review output, then:
|
|
365
|
+
appclean remove chrome
|
|
355
366
|
```
|
|
356
367
|
|
|
357
|
-
###
|
|
358
|
-
|
|
368
|
+
### Create backup before removing
|
|
369
|
+
```bash
|
|
370
|
+
# Using GUI: Automatic backup option is shown
|
|
371
|
+
# Using CLI:
|
|
372
|
+
appclean remove myapp --backup
|
|
373
|
+
```
|
|
359
374
|
|
|
360
|
-
|
|
375
|
+
### Use custom GUI port
|
|
361
376
|
```bash
|
|
362
|
-
appclean
|
|
363
|
-
|
|
364
|
-
appclean update webpack # Update app
|
|
377
|
+
appclean gui --port 8080
|
|
378
|
+
# Open http://localhost:8080
|
|
365
379
|
```
|
|
366
380
|
|
|
367
|
-
|
|
368
|
-
Optimize scanning performance for large systems.
|
|
381
|
+
---
|
|
369
382
|
|
|
370
|
-
|
|
371
|
-
- Multi-threaded scanning (configurable threads)
|
|
372
|
-
- Intelligent result caching
|
|
373
|
-
- Performance metrics and reporting
|
|
374
|
-
- Automatic optimization recommendations
|
|
383
|
+
## What Gets Removed?
|
|
375
384
|
|
|
376
|
-
|
|
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
|
-
```
|
|
385
|
+
AppClean intelligently finds and removes:
|
|
382
386
|
|
|
383
|
-
|
|
387
|
+
- ✓ Application binaries and executables
|
|
388
|
+
- ✓ Configuration files (`.config`, `.local`, etc)
|
|
389
|
+
- ✓ Cache directories and files
|
|
390
|
+
- ✓ Log files and directories
|
|
391
|
+
- ✓ Data files and user data
|
|
392
|
+
- ✓ Launch agents/daemons (macOS)
|
|
393
|
+
- ✓ Systemd services (Linux)
|
|
394
|
+
- ✓ Man pages and documentation
|
|
395
|
+
- ✓ Package manager metadata
|
|
384
396
|
|
|
385
|
-
|
|
386
|
-
- Detects both Intel and Apple Silicon installations
|
|
387
|
-
- Removes LaunchAgents and LaunchDaemons
|
|
388
|
-
- Cleans Application Support directories
|
|
389
|
-
- Handles .plist preference files
|
|
397
|
+
---
|
|
390
398
|
|
|
391
|
-
|
|
392
|
-
- Supports apt, yum, and dnf package managers
|
|
393
|
-
- Removes systemd service files
|
|
394
|
-
- Cleans .config and .local directories
|
|
395
|
-
- Handles /var/log files
|
|
399
|
+
## Platform Support
|
|
396
400
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
+
| Feature | macOS | Linux | Windows |
|
|
402
|
+
|---------|-------|-------|---------|
|
|
403
|
+
| **npm/yarn/pnpm** | ✓ | ✓ | ✓ |
|
|
404
|
+
| **Homebrew** | ✓ | ✓ | - |
|
|
405
|
+
| **apt/yum/dnf** | - | ✓ | - |
|
|
406
|
+
| **GUI** | ✓ | ✓ | ✓ |
|
|
407
|
+
| **CLI** | ✓ | ✓ | ✓ |
|
|
408
|
+
| **Custom apps** | ✓ | ✓ | ✓ |
|
|
401
409
|
|
|
402
|
-
|
|
410
|
+
---
|
|
403
411
|
|
|
404
|
-
|
|
412
|
+
## Architecture
|
|
405
413
|
|
|
406
|
-
|
|
407
|
-
appclean search partial-name
|
|
408
|
-
```
|
|
414
|
+
### Technology Stack
|
|
409
415
|
|
|
410
|
-
|
|
416
|
+
**GUI (Client)**
|
|
417
|
+
- ES2020 JavaScript modules
|
|
418
|
+
- Hash-based SPA routing
|
|
419
|
+
- Event-driven state management
|
|
420
|
+
- CSS with design tokens and animations
|
|
421
|
+
- Responsive layout (Flexbox, Grid)
|
|
411
422
|
|
|
412
|
-
|
|
423
|
+
**Server**
|
|
424
|
+
- Native Node.js HTTP module (no Express)
|
|
425
|
+
- TypeScript with strict mode
|
|
426
|
+
- RESTful API design
|
|
427
|
+
- CORS enabled
|
|
413
428
|
|
|
414
|
-
|
|
429
|
+
**Core**
|
|
430
|
+
- Intelligent app detection
|
|
431
|
+
- Multi-package-manager support
|
|
432
|
+
- Artifact discovery and categorization
|
|
433
|
+
- Safe removal with validation
|
|
415
434
|
|
|
416
|
-
|
|
417
|
-
|
|
435
|
+
### Directory Structure
|
|
436
|
+
|
|
437
|
+
```
|
|
438
|
+
src/
|
|
439
|
+
├── ui/
|
|
440
|
+
│ ├── client/ # SPA application
|
|
441
|
+
│ │ ├── pages/ # Dashboard, Apps, Settings
|
|
442
|
+
│ │ ├── state/ # Reactive stores
|
|
443
|
+
│ │ ├── styles/ # CSS design system
|
|
444
|
+
│ │ ├── utils/ # Router, formatting
|
|
445
|
+
│ │ └── app.ts # SPA entry point
|
|
446
|
+
│ ├── server/ # API backend
|
|
447
|
+
│ │ ├── routes/ # API endpoints
|
|
448
|
+
│ │ ├── services/ # Business logic
|
|
449
|
+
│ │ └── middleware/ # Request handling
|
|
450
|
+
│ └── guiServer.ts # HTTP server
|
|
451
|
+
├── core/ # App detection & removal
|
|
452
|
+
├── managers/ # Package manager integrations
|
|
453
|
+
└── utils/ # Utilities
|
|
418
454
|
```
|
|
419
455
|
|
|
420
|
-
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## Performance
|
|
421
459
|
|
|
422
|
-
|
|
460
|
+
- **Bundle Size**: ~50KB gzipped (no frameworks)
|
|
461
|
+
- **API Response**: <100ms per request
|
|
462
|
+
- **Page Load**: <2 seconds
|
|
463
|
+
- **Startup Time**: <1 second
|
|
464
|
+
- **Memory Usage**: Minimal footprint
|
|
423
465
|
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
## Tips & Best Practices
|
|
469
|
+
|
|
470
|
+
💡 **Always preview first**
|
|
424
471
|
```bash
|
|
425
|
-
|
|
426
|
-
|
|
472
|
+
# GUI: Click "Preview Removal"
|
|
473
|
+
# CLI: Use --dry-run flag
|
|
474
|
+
appclean remove myapp --dry-run
|
|
427
475
|
```
|
|
428
476
|
|
|
429
|
-
|
|
477
|
+
💡 **Create backups for important apps**
|
|
478
|
+
```bash
|
|
479
|
+
# GUI: Backup option is shown before removal
|
|
480
|
+
# CLI: Use --backup flag
|
|
481
|
+
appclean remove myapp --backup
|
|
482
|
+
```
|
|
430
483
|
|
|
431
|
-
|
|
484
|
+
💡 **Use the GUI for visual browsing**
|
|
485
|
+
```bash
|
|
486
|
+
appclean gui
|
|
487
|
+
# Open http://localhost:3000
|
|
488
|
+
# Visual cards and charts make it easy
|
|
489
|
+
```
|
|
432
490
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
| Schedules | `~/.appclean-schedules.json` | Cleanup automation schedules |
|
|
439
|
-
| Cache | `~/.appclean-cache/` | Scan result cache |
|
|
440
|
-
| Results | `~/.appclean-cleanup-results/` | Scheduled cleanup results |
|
|
491
|
+
💡 **Use CLI for scripting and automation**
|
|
492
|
+
```bash
|
|
493
|
+
# In shell scripts or CI/CD pipelines
|
|
494
|
+
appclean remove myapp --force
|
|
495
|
+
```
|
|
441
496
|
|
|
442
|
-
|
|
497
|
+
💡 **Check updates regularly**
|
|
498
|
+
```bash
|
|
499
|
+
appclean check-update
|
|
500
|
+
# Or use GUI: Settings → Check for Updates
|
|
501
|
+
```
|
|
443
502
|
|
|
444
|
-
|
|
503
|
+
---
|
|
445
504
|
|
|
446
|
-
|
|
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`
|
|
505
|
+
## Permissions
|
|
451
506
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
507
|
+
- **macOS/Linux**: May need `sudo` for system packages
|
|
508
|
+
```bash
|
|
509
|
+
sudo appclean remove system-package
|
|
510
|
+
```
|
|
511
|
+
- **Windows**: May need to run as Administrator
|
|
457
512
|
|
|
458
|
-
|
|
513
|
+
---
|
|
459
514
|
|
|
460
|
-
|
|
515
|
+
## Troubleshooting
|
|
461
516
|
|
|
517
|
+
**"Permission denied" error**
|
|
462
518
|
```bash
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
npm install
|
|
519
|
+
# Try with sudo
|
|
520
|
+
sudo appclean remove <app>
|
|
466
521
|
```
|
|
467
522
|
|
|
468
|
-
|
|
469
|
-
|
|
523
|
+
**App not found**
|
|
470
524
|
```bash
|
|
471
|
-
|
|
525
|
+
# Search for partial name
|
|
526
|
+
appclean search <partial-name>
|
|
527
|
+
# Or use GUI search with fuzzy matching
|
|
472
528
|
```
|
|
473
529
|
|
|
474
|
-
|
|
475
|
-
|
|
530
|
+
**GUI won't start**
|
|
476
531
|
```bash
|
|
477
|
-
|
|
532
|
+
# Check if port 3000 is in use
|
|
533
|
+
# Use custom port:
|
|
534
|
+
appclean gui --port 8080
|
|
478
535
|
```
|
|
479
536
|
|
|
480
|
-
|
|
537
|
+
**Want to preview without removing**
|
|
538
|
+
```bash
|
|
539
|
+
# Using GUI: Click "Preview Removal"
|
|
540
|
+
# Using CLI: Use --dry-run flag
|
|
541
|
+
appclean remove <app> --dry-run
|
|
542
|
+
```
|
|
481
543
|
|
|
544
|
+
**Want to restore from backup**
|
|
482
545
|
```bash
|
|
483
|
-
|
|
546
|
+
# Backups are saved in ~/.appclean-backups/
|
|
547
|
+
ls ~/.appclean-backups/
|
|
548
|
+
# Manually restore from tar.gz if needed
|
|
484
549
|
```
|
|
485
550
|
|
|
486
|
-
|
|
551
|
+
---
|
|
552
|
+
|
|
553
|
+
## Safety Guarantees
|
|
554
|
+
|
|
555
|
+
✅ **All actions require confirmation** (unless `--force` is used)
|
|
556
|
+
✅ **Preview mode available** - see what will be deleted first
|
|
557
|
+
✅ **Backup option available** - protect important data
|
|
558
|
+
✅ **No data loss** - only removes application files
|
|
559
|
+
✅ **Easy to reinstall** - use npm/brew/apt to reinstall apps
|
|
560
|
+
✅ **Dry-run mode** - test before actual removal
|
|
487
561
|
|
|
488
|
-
|
|
562
|
+
---
|
|
489
563
|
|
|
490
|
-
|
|
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
|
|
564
|
+
## Getting Help
|
|
495
565
|
|
|
496
|
-
|
|
566
|
+
```bash
|
|
567
|
+
# Show all commands
|
|
568
|
+
appclean --help
|
|
497
569
|
|
|
498
|
-
|
|
499
|
-
|
|
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
|
|
570
|
+
# Get help for specific command
|
|
571
|
+
appclean remove --help
|
|
508
572
|
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
- [ ] Advanced caching system
|
|
512
|
-
- [ ] Batch operations
|
|
513
|
-
- [ ] Custom rule builder
|
|
514
|
-
- [ ] System notifications
|
|
515
|
-
- [ ] Cloud sync for schedules
|
|
516
|
-
- [ ] Advanced analytics dashboard
|
|
573
|
+
# Check your version
|
|
574
|
+
appclean --version
|
|
517
575
|
|
|
518
|
-
|
|
576
|
+
# Check if update available
|
|
577
|
+
appclean check-update
|
|
578
|
+
```
|
|
519
579
|
|
|
520
|
-
|
|
521
|
-
- Some service files may need manual cleanup
|
|
522
|
-
- Snap packages (Linux) are currently not supported
|
|
580
|
+
---
|
|
523
581
|
|
|
524
582
|
## License
|
|
525
583
|
|
|
526
|
-
MIT License
|
|
584
|
+
MIT License - Free to use and modify. See [LICENSE](LICENSE) file for details.
|
|
585
|
+
|
|
586
|
+
---
|
|
527
587
|
|
|
528
|
-
##
|
|
588
|
+
## Support & Community
|
|
529
589
|
|
|
530
|
-
|
|
590
|
+
📝 **Report Issues**: https://github.com/praveenkay/AppClean/issues
|
|
591
|
+
💬 **Discussions**: https://github.com/praveenkay/AppClean/discussions
|
|
592
|
+
🌟 **Star** if you find it useful!
|
|
593
|
+
📖 **Documentation**: https://github.com/praveenkay/AppClean#readme
|
|
531
594
|
|
|
532
|
-
|
|
595
|
+
---
|
|
533
596
|
|
|
534
|
-
|
|
535
|
-
- **💬 [Discussions](https://github.com/praveenkay/AppClean/discussions)** — Share ideas and feedback
|
|
536
|
-
- **⭐ [Star on GitHub](https://github.com/praveenkay/AppClean)** — Show your support
|
|
597
|
+
## Changelog
|
|
537
598
|
|
|
538
|
-
|
|
599
|
+
### v2.0.0 (Current)
|
|
600
|
+
- 🎉 Complete GUI overhaul with modern SPA interface
|
|
601
|
+
- 📊 Dashboard with statistics and activity log
|
|
602
|
+
- 🔍 Advanced search with filtering and sorting
|
|
603
|
+
- 📂 Detailed artifact analysis with charts
|
|
604
|
+
- 🛡️ Safe removal with preview and backup
|
|
605
|
+
- 🌙 Dark mode support
|
|
606
|
+
- 🔌 REST API endpoints
|
|
607
|
+
- 📱 Responsive design (mobile, tablet, desktop)
|
|
539
608
|
|
|
540
|
-
|
|
609
|
+
### v1.9.0
|
|
610
|
+
- Version management and upgrade system
|
|
611
|
+
- Basic web interface
|
|
612
|
+
- Enhanced CLI functionality
|
|
541
613
|
|
|
542
614
|
---
|
|
543
615
|
|
|
544
|
-
**
|
|
616
|
+
**Made with ❤️ by Praveen Kothapally**
|
|
545
617
|
|
|
546
|
-
|
|
547
|
-
Made with ❤️ by <a href="https://github.com/praveenkay">Praveen Kothapally</a>
|
|
548
|
-
</div>
|
|
618
|
+
*AppClean - Making app removal intelligent, safe, and beautiful.* ✨
|