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.
Files changed (212) hide show
  1. package/.github/workflows/npm-publish.yml +61 -0
  2. package/DEVELOPMENT.md +84 -0
  3. package/GUI_IMPLEMENTATION_STATUS.md +143 -0
  4. package/MD_Files/INDEX.md +51 -0
  5. package/PHASE2_COMPLETION.md +281 -0
  6. package/PHASE3_COMPLETION.md +364 -0
  7. package/README.md +411 -91
  8. package/RELEASE_GUIDE.md +236 -0
  9. package/assets/logo.svg +34 -0
  10. package/dist/core/appUpdateChecker.js +12 -16
  11. package/dist/core/appUpdateChecker.js.map +1 -1
  12. package/dist/core/detector.js +14 -18
  13. package/dist/core/detector.js.map +1 -1
  14. package/dist/core/duplicateFileFinder.js +12 -19
  15. package/dist/core/duplicateFileFinder.js.map +1 -1
  16. package/dist/core/orphanedDependencyDetector.js +19 -26
  17. package/dist/core/orphanedDependencyDetector.js.map +1 -1
  18. package/dist/core/performanceOptimizer.js +6 -10
  19. package/dist/core/performanceOptimizer.js.map +1 -1
  20. package/dist/core/permissionHandler.js +21 -25
  21. package/dist/core/permissionHandler.js.map +1 -1
  22. package/dist/core/pluginSystem.js +9 -13
  23. package/dist/core/pluginSystem.js.map +1 -1
  24. package/dist/core/removalRecorder.js +12 -19
  25. package/dist/core/removalRecorder.js.map +1 -1
  26. package/dist/core/remover.js +59 -66
  27. package/dist/core/remover.js.map +1 -1
  28. package/dist/core/reportGenerator.d.ts +1 -1
  29. package/dist/core/reportGenerator.d.ts.map +1 -1
  30. package/dist/core/reportGenerator.js +27 -34
  31. package/dist/core/reportGenerator.js.map +1 -1
  32. package/dist/core/scheduledCleanup.js +23 -30
  33. package/dist/core/scheduledCleanup.js.map +1 -1
  34. package/dist/core/serviceFileDetector.js +24 -31
  35. package/dist/core/serviceFileDetector.js.map +1 -1
  36. package/dist/core/verificationModule.js +10 -14
  37. package/dist/core/verificationModule.js.map +1 -1
  38. package/dist/index.js +118 -156
  39. package/dist/index.js.map +1 -1
  40. package/dist/managers/brewManager.js +30 -37
  41. package/dist/managers/brewManager.js.map +1 -1
  42. package/dist/managers/customManager.js +23 -30
  43. package/dist/managers/customManager.js.map +1 -1
  44. package/dist/managers/linuxManager.js +29 -36
  45. package/dist/managers/linuxManager.js.map +1 -1
  46. package/dist/managers/npmManager.js +27 -34
  47. package/dist/managers/npmManager.js.map +1 -1
  48. package/dist/types/index.js +1 -2
  49. package/dist/ui/client/api/client.d.ts +24 -0
  50. package/dist/ui/client/api/client.d.ts.map +1 -0
  51. package/dist/ui/client/api/client.js +100 -0
  52. package/dist/ui/client/api/client.js.map +1 -0
  53. package/dist/ui/client/app.d.ts +7 -0
  54. package/dist/ui/client/app.d.ts.map +1 -0
  55. package/dist/ui/client/app.js +75 -0
  56. package/dist/ui/client/app.js.map +1 -0
  57. package/dist/ui/client/index.html +107 -0
  58. package/dist/ui/client/pages/appDetails.d.ts +8 -0
  59. package/dist/ui/client/pages/appDetails.d.ts.map +1 -0
  60. package/dist/ui/client/pages/appDetails.js +287 -0
  61. package/dist/ui/client/pages/appDetails.js.map +1 -0
  62. package/dist/ui/client/pages/appSearch.d.ts +2 -0
  63. package/dist/ui/client/pages/appSearch.d.ts.map +1 -0
  64. package/dist/ui/client/pages/appSearch.js +221 -0
  65. package/dist/ui/client/pages/appSearch.js.map +1 -0
  66. package/dist/ui/client/pages/dashboard.d.ts +2 -0
  67. package/dist/ui/client/pages/dashboard.d.ts.map +1 -0
  68. package/dist/ui/client/pages/dashboard.js +175 -0
  69. package/dist/ui/client/pages/dashboard.js.map +1 -0
  70. package/dist/ui/client/pages/settings.d.ts +7 -0
  71. package/dist/ui/client/pages/settings.d.ts.map +1 -0
  72. package/dist/ui/client/pages/settings.js +279 -0
  73. package/dist/ui/client/pages/settings.js.map +1 -0
  74. package/dist/ui/client/state/appStore.d.ts +38 -0
  75. package/dist/ui/client/state/appStore.d.ts.map +1 -0
  76. package/dist/ui/client/state/appStore.js +130 -0
  77. package/dist/ui/client/state/appStore.js.map +1 -0
  78. package/dist/ui/client/state/dashboardStore.d.ts +31 -0
  79. package/dist/ui/client/state/dashboardStore.d.ts.map +1 -0
  80. package/dist/ui/client/state/dashboardStore.js +76 -0
  81. package/dist/ui/client/state/dashboardStore.js.map +1 -0
  82. package/dist/ui/client/state/uiStore.d.ts +43 -0
  83. package/dist/ui/client/state/uiStore.d.ts.map +1 -0
  84. package/dist/ui/client/state/uiStore.js +109 -0
  85. package/dist/ui/client/state/uiStore.js.map +1 -0
  86. package/dist/ui/client/styles/animations.css +349 -0
  87. package/dist/ui/client/styles/base.css +214 -0
  88. package/dist/ui/client/styles/components.css +400 -0
  89. package/dist/ui/client/styles/layout.css +224 -0
  90. package/dist/ui/client/styles/variables.css +140 -0
  91. package/dist/ui/client/utils/events.d.ts +19 -0
  92. package/dist/ui/client/utils/events.d.ts.map +1 -0
  93. package/dist/ui/client/utils/events.js +54 -0
  94. package/dist/ui/client/utils/events.js.map +1 -0
  95. package/dist/ui/client/utils/formatting.d.ts +11 -0
  96. package/dist/ui/client/utils/formatting.d.ts.map +1 -0
  97. package/dist/ui/client/utils/formatting.js +104 -0
  98. package/dist/ui/client/utils/formatting.js.map +1 -0
  99. package/dist/ui/client/utils/router.d.ts +25 -0
  100. package/dist/ui/client/utils/router.d.ts.map +1 -0
  101. package/dist/ui/client/utils/router.js +90 -0
  102. package/dist/ui/client/utils/router.js.map +1 -0
  103. package/dist/ui/guiServer.d.ts +11 -5
  104. package/dist/ui/guiServer.d.ts.map +1 -1
  105. package/dist/ui/guiServer.js +180 -501
  106. package/dist/ui/guiServer.js.map +1 -1
  107. package/dist/ui/menu.js +18 -27
  108. package/dist/ui/menu.js.map +1 -1
  109. package/dist/ui/prompts.js +34 -47
  110. package/dist/ui/prompts.js.map +1 -1
  111. package/dist/ui/server/middleware/errorHandler.d.ts +19 -0
  112. package/dist/ui/server/middleware/errorHandler.d.ts.map +1 -0
  113. package/dist/ui/server/middleware/errorHandler.js +100 -0
  114. package/dist/ui/server/middleware/errorHandler.js.map +1 -0
  115. package/dist/ui/server/routes/apps.d.ts +8 -0
  116. package/dist/ui/server/routes/apps.d.ts.map +1 -0
  117. package/dist/ui/server/routes/apps.js +74 -0
  118. package/dist/ui/server/routes/apps.js.map +1 -0
  119. package/dist/ui/server/routes/dashboard.d.ts +4 -0
  120. package/dist/ui/server/routes/dashboard.d.ts.map +1 -0
  121. package/dist/ui/server/routes/dashboard.js +57 -0
  122. package/dist/ui/server/routes/dashboard.js.map +1 -0
  123. package/dist/ui/server/routes/settings.d.ts +6 -0
  124. package/dist/ui/server/routes/settings.d.ts.map +1 -0
  125. package/dist/ui/server/routes/settings.js +31 -0
  126. package/dist/ui/server/routes/settings.js.map +1 -0
  127. package/dist/ui/server/services/appService.d.ts +45 -0
  128. package/dist/ui/server/services/appService.d.ts.map +1 -0
  129. package/dist/ui/server/services/appService.js +114 -0
  130. package/dist/ui/server/services/appService.js.map +1 -0
  131. package/dist/ui/server/services/removalService.d.ts +24 -0
  132. package/dist/ui/server/services/removalService.d.ts.map +1 -0
  133. package/dist/ui/server/services/removalService.js +83 -0
  134. package/dist/ui/server/services/removalService.js.map +1 -0
  135. package/dist/utils/filesystem.js +32 -49
  136. package/dist/utils/filesystem.js.map +1 -1
  137. package/dist/utils/logger.js +9 -18
  138. package/dist/utils/logger.js.map +1 -1
  139. package/dist/utils/platform.js +10 -22
  140. package/dist/utils/platform.js.map +1 -1
  141. package/dist/utils/upgrade.d.ts +2 -1
  142. package/dist/utils/upgrade.d.ts.map +1 -1
  143. package/dist/utils/upgrade.js +24 -15
  144. package/dist/utils/upgrade.js.map +1 -1
  145. package/package.json +4 -2
  146. package/scripts/publish-npm.sh +64 -0
  147. package/src/core/appUpdateChecker.ts +1 -1
  148. package/src/core/detector.ts +6 -6
  149. package/src/core/duplicateFileFinder.ts +1 -1
  150. package/src/core/orphanedDependencyDetector.ts +2 -2
  151. package/src/core/performanceOptimizer.ts +1 -1
  152. package/src/core/permissionHandler.ts +2 -2
  153. package/src/core/pluginSystem.ts +1 -1
  154. package/src/core/removalRecorder.ts +2 -2
  155. package/src/core/remover.ts +11 -11
  156. package/src/core/reportGenerator.ts +2 -2
  157. package/src/core/scheduledCleanup.ts +2 -2
  158. package/src/core/serviceFileDetector.ts +2 -2
  159. package/src/core/verificationModule.ts +2 -2
  160. package/src/index.ts +8 -8
  161. package/src/managers/brewManager.ts +3 -3
  162. package/src/managers/customManager.ts +2 -2
  163. package/src/managers/linuxManager.ts +3 -3
  164. package/src/managers/npmManager.ts +3 -3
  165. package/src/ui/client/api/client.ts +168 -0
  166. package/src/ui/client/app.ts +125 -0
  167. package/src/ui/client/index.html +107 -0
  168. package/src/ui/client/pages/appDetails.ts +356 -0
  169. package/src/ui/client/pages/appSearch.ts +283 -0
  170. package/src/ui/client/pages/dashboard.ts +211 -0
  171. package/src/ui/client/pages/settings.ts +342 -0
  172. package/src/ui/client/state/appStore.ts +181 -0
  173. package/src/ui/client/state/dashboardStore.ts +123 -0
  174. package/src/ui/client/state/uiStore.ts +166 -0
  175. package/src/ui/client/styles/animations.css +349 -0
  176. package/src/ui/client/styles/base.css +214 -0
  177. package/src/ui/client/styles/components.css +400 -0
  178. package/src/ui/client/styles/layout.css +224 -0
  179. package/src/ui/client/styles/variables.css +140 -0
  180. package/src/ui/client/utils/events.ts +74 -0
  181. package/src/ui/client/utils/formatting.ts +157 -0
  182. package/src/ui/client/utils/router.ts +161 -0
  183. package/src/ui/guiServer.ts +245 -498
  184. package/src/ui/prompts.ts +1 -1
  185. package/src/ui/server/middleware/errorHandler.ts +174 -0
  186. package/src/ui/server/routes/apps.ts +132 -0
  187. package/src/ui/server/routes/dashboard.ts +93 -0
  188. package/src/ui/server/routes/settings.ts +63 -0
  189. package/src/ui/server/services/appService.ts +184 -0
  190. package/src/ui/server/services/removalService.ts +138 -0
  191. package/src/utils/upgrade.ts +19 -2
  192. package/tsconfig.json +3 -2
  193. package/INDEX.md +0 -165
  194. /package/{ACTION_CHECKLIST.md → MD_Files/ACTION_CHECKLIST.md} +0 -0
  195. /package/{APPCLEAN_SUMMARY.md → MD_Files/APPCLEAN_SUMMARY.md} +0 -0
  196. /package/{CHANGELOG.md → MD_Files/CHANGELOG.md} +0 -0
  197. /package/{CODE_OF_CONDUCT.md → MD_Files/CODE_OF_CONDUCT.md} +0 -0
  198. /package/{CODE_REVIEW_REPORT.md → MD_Files/CODE_REVIEW_REPORT.md} +0 -0
  199. /package/{COMMUNITY_POSTS.md → MD_Files/COMMUNITY_POSTS.md} +0 -0
  200. /package/{DEPLOYMENT_GUIDE.md → MD_Files/DEPLOYMENT_GUIDE.md} +0 -0
  201. /package/{DEPLOYMENT_STATUS.md → MD_Files/DEPLOYMENT_STATUS.md} +0 -0
  202. /package/{EXECUTIVE_REPORT.md → MD_Files/EXECUTIVE_REPORT.md} +0 -0
  203. /package/{GITHUB_OPTIMIZATION.md → MD_Files/GITHUB_OPTIMIZATION.md} +0 -0
  204. /package/{MARKETING_SUMMARY.md → MD_Files/MARKETING_SUMMARY.md} +0 -0
  205. /package/{NPM_PACKAGE_OPTIMIZATION.md → MD_Files/NPM_PACKAGE_OPTIMIZATION.md} +0 -0
  206. /package/{NPM_PUBLISH.md → MD_Files/NPM_PUBLISH.md} +0 -0
  207. /package/{PROJECT_SUMMARY.txt → MD_Files/PROJECT_SUMMARY.txt} +0 -0
  208. /package/{PUBLICATION_SUCCESS_REPORT.md → MD_Files/PUBLICATION_SUCCESS_REPORT.md} +0 -0
  209. /package/{QUICKSTART.md → MD_Files/QUICKSTART.md} +0 -0
  210. /package/{SETUP_GITHUB.md → MD_Files/SETUP_GITHUB.md} +0 -0
  211. /package/{TESTING_SUMMARY.md → MD_Files/TESTING_SUMMARY.md} +0 -0
  212. /package/{setup-github.sh → MD_Files/setup-github.sh} +0 -0
