# Claude Code Memory Cleanup Guide Claude Code sessions that aren't properly exited (`/exit` or `Ctrl+D`) stay resident in memory as orphaned processes. They accumulate fast — 32 orphaned sessions can eat 22GB+ of RAM and fill up swap. ## Diagnose ```bash # Check memory usage free -h # List all claude processes sorted by memory (heaviest first) # - "?" in the TTY column = detached/orphaned (safe to kill) # - "pts/XX Sl+" = attached to an active terminal (keep these) ps aux --sort=-rss | grep -i claude | grep -v grep ``` ## Clean Up — Kill Only Orphaned Sessions ```bash # Kill detached processes (TTY == "?"), leave active terminal sessions alone ps aux | grep -i claude | grep -v grep | awk '$7 == "?" {print $2}' | xargs -r kill ``` ## Nuclear Option — Kill Everything ```bash pkill -f "claude" # Also clear swap if it's bloated sudo swapoff -a && sudo swapon -a ``` ## Prevention - Always exit sessions with `/exit` or `Ctrl+D` — don't just close the terminal. - Don't leave multiple idle sessions open. - Restart long-running sessions periodically. ## Optional: Bash Alias Add to `~/.bashrc`: ```bash # Kill orphaned claude sessions, keep active ones alias claude-cleanup='ps aux | grep -i claude | grep -v grep | awk '"'"'$7 == "?" {print $2}'"'"' | xargs -r kill' # Kill everything alias claude-killall='pkill -f "claude" && sudo swapoff -a && sudo swapon -a' ``` ## Real Example: Before & After ``` # Before — 32 orphaned sessions, 49Gi used, 3.4Gi swap Mem: 62Gi 49Gi used 5.2Gi free Swap: 8.0Gi 3.4Gi used 4.6Gi free # After — 3 active sessions kept, ~21Gi freed Mem: 62Gi 28Gi used 25Gi free Swap: 8.0Gi 784Mi used 7.2Gi free ```