From linux-system-optimisation
Find duplicate files (or specifically large duplicates) under a path on Linux, using `rmlint` (preferred) or `fdupes` / `jdupes` as a fallback. Reports size-ranked groups, total reclaimable bytes, and writes a delete script that the user can review before running. Does NOT auto-delete. Triggers on "find duplicate files", "dedupe my downloads", "what duplicates do I have".
npx claudepluginhub danielrosehill/claude-code-plugins --plugin linux-system-optimisationThis skill uses the workspace's default tool permissions.
Surface duplicate files and quantify the reclaimable space. Default scope: a user-supplied path (e.g. `~/Downloads`, `~/Pictures`). Default tool: `rmlint` — fast, scriptable, generates a review-able shell script.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
Surface duplicate files and quantify the reclaimable space. Default scope: a user-supplied path (e.g. ~/Downloads, ~/Pictures). Default tool: rmlint — fast, scriptable, generates a review-able shell script.
/ or anything above $HOME unless user explicitly insists; the false-positive risk is too high (system files, package manager artefacts).rmlint if installed — preferred; emits rmlint.sh with reviewable per-file actions.jdupes (faster than fdupes) — falls back to fdupes if neither is present.sudo apt install rmlint and proceed.rmlint:
rmlint --types=duplicates --size=<min>K \
--output=sh:<scans_dir>/rmlint-<timestamp>.sh \
--output=json:<scans_dir>/rmlint-<timestamp>.json \
--output=summary \
<path>
(<scans_dir> here = the benchmarks_dir from linux-system-optimisation's config, with a /space-audits/ subfolder. Create it if missing.)
jdupes / fdupes fallback:
jdupes -r -S -m <path> # summary
jdupes -r -S <path> > <scans_dir>/jdupes-<timestamp>.txt
~/.cache/* (regenerable; prune-dev-clutter handles this)~/snap/*/common/, ~/.var/app/* (Flatpak per-app stores)*/node_modules/* (every project legitimately has its own)*/.venv/*, */venv/* (likewise — prune-dev-clutter handles).git/objects/If user requested prune-script mode:
rmlint — the emitted rmlint.sh is already that. Print the path and tell the user to head it, edit if needed, then run.jdupes — generate a similar script: keep the first file in each group, rm the rest, but comment out any line whose path matches the suspicious patterns above. User uncomments to confirm.Never run the script automatically. The user reviews and runs it.
rmlint --types=duplicates --keep-all-tagged --merge-directories can be configured to deduplicate via reflink instead of delete (zero-copy on supported FS). Out of scope for the default flow but worth surfacing for users with big duplicate sets they don't want to delete.