package/README.md CHANGED
@@ -1,34 +1,81 @@
1
- # AppClean 🧹
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
- **Safely remove applications and all their hidden files in one command.**
4
+ # AppClean 🧹
4
5
 
5
- AppClean finds and deletes apps installed via npm, Homebrew, apt, and other package managers—plus all associated files, configs, and cache.
6
+ **Intelligently find and safely uninstall applications with all their artifacts**
6
7
 
7
- [![version](https://img.shields.io/badge/version-1.9.0-blue?style=flat-square)](https://github.com/praveenkay/AppClean/releases)
8
- [![license](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE)
9
- [![npm](https://img.shields.io/npm/dm/appclean?style=flat-square)](https://npmjs.com/package/appclean)
8
+ [![version](https://img.shields.io/badge/version-2.0.0-blue?style=flat-square)](https://github.com/praveenkay/AppClean/releases/tag/v2.0.0)
9
+ [![license](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE)
10
+ [![platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20Windows-blue?style=flat-square)](#platform-support)
11
+ [![npm](https://img.shields.io/npm/dm/appclean?style=flat-square)](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
- ### Usage
58
+ ### 2. Launch the GUI (Recommended)
59
+
21
60
  ```bash
22
- # List all installed apps
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
- # Show app details
75
+ # Analyze app and artifacts
29
76
  appclean analyze <app-name>
30
77
 
31
- # Remove app completely
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
- **Find Apps**
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
- 🔍 **Analyze**
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
- 🗑️ **Remove Safely**
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
- 🆙 **Manage**
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
- 🎨 **GUI**
61
- - Web interface: `appclean gui`
62
- - Open http://localhost:3000 in your browser
63
- - One-click upgrade and uninstall
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
- ### Find and remove an app
158
+ ### Using the GUI
70
159
 
71
160
  ```bash
72
- # Search for the app
73
- appclean search firefox
161
+ # Start the GUI
162
+ appclean gui
74
163
 
75
- # View all details
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
- # Preview what will be deleted
79
- appclean remove firefox --dry-run
187
+ # Backup before removing
188
+ appclean remove <app-name> --backup
80
189
 
81
- # Remove it
82
- appclean remove firefox
190
+ # Use without confirmation
191
+ appclean remove <app-name> --force
83
192
  ```
84
193
 
85
- ### Remove multiple apps
194
+ ---
195
+
196
+ ## All Commands
86
197
 
198
+ ### GUI Server
87
199
  ```bash
88
- # List all apps and choose which to remove
89
- appclean list
200
+ appclean gui # Start GUI on port 3000
201
+ appclean gui --port 8080 # Use custom port
202
+ ```
90
203
 
91
- # Remove each one
92
- appclean remove <app-name>
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
- ### Backup before removing
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
- # Create backup, then remove
99
- appclean remove <app-name> --backup
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
- ### Use the GUI
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
- # Start the web interface
106
- appclean gui
247
+ curl http://localhost:3000/api/dashboard/stats
248
+ ```
107
249
 
108
- # Open browser to http://localhost:3000
109
- # Click on apps to remove or check updates
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
- ## All Commands
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
- ### Search & List
117
- - `appclean search <query>` - Find apps by name
118
- - `appclean list` - Show all installed apps
119
- - `appclean analyze <app>` - View app details and files
283
+ **Search Applications**
284
+ ```bash
285
+ curl 'http://localhost:3000/api/apps/search?q=node&method=npm&sort=name'
286
+ ```
120
287
 
121
- ### Remove Apps
122
- - `appclean remove <app>` - Remove app (with confirmation)
123
- - `appclean remove <app> --dry-run` - Preview only
124
- - `appclean remove <app> --backup` - Create backup first
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
- ### Update AppClean
128
- - `appclean upgrade` - Update to latest version
129
- - `appclean check-update` - Check for updates
130
- - `appclean --version` - Show current version
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
- ### Uninstall
133
- - `appclean uninstall` - Remove AppClean (with confirmation)
134
- - `appclean uninstall --force` - Remove without confirmation
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
- ### Server
137
- - `appclean gui` - Start web interface (port 3000)
138
- - `appclean gui --port 8080` - Use custom port
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
- appclean remove vim
354
+ # Using GUI: Search "vim" → Filter by apt → Click → Remove
355
+ # Using CLI:
356
+ sudo appclean remove vim
157
357
  ```
158
358
 
159
- ### Use dry-run before removing
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
- # Backup saved in case something goes wrong
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
- - ✓ Application binaries
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
- - ✓ Data directories
184
- - ✓ Man pages
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
- | Custom apps | ✓ | ✓ | ✓ |
403
+ | **npm/yarn/pnpm** | ✓ | ✓ | ✓ |
404
+ | **Homebrew** | ✓ | ✓ | - |
405
+ | **apt/yum/dnf** | - | ✓ | - |
406
+ | **GUI** | ✓ | ✓ | ✓ |
407
+ | **CLI** | ✓ | ✓ | ✓ |
408
+ | **Custom apps** | ✓ | ✓ | ✓ |
197
409
 
198
410
  ---
199
411
 
200
- ## Tips
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
- 💡 **Always use `--dry-run` first**
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 exact name
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 keep the app, just remove it from AppClean's list**
537
+ **Want to preview without removing**
251
538
  ```bash
252
- # Use --dry-run to preview, then cancel
539
+ # Using GUI: Click "Preview Removal"
540
+ # Using CLI: Use --dry-run flag
253
541
  appclean remove <app> --dry-run
254
- # Press Ctrl+C to cancel
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 with `--dry-run`** before actual removal
263
- ✅ **Backup option available** with `--backup`
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.* ✨