claude-cleaner 1.1.0 → 1.2.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.
Files changed (2) hide show
  1. package/README.md +24 -10
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -65,6 +65,7 @@ claude-cleaner --version
65
65
 
66
66
  ```text
67
67
  --claude-dir <path> Custom Claude config directory (default: ~/.claude)
68
+ --dry-run Preview deletions without modifying any files
68
69
  --mock-update Simulate a newer version available (for testing the update flow)
69
70
  -h, --help Show help
70
71
  -v, --version Show version
@@ -75,14 +76,23 @@ claude-cleaner --version
75
76
  | Key | Action |
76
77
  | --- | --- |
77
78
  | `↑` / `↓` or `j` / `k` | Navigate list |
79
+ | `g` / `G` | Jump to top / bottom |
78
80
  | `space` | Toggle selection |
79
- | `enter` | Proceed show delete confirm (when items selected) |
80
- | `a` | Select all / deselect all |
81
- | `p` | Purge selected (confirm screen, purge mode) |
81
+ | `a` | Select / deselect all visible items |
82
+ | `n` | Unselect all |
83
+ | `o` | Select orphaned projects only |
84
+ | `enter` | Delete selected session-history directories (confirm screen) |
85
+ | `p` | Full purge selected projects through Claude CLI when available |
82
86
  | `x` | Force-purge item at cursor — no confirm |
87
+ | `s` | Cycle sort: recent / size / tokens / name |
88
+ | `f` | Cycle filter: all / has data / orphaned |
89
+ | `e` | Cycle expiry filter: off / 7 / 14 / 30 / 60 / 90 days |
90
+ | `/` | Search by project name or path |
91
+ | `c` | Open category cleanup |
83
92
  | `r` | Rescan / refresh project list |
84
93
  | `u` | Update claude-cleaner in-place (shown when update available) |
85
- | `esc` | Go back / cancel |
94
+ | `?` | Show key bindings |
95
+ | `esc` | Go back / clear search and filters / cancel |
86
96
  | `q` / `ctrl+c` | Quit (works on every screen) |
87
97
 
88
98
  ## Features
@@ -92,9 +102,12 @@ claude-cleaner --version
92
102
  - Status column `●` (session files on disk) / `○` (config only, no local data).
93
103
  - Windows path dedup — `d:/foo` and `D:/foo` treated as the same project; higher-token entry wins.
94
104
  - Multi-select with `space`, select all with `a`, confirm with `enter`.
95
- - Three deletion modes: session-files delete, full **purge** (via `claude project purge`), and instant **force-purge** (`x`).
105
+ - Separate deletion backends: normal **Delete** removes only the selected Claude session-history directory; **Purge** uses `claude project purge` when available and falls back to session-directory removal.
106
+ - `--dry-run` previews exactly which projects/categories would be cleaned without touching files.
107
+ - Search, sort, orphan filters, and age/expiry filters for large project lists.
108
+ - Category cleanup for disposable Claude data such as debug logs, telemetry, history, backups, and plugin **cache** while preserving plugin installation state.
96
109
  - Live progress bar during deletion.
97
- - Claude CLI integration tries `claude project purge` first, falls back to direct removal.
110
+ - Claude CLI integration is used only for explicit purge operations.
98
111
  - Auto update check against npm registry on startup; `u` to update in-place.
99
112
  - Claude CLI presence and version shown in header.
100
113
  - `r` to rescan at any time.
@@ -113,10 +126,11 @@ These folders contain Claude Code session and conversation history. Source code
113
126
 
114
127
  | Mode | Key | Confirm | Scope | How |
115
128
  | --- | --- | --- | --- | --- |
116
- | Delete | `enter` | ✓ screen | selected items | tries `claude project purge -y <path>`, falls back to `os.RemoveAll` |
117
- | Purge | `p` | ✓ screen | selected items | same as delete, confirm text emphasises full purge |
118
- | Force-purge | `x` | ✗ | cursor item only | same deletion chain, no confirm screen |
119
- | Delete all | `a` then `enter` | ✓ screen | all items | uses `claude project purge --all -y` (single call), then cleans remaining folders |
129
+ | Delete | `enter` | ✓ screen | selected items | removes only the matching directory under `~/.claude/projects`; never invokes `claude project purge` |
130
+ | Purge | `p` | ✓ screen | selected items | runs `claude project purge -y <path>` when available; falls back to the matching session directory |
131
+ | Force-purge | `x` | ✗ | cursor item only | same purge chain as `p`, without a confirm screen |
132
+ | Delete all | `a` then `enter` | ✓ screen | all visible/selected items | deletes selected session directories individually; does not call `purge --all` |
133
+ | Purge all | `a` then `p` | ✓ screen | all projects | may use `claude project purge --all -y` for efficiency |
120
134
 
121
135
  All modes validate that the target path is inside the Claude projects directory before deleting.
122
136
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-cleaner",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Safely inspect and delete selected Claude Code project session history from an interactive cross-platform TUI.",
5
5
  "bin": {
6
6
  "claude-cleaner": "scripts/run.js"