appclean 1.9.0 → 2.0.2
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/npm-publish.yml +61 -0
- package/DEVELOPMENT.md +84 -0
- package/GUI_IMPLEMENTATION_STATUS.md +143 -0
- package/MD_Files/INDEX.md +51 -0
- package/PHASE2_COMPLETION.md +281 -0
- package/PHASE3_COMPLETION.md +364 -0
- package/README.md +411 -91
- package/RELEASE_GUIDE.md +236 -0
- 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 +118 -156
- package/dist/index.js.map +1 -1
- package/dist/managers/brewManager.js +30 -37
- package/dist/managers/brewManager.js.map +1 -1
- package/dist/managers/customManager.js +23 -30
- 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 +100 -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 +75 -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 +221 -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 +175 -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 +130 -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 +76 -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 +349 -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 +11 -5
- package/dist/ui/guiServer.d.ts.map +1 -1
- package/dist/ui/guiServer.js +180 -501
- 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 +2 -1
- package/dist/utils/upgrade.d.ts.map +1 -1
- package/dist/utils/upgrade.js +24 -15
- package/dist/utils/upgrade.js.map +1 -1
- package/package.json +4 -2
- package/scripts/publish-npm.sh +64 -0
- 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 +8 -8
- package/src/managers/brewManager.ts +3 -3
- package/src/managers/customManager.ts +2 -2
- package/src/managers/linuxManager.ts +3 -3
- package/src/managers/npmManager.ts +3 -3
- package/src/ui/client/api/client.ts +168 -0
- package/src/ui/client/app.ts +125 -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 +283 -0
- package/src/ui/client/pages/dashboard.ts +211 -0
- package/src/ui/client/pages/settings.ts +342 -0
- package/src/ui/client/state/appStore.ts +181 -0
- package/src/ui/client/state/dashboardStore.ts +123 -0
- package/src/ui/client/state/uiStore.ts +166 -0
- package/src/ui/client/styles/animations.css +349 -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 +245 -498
- 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 +19 -2
- 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/{PUBLICATION_SUCCESS_REPORT.md → MD_Files/PUBLICATION_SUCCESS_REPORT.md} +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,34 +1,81 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/praveenkay/AppClean/main/assets/logo.svg" alt="AppClean - Intelligent Application Uninstaller" width="150" height="150">
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
# AppClean 🧹
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
**Intelligently find and safely uninstall applications with all their artifacts**
|
|
6
7
|
|
|
7
|
-
[](LICENSE)
|
|
9
|
-
[](https://github.com/praveenkay/AppClean/releases/tag/v2.0.0)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
[](#platform-support)
|
|
11
|
+
[](https://npmjs.com/package/appclean)
|
|
12
|
+
|
|
13
|
+
**A powerful, cross-platform tool for developers, system administrators, and everyone**
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## What is AppClean?
|
|
20
|
+
|
|
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.
|
|
22
|
+
|
|
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
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## ✨ What's New in v2.0.0
|
|
34
|
+
|
|
35
|
+
🎉 **Complete GUI Overhaul** - A brand new modern single-page application (SPA) interface for intelligent app management!
|
|
36
|
+
|
|
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
|
|
10
47
|
|
|
11
48
|
---
|
|
12
49
|
|
|
13
50
|
## Quick Start
|
|
14
51
|
|
|
15
|
-
### Install
|
|
52
|
+
### 1. Install AppClean
|
|
53
|
+
|
|
16
54
|
```bash
|
|
17
|
-
npm install -g appclean
|
|
55
|
+
npm install -g appclean@2.0.0
|
|
18
56
|
```
|
|
19
57
|
|
|
20
|
-
###
|
|
58
|
+
### 2. Launch the GUI (Recommended)
|
|
59
|
+
|
|
21
60
|
```bash
|
|
22
|
-
|
|
61
|
+
appclean gui
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Then open **http://localhost:3000** in your browser.
|
|
65
|
+
|
|
66
|
+
### 3. Or Use the CLI
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# List all apps
|
|
23
70
|
appclean list
|
|
24
71
|
|
|
25
72
|
# Search for an app
|
|
26
73
|
appclean search <app-name>
|
|
27
74
|
|
|
28
|
-
#
|
|
75
|
+
# Analyze app and artifacts
|
|
29
76
|
appclean analyze <app-name>
|
|
30
77
|
|
|
31
|
-
# Remove app
|
|
78
|
+
# Remove app (with confirmation)
|
|
32
79
|
appclean remove <app-name>
|
|
33
80
|
```
|
|
34
81
|
|
|
@@ -36,106 +83,253 @@ appclean remove <app-name>
|
|
|
36
83
|
|
|
37
84
|
## Features
|
|
38
85
|
|
|
39
|
-
|
|
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**
|
|
40
119
|
- Detect apps from npm, yarn, pnpm, Homebrew, apt, yum, dnf
|
|
41
120
|
- Search by name with instant results
|
|
42
121
|
- Show app version and installation method
|
|
43
122
|
|
|
44
|
-
|
|
123
|
+
**Analyze**
|
|
45
124
|
- Find all related files (binaries, configs, caches, logs)
|
|
46
125
|
- See how much space each app uses
|
|
47
126
|
- Preview what will be deleted before removing
|
|
48
127
|
|
|
49
|
-
|
|
128
|
+
**Remove Safely**
|
|
50
129
|
- Dry-run mode to preview first
|
|
51
130
|
- Backup option before deletion
|
|
52
131
|
- Confirmation prompts to prevent accidents
|
|
53
132
|
- Error reporting for failed deletions
|
|
54
133
|
|
|
55
|
-
|
|
134
|
+
**Manage**
|
|
56
135
|
- Check for updates: `appclean check-update`
|
|
57
136
|
- Upgrade automatically: `appclean upgrade`
|
|
58
137
|
- Uninstall AppClean: `appclean uninstall`
|
|
59
138
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## GUI vs CLI
|
|
142
|
+
|
|
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 |
|
|
151
|
+
|
|
152
|
+
**Recommendation**: Use the GUI for discovery and management, CLI for scripting and automation.
|
|
64
153
|
|
|
65
154
|
---
|
|
66
155
|
|
|
67
156
|
## Common Tasks
|
|
68
157
|
|
|
69
|
-
###
|
|
158
|
+
### Using the GUI
|
|
70
159
|
|
|
71
160
|
```bash
|
|
72
|
-
#
|
|
73
|
-
appclean
|
|
161
|
+
# Start the GUI
|
|
162
|
+
appclean gui
|
|
74
163
|
|
|
75
|
-
#
|
|
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)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Using the CLI
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
# Find and remove an app
|
|
177
|
+
appclean search firefox
|
|
76
178
|
appclean analyze firefox
|
|
179
|
+
appclean remove firefox --dry-run # Preview first
|
|
180
|
+
appclean remove firefox # Actually remove
|
|
181
|
+
|
|
182
|
+
# Remove multiple apps
|
|
183
|
+
appclean list
|
|
184
|
+
appclean remove <app1>
|
|
185
|
+
appclean remove <app2>
|
|
77
186
|
|
|
78
|
-
#
|
|
79
|
-
appclean remove
|
|
187
|
+
# Backup before removing
|
|
188
|
+
appclean remove <app-name> --backup
|
|
80
189
|
|
|
81
|
-
#
|
|
82
|
-
appclean remove
|
|
190
|
+
# Use without confirmation
|
|
191
|
+
appclean remove <app-name> --force
|
|
83
192
|
```
|
|
84
193
|
|
|
85
|
-
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## All Commands
|
|
86
197
|
|
|
198
|
+
### GUI Server
|
|
87
199
|
```bash
|
|
88
|
-
#
|
|
89
|
-
appclean
|
|
200
|
+
appclean gui # Start GUI on port 3000
|
|
201
|
+
appclean gui --port 8080 # Use custom port
|
|
202
|
+
```
|
|
90
203
|
|
|
91
|
-
|
|
92
|
-
|
|
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
|
|
93
209
|
```
|
|
94
210
|
|
|
95
|
-
###
|
|
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
|
|
217
|
+
```
|
|
96
218
|
|
|
219
|
+
### Update AppClean
|
|
97
220
|
```bash
|
|
98
|
-
#
|
|
99
|
-
appclean
|
|
221
|
+
appclean upgrade # Update to latest version
|
|
222
|
+
appclean check-update # Check for updates
|
|
223
|
+
appclean --version # Show current version
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Uninstall
|
|
227
|
+
```bash
|
|
228
|
+
appclean uninstall # Remove AppClean (with confirmation)
|
|
229
|
+
appclean uninstall --force # Remove without confirmation
|
|
100
230
|
```
|
|
101
231
|
|
|
102
|
-
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## API Documentation
|
|
235
|
+
|
|
236
|
+
The GUI server provides a REST API for integration with other tools.
|
|
103
237
|
|
|
238
|
+
### Base URL
|
|
239
|
+
```
|
|
240
|
+
http://localhost:3000
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Endpoints
|
|
244
|
+
|
|
245
|
+
**Get Dashboard Statistics**
|
|
104
246
|
```bash
|
|
105
|
-
|
|
106
|
-
|
|
247
|
+
curl http://localhost:3000/api/dashboard/stats
|
|
248
|
+
```
|
|
107
249
|
|
|
108
|
-
|
|
109
|
-
|
|
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
|
+
}
|
|
110
263
|
```
|
|
111
264
|
|
|
112
|
-
|
|
265
|
+
**List Applications**
|
|
266
|
+
```bash
|
|
267
|
+
curl 'http://localhost:3000/api/apps/list?limit=20&offset=0'
|
|
268
|
+
```
|
|
113
269
|
|
|
114
|
-
|
|
270
|
+
Response:
|
|
271
|
+
```json
|
|
272
|
+
{
|
|
273
|
+
"success": true,
|
|
274
|
+
"data": {
|
|
275
|
+
"apps": [...],
|
|
276
|
+
"total": 99,
|
|
277
|
+
"page": 1,
|
|
278
|
+
"pageSize": 20
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
```
|
|
115
282
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
283
|
+
**Search Applications**
|
|
284
|
+
```bash
|
|
285
|
+
curl 'http://localhost:3000/api/apps/search?q=node&method=npm&sort=name'
|
|
286
|
+
```
|
|
120
287
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
- `appclean remove <app> --force` - Skip confirmation
|
|
288
|
+
**Analyze Application**
|
|
289
|
+
```bash
|
|
290
|
+
curl 'http://localhost:3000/api/apps/node/analysis'
|
|
291
|
+
```
|
|
126
292
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
+
}
|
|
310
|
+
```
|
|
131
311
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
312
|
+
**Remove Application**
|
|
313
|
+
```bash
|
|
314
|
+
curl -X POST 'http://localhost:3000/api/apps/node/remove' \
|
|
315
|
+
-H 'Content-Type: application/json' \
|
|
316
|
+
-d '{"dryRun": false, "createBackup": true}'
|
|
317
|
+
```
|
|
135
318
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
319
|
+
**Check Version**
|
|
320
|
+
```bash
|
|
321
|
+
curl 'http://localhost:3000/api/version'
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
**Upgrade AppClean**
|
|
325
|
+
```bash
|
|
326
|
+
curl -X POST 'http://localhost:3000/api/upgrade'
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**Uninstall AppClean**
|
|
330
|
+
```bash
|
|
331
|
+
curl -X POST 'http://localhost:3000/api/uninstall'
|
|
332
|
+
```
|
|
139
333
|
|
|
140
334
|
---
|
|
141
335
|
|
|
@@ -143,21 +337,29 @@ appclean gui
|
|
|
143
337
|
|
|
144
338
|
### Remove Node.js package globally
|
|
145
339
|
```bash
|
|
340
|
+
# Using GUI: Click on app → Preview → Remove
|
|
341
|
+
# Using CLI:
|
|
146
342
|
appclean remove express
|
|
147
343
|
```
|
|
148
344
|
|
|
149
345
|
### Remove Homebrew app
|
|
150
346
|
```bash
|
|
347
|
+
# Using GUI: Search "spotify" → Click → Remove
|
|
348
|
+
# Using CLI:
|
|
151
349
|
appclean remove spotify
|
|
152
350
|
```
|
|
153
351
|
|
|
154
352
|
### Remove system package
|
|
155
353
|
```bash
|
|
156
|
-
|
|
354
|
+
# Using GUI: Search "vim" → Filter by apt → Click → Remove
|
|
355
|
+
# Using CLI:
|
|
356
|
+
sudo appclean remove vim
|
|
157
357
|
```
|
|
158
358
|
|
|
159
|
-
###
|
|
359
|
+
### Preview before removing
|
|
160
360
|
```bash
|
|
361
|
+
# Using GUI: Click "Preview Removal" button
|
|
362
|
+
# Using CLI:
|
|
161
363
|
appclean remove chrome --dry-run
|
|
162
364
|
# Review output, then:
|
|
163
365
|
appclean remove chrome
|
|
@@ -165,23 +367,32 @@ appclean remove chrome
|
|
|
165
367
|
|
|
166
368
|
### Create backup before removing
|
|
167
369
|
```bash
|
|
370
|
+
# Using GUI: Automatic backup option is shown
|
|
371
|
+
# Using CLI:
|
|
168
372
|
appclean remove myapp --backup
|
|
169
|
-
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### Use custom GUI port
|
|
376
|
+
```bash
|
|
377
|
+
appclean gui --port 8080
|
|
378
|
+
# Open http://localhost:8080
|
|
170
379
|
```
|
|
171
380
|
|
|
172
381
|
---
|
|
173
382
|
|
|
174
383
|
## What Gets Removed?
|
|
175
384
|
|
|
176
|
-
AppClean finds and removes:
|
|
177
|
-
|
|
385
|
+
AppClean intelligently finds and removes:
|
|
386
|
+
|
|
387
|
+
- ✓ Application binaries and executables
|
|
178
388
|
- ✓ Configuration files (`.config`, `.local`, etc)
|
|
179
|
-
- ✓ Cache directories
|
|
180
|
-
- ✓ Log files
|
|
389
|
+
- ✓ Cache directories and files
|
|
390
|
+
- ✓ Log files and directories
|
|
391
|
+
- ✓ Data files and user data
|
|
181
392
|
- ✓ Launch agents/daemons (macOS)
|
|
182
393
|
- ✓ Systemd services (Linux)
|
|
183
|
-
- ✓
|
|
184
|
-
- ✓
|
|
394
|
+
- ✓ Man pages and documentation
|
|
395
|
+
- ✓ Package manager metadata
|
|
185
396
|
|
|
186
397
|
---
|
|
187
398
|
|
|
@@ -189,24 +400,84 @@ AppClean finds and removes:
|
|
|
189
400
|
|
|
190
401
|
| Feature | macOS | Linux | Windows |
|
|
191
402
|
|---------|-------|-------|---------|
|
|
192
|
-
| npm/yarn/pnpm | ✓ | ✓ | ✓ |
|
|
193
|
-
| Homebrew | ✓ | ✓ | - |
|
|
194
|
-
| apt/yum/dnf | - | ✓ | - |
|
|
195
|
-
| GUI | ✓ | ✓ | ✓ |
|
|
196
|
-
|
|
|
403
|
+
| **npm/yarn/pnpm** | ✓ | ✓ | ✓ |
|
|
404
|
+
| **Homebrew** | ✓ | ✓ | - |
|
|
405
|
+
| **apt/yum/dnf** | - | ✓ | - |
|
|
406
|
+
| **GUI** | ✓ | ✓ | ✓ |
|
|
407
|
+
| **CLI** | ✓ | ✓ | ✓ |
|
|
408
|
+
| **Custom apps** | ✓ | ✓ | ✓ |
|
|
197
409
|
|
|
198
410
|
---
|
|
199
411
|
|
|
200
|
-
##
|
|
412
|
+
## Architecture
|
|
413
|
+
|
|
414
|
+
### Technology Stack
|
|
415
|
+
|
|
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)
|
|
422
|
+
|
|
423
|
+
**Server**
|
|
424
|
+
- Native Node.js HTTP module (no Express)
|
|
425
|
+
- TypeScript with strict mode
|
|
426
|
+
- RESTful API design
|
|
427
|
+
- CORS enabled
|
|
428
|
+
|
|
429
|
+
**Core**
|
|
430
|
+
- Intelligent app detection
|
|
431
|
+
- Multi-package-manager support
|
|
432
|
+
- Artifact discovery and categorization
|
|
433
|
+
- Safe removal with validation
|
|
201
434
|
|
|
202
|
-
|
|
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
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## Performance
|
|
459
|
+
|
|
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
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
## Tips & Best Practices
|
|
469
|
+
|
|
470
|
+
💡 **Always preview first**
|
|
203
471
|
```bash
|
|
472
|
+
# GUI: Click "Preview Removal"
|
|
473
|
+
# CLI: Use --dry-run flag
|
|
204
474
|
appclean remove myapp --dry-run
|
|
205
|
-
# Review the list, then remove
|
|
206
475
|
```
|
|
207
476
|
|
|
208
477
|
💡 **Create backups for important apps**
|
|
209
478
|
```bash
|
|
479
|
+
# GUI: Backup option is shown before removal
|
|
480
|
+
# CLI: Use --backup flag
|
|
210
481
|
appclean remove myapp --backup
|
|
211
482
|
```
|
|
212
483
|
|
|
@@ -214,11 +485,19 @@ appclean remove myapp --backup
|
|
|
214
485
|
```bash
|
|
215
486
|
appclean gui
|
|
216
487
|
# Open http://localhost:3000
|
|
488
|
+
# Visual cards and charts make it easy
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
💡 **Use CLI for scripting and automation**
|
|
492
|
+
```bash
|
|
493
|
+
# In shell scripts or CI/CD pipelines
|
|
494
|
+
appclean remove myapp --force
|
|
217
495
|
```
|
|
218
496
|
|
|
219
497
|
💡 **Check updates regularly**
|
|
220
498
|
```bash
|
|
221
499
|
appclean check-update
|
|
500
|
+
# Or use GUI: Settings → Check for Updates
|
|
222
501
|
```
|
|
223
502
|
|
|
224
503
|
---
|
|
@@ -243,26 +522,42 @@ sudo appclean remove <app>
|
|
|
243
522
|
|
|
244
523
|
**App not found**
|
|
245
524
|
```bash
|
|
246
|
-
# Search for
|
|
525
|
+
# Search for partial name
|
|
247
526
|
appclean search <partial-name>
|
|
527
|
+
# Or use GUI search with fuzzy matching
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
**GUI won't start**
|
|
531
|
+
```bash
|
|
532
|
+
# Check if port 3000 is in use
|
|
533
|
+
# Use custom port:
|
|
534
|
+
appclean gui --port 8080
|
|
248
535
|
```
|
|
249
536
|
|
|
250
|
-
**Want to
|
|
537
|
+
**Want to preview without removing**
|
|
251
538
|
```bash
|
|
252
|
-
#
|
|
539
|
+
# Using GUI: Click "Preview Removal"
|
|
540
|
+
# Using CLI: Use --dry-run flag
|
|
253
541
|
appclean remove <app> --dry-run
|
|
254
|
-
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
**Want to restore from backup**
|
|
545
|
+
```bash
|
|
546
|
+
# Backups are saved in ~/.appclean-backups/
|
|
547
|
+
ls ~/.appclean-backups/
|
|
548
|
+
# Manually restore from tar.gz if needed
|
|
255
549
|
```
|
|
256
550
|
|
|
257
551
|
---
|
|
258
552
|
|
|
259
|
-
## Safety
|
|
553
|
+
## Safety Guarantees
|
|
260
554
|
|
|
261
555
|
✅ **All actions require confirmation** (unless `--force` is used)
|
|
262
|
-
✅ **Preview
|
|
263
|
-
✅ **Backup option available**
|
|
556
|
+
✅ **Preview mode available** - see what will be deleted first
|
|
557
|
+
✅ **Backup option available** - protect important data
|
|
264
558
|
✅ **No data loss** - only removes application files
|
|
265
|
-
✅ **Easy to reinstall** - use npm/brew/apt to reinstall
|
|
559
|
+
✅ **Easy to reinstall** - use npm/brew/apt to reinstall apps
|
|
560
|
+
✅ **Dry-run mode** - test before actual removal
|
|
266
561
|
|
|
267
562
|
---
|
|
268
563
|
|
|
@@ -277,22 +572,47 @@ appclean remove --help
|
|
|
277
572
|
|
|
278
573
|
# Check your version
|
|
279
574
|
appclean --version
|
|
575
|
+
|
|
576
|
+
# Check if update available
|
|
577
|
+
appclean check-update
|
|
280
578
|
```
|
|
281
579
|
|
|
282
580
|
---
|
|
283
581
|
|
|
284
582
|
## License
|
|
285
583
|
|
|
286
|
-
MIT License - Free to use and modify
|
|
584
|
+
MIT License - Free to use and modify. See [LICENSE](LICENSE) file for details.
|
|
287
585
|
|
|
288
586
|
---
|
|
289
587
|
|
|
290
|
-
## Support
|
|
588
|
+
## Support & Community
|
|
291
589
|
|
|
292
|
-
📝 **Issues**: https://github.com/praveenkay/AppClean/issues
|
|
293
|
-
🌟 **Star** if you find it useful!
|
|
590
|
+
📝 **Report Issues**: https://github.com/praveenkay/AppClean/issues
|
|
294
591
|
💬 **Discussions**: https://github.com/praveenkay/AppClean/discussions
|
|
592
|
+
🌟 **Star** if you find it useful!
|
|
593
|
+
📖 **Documentation**: https://github.com/praveenkay/AppClean#readme
|
|
594
|
+
|
|
595
|
+
---
|
|
596
|
+
|
|
597
|
+
## Changelog
|
|
598
|
+
|
|
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)
|
|
608
|
+
|
|
609
|
+
### v1.9.0
|
|
610
|
+
- Version management and upgrade system
|
|
611
|
+
- Basic web interface
|
|
612
|
+
- Enhanced CLI functionality
|
|
295
613
|
|
|
296
614
|
---
|
|
297
615
|
|
|
298
616
|
**Made with ❤️ by Praveen Kothapally**
|
|
617
|
+
|
|
618
|
+
*AppClean - Making app removal intelligent, safe, and beautiful.* ✨
|