-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmac-optimize.sh
More file actions
executable file
·93 lines (76 loc) · 2.9 KB
/
mac-optimize.sh
File metadata and controls
executable file
·93 lines (76 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/usr/bin/env bash
# mac-optimize.sh — Collects macOS performance data for analysis
set -uo pipefail
# Redact sensitive patterns from process output
redact() {
sed -E 's/(token|key|password|secret|credential|auth)=[^ ]*/\1=REDACTED/gi'
}
echo "WARNING: This output may contain sensitive information (process arguments,"
echo "paths, usernames). Review before sharing publicly."
echo ""
echo "=== SYSTEM INFO ==="
sysctl -n machdep.cpu.brand_string
echo "Cores: $(sysctl -n hw.ncpu)"
echo "RAM: $(( $(sysctl -n hw.memsize) / 1073741824 )) GB"
sw_vers
uptime
echo ""
echo "=== MEMORY ==="
vm_stat
echo "---SWAP---"
sysctl vm.swapusage
echo ""
echo "=== TOP PROCESSES BY CPU ==="
ps auxc -r | head -25 || true
echo ""
echo "=== TOP PROCESSES BY MEMORY ==="
ps auxc -m | head -25 || true
echo ""
echo "=== PROCESS SUMMARY ==="
echo "Total processes: $(ps aux | wc -l | tr -d ' ')"
echo "Total threads: $(ps -M -e | wc -l | tr -d ' ')"
echo ""
echo "=== BROWSER PROCESSES ==="
for browser in "Google Chrome" "Brave Browser" "Firefox" "Safari" "Arc" "Microsoft Edge"; do
count=$(ps aux | grep -iF "$browser" | grep -v grep | wc -l | tr -d ' ')
if [ "$count" -gt 0 ]; then
mem=$(ps aux | grep -iF "$browser" | grep -v grep | awk '{sum+=$4} END {printf "%.1f", sum}')
cpu=$(ps aux | grep -iF "$browser" | grep -v grep | awk '{sum+=$3} END {printf "%.1f", sum}')
echo "$browser: $count processes, ${mem}% RAM, ${cpu}% CPU"
fi
done
echo ""
echo "=== CLAUDE CODE SESSIONS ==="
ps aux | grep -w "claude" | grep -v grep | awk '{printf "PID:%s CPU:%s%% MEM:%s%% RSS:%dMB\n", $2, $3, $4, $6/1024}' | redact || echo "None"
echo ""
echo "=== DISK USAGE ==="
df -h /
diskutil info / | grep -E "Free|Available|Purgeable" || true
echo ""
echo "=== POWER & THERMAL ==="
pmset -g 2>/dev/null | grep -E "lowpowermode|sleep|displaysleep" || true
pmset -g therm 2>/dev/null || true
echo ""
echo "=== LOGIN ITEMS ==="
osascript -e 'tell application "System Events" to get the name of every login item' 2>/dev/null || echo "Unable to read"
echo ""
echo "=== USER LAUNCH AGENTS ==="
ls "$HOME/Library/LaunchAgents/" 2>/dev/null || echo "None"
echo ""
echo "=== SYSTEM LAUNCH DAEMONS ==="
ls /Library/LaunchDaemons/ 2>/dev/null || echo "None"
echo ""
echo "=== HEAVY LONG-RUNNING PROCESSES (>1hr CPU time) ==="
ps aux | awk 'NR>1 {split($10,t,":"); if(t[1]>=60 || (t[1]>=1 && length(t)==3)) printf "PID:%s CPU_TIME:%s CMD:%s\n", $2, $10, $11}' | head -20 | redact || true
echo ""
echo "=== DOCKER / VM ==="
if pgrep -q "Docker|OrbStack|colima|qemu"; then
echo "Container runtime detected:"
ps aux | grep -F $'Docker\nOrbStack\ncolima\nqemu' | grep -v grep | awk '{printf "PID:%s CPU:%s%% MEM:%s%% CMD:%s\n", $2, $3, $4, $11}' | redact
else
echo "No container runtime detected"
fi
echo ""
echo "=== NETWORK CONNECTIONS (established) ==="
netstat -an 2>/dev/null | grep ESTABLISHED | wc -l | tr -d ' '
echo "established connections"