What Claude Code leaves on your Mac.
Session logs, checkpoints, scratch workspaces, worktrees. Devbroom finds them all, and tells you which ones Claude Code deletes itself, which are left to you and which are never touched.
Every folder has its own rule.
Devbroom handles every place the way Claude Code itself behaves. What the agent cleans itself it leaves to the agent; what has its own command it does with that command.
Scratch workspaces
Sessions' workspaces and temporary files. Those of finished sessions can be cleaned after a look, before Claude Code deletes them itself; a running session's stays Blocked.
/private/tmp/claude-<uid>MCP and error logs
Log files only.
~/Library/Caches/claude-cli-nodejsSession logs
Deleting the files by hand breaks resuming sessions and memory. Devbroom uses Claude Code's own command for this; the history of projects whose folders no longer exist is cleared in one go. Instead of deleting, you can archive a project's conversations (Pro): nothing moves until the archive is verified, memory stays in place, and you can reopen it from History.
~/.claude/projectsCheckpoints
Claude Code deletes the ones older than cleanupPeriodDays (30 days by default) itself.
~/.claude/file-historyLogs and caches
Debug logs, shell snapshots, pasted content and images. Claude Code deletes the old ones itself.
~/.claude/debug~/.claude/shell-snapshots~/.claude/paste-cache~/.claude/image-cacheCLI versions
The updater keeps the current, the running and the two newest versions.
~/.local/share/claude/versionsPlugins
/plugin manages them; a plugin in use shouldn't be deleted.
~/.claude/plugins/cache~/.claude/plugins/marketplacesDesktop app data
The app's state; it also holds the bundled CLI and virtual machine images.
~/Library/Application Support/ClaudeYour account and settings stay untouched.
These files and folders are protected. No verdict ever opens them to cleaning; they stay where they are whatever their size.
~/.claude.json~/.claude/.credentials.jsonsettings.json · settings.local.json~/.claude/history.jsonl~/.claude/agent-memory~/.claude/pluginsRecognizes Claude Code's worktrees by their traces.
It tells a worktree belongs to Claude Code from these traces; the stronger the trace, the more certain the ownership it shows.
- CertainThe
CLAUDE_BASEmarker in git metadata - CertainA worktree lock placed by Claude Code
- LikelyInside a
.claude/worktreesfolder - LikelyInside a Claude Code workspace
- PossibleA branch name starting with
worktree-
- Blocked if it holds unsaved work. git won't remove such a worktree without
--force; Devbroom never uses--force. - Blocked if a session runs in it or in its parent folder.
- Review if it has ignored files:
git worktree removedeletes them without asking.
Sees them, leaves them alone while they run.
Devbroom knows which Claude Code sessions are running. It never touches a running session's processes; its folder and scratch space stay Blocked while the session lasts.
2 sessions running
Checks Claude Code's files first.
Before trusting an agent's data, Devbroom checks that its files are in the expected format. If they aren't, that data is only read; none of it counts as ready to clean.
A version outside this range still works if the format holds, and shows as “not tested yet”.
The logs in ~/.claude/projects must carry these two fields, which tie a session to a folder.
If its folders live elsewhere, it follows CLAUDE_CONFIG_DIR, CLAUDE_CODE_TMPDIR.