kondo alternatives: when a prompt is not enough
kondo is the broadest interactive project cleaner there is. What to use when you want the cleanup unattended, verified against lockfiles, or reversible.
Start by being fair to kondo: it is the broadest tool of its kind, it
is older and more widely packaged than anything below (winget, Homebrew, MacPorts, the
Arch repositories, plus a GUI in kondo-ui), and for "walk my disk, show me
every heavy project directory, delete what I confirm" it is genuinely good.
kondo --older 30d covers the common case in one line.
Its README describes the design honestly: "essentially rm -rf with a prompt". You are the safety check. That is a reasonable contract, and every reason to want an alternative is some version of wanting a different one.
"I want it to run without me"
A prompt only protects a deletion somebody is watching. Put kondo in a scheduled task and you have removed the one safety mechanism it has, which its authors would be the first to tell you not to do.
dev-prune is built for exactly this case, so the checks a human would
do at the prompt are done by the tool instead. It reads git log rather than
file timestamps, so a repository you committed to this morning is not a candidate however
old its files look. It runs the package manager's own verification, such as
npm ci --dry-run or uv lock --locked or
cargo metadata --locked, and a non-zero exit keeps the directory. And it
schedules itself: devp setup registers the pass with Task Scheduler, launchd
or systemd user timers.
"I deleted something a lockfile never recorded"
Age-based selection has one blind spot, and it is the expensive one: a directory
holding packages that were installed but never written to the lockfile is
indistinguishable from a clean one until it is gone. dev-prune treats the lockfile check
as the deletion criterion rather than a warning, and it refuses rather than guessing. In
a logged stress pass, the verification and the
undo log round-tripped half a gigabyte of real installs: pruned, then restored with
devp restore --last-run, including a uv environment rebuilt on the recorded
Python version.
"My problem is one big Rust repository"
Neither kondo nor dev-prune is the best answer there.
cargo sweep --time 30 removes stale artefacts from target/
while keeping the current build, which is more surgical than deleting the directory
whole. Why target/ gets so big has the
detail.
"I just want to look and decide"
Then you do not want an alternative: that is kondo's home ground, and for the Node-only version of it, npkill is also excellent. Interactive tools are the right answer whenever you are present. The line to hold is that a tool whose safety is a prompt should never run where nobody sees the prompt.
Trying it takes one dry run
curl -fsSL https://devprune.vkrishna04.me/install.sh | sh
devp init ~/Code
devp run --dry-run
Nothing is deleted; every candidate is listed with the lockfile that proves it
rebuildable. The full comparison, including rimraf and a cron job, is at
dev-prune vs the alternatives.
Common questions
What is the best alternative to kondo?
For unattended, recurring cleanup: dev-prune, which verifies each directory against its lockfile before deleting, gates on git activity rather than file age, records an undo log, and schedules itself. For supervised Node-only sweeps: npkill. For surgical Rust target/ cleanup: cargo-sweep. If you are present and deciding case by case, kondo itself remains the right tool.
Is kondo safe to use?
Yes, in the way its own README states: it is essentially rm -rf with a prompt, so you are the check. That is fine when you are watching. It is the wrong contract for a scheduled or scripted run, where nothing stands between an age heuristic and a deletion.
Can dev-prune replace kondo completely?
No. kondo covers interactive, decide-per-row cleanup across more project types than dev-prune prunes, and it has a GUI. dev-prune covers the unattended case kondo is explicitly not built for. Many machines reasonably have both installed.