sysdiagnose on macOS
Control + Option + Command + Shift + Period is taken. Say hello to
sysdiagnose.
When looking for a convenient shortcut for centering messy windows, I bumped
into macOS’s sysdiagnose, which diligently generates reports on one’s system at
a press of ⇧⌃⌥⌘ ..
$ man sysdiagnose
sysdiagnose(1) General Commands Manual sysdiagnose(1)
NAME
sysdiagnose — gathers system-wide diagnostic information helpful in in‐
vestigating system performance issues
SYNOPSIS
sysdiagnose -h
sysdiagnose [-H] [-v] [-f results_directory] [-A archive_name]
[-V volume_path] [-C, --compression compression_type] [-n]
[-k] [-F] [-S] [-u] [-Q] [-b] [-p] [-P] [-g] [-G] [-d] [-D]
[-r] [-R] [process_name | pid]
DESCRIPTION
The sysdiagnose tool gathers system diagnostic information helpful in
investigating system performance issues. A great deal of information is
harvested, spanning system state and configuration. The data is stored
/var/tmp directory. sysdiagnose needs to be run as root. To cancel an
in-flight sysdiagnose triggered via command line interface, press
Ctrl-\. sysdiagnose is automatically triggered when the following key
chord is pressed: Control-Option-Command-Shift-Period.
What sysdiagnose collects:
• A spindump of the system
• Several seconds of top output
• Data about kernel zones
• Status of loaded kernel extensions
• Resident memory usage of user processes
• Recent system logs
• A System Profiler report
• Recent crash reports
• Disk usage information
• I/O Kit registry information
• Network status
• If a specific process is supplied as an argument: list of mal‐
loc-allocated buffers in the process's heap is collected
• If a specific process is supplied as an argument: data about
unreferenced malloc buffers in the process's memory is col‐
lected
• If a specific process is supplied as an argument: data about
the virtual memory regions allocated in the process
$ ls -lah /private/var/tmp/sysdiagnose*
: -rw-rw-r-- 1 jcf staff 343M Oct 31 12:08 /private/var/tmp/sysdiagnose_2025.10.31_12-05-29+0000_1387_macOS_Mac_25A362.tar.gz
: -rw-rw-r-- 1 jcf staff 339M Oct 31 12:17 /private/var/tmp/sysdiagnose_2025.10.31_12-14-43+0000_89854_macOS_Mac_25A362.tar.gz
Those archives are big!
$ du -hs /private/var/tmp/* | rg sysdiagnose
: 353M /private/var/tmp/sysdiagnose_2025.10.31_12-05-29+0000_1387_macOS_Mac_25A362.tar.gz
: 353M /private/var/tmp/sysdiagnose_2025.10.31_12-14-43+0000_89854_macOS_Mac_25A362.tar.gz
And might look like they’re growing if one assumes the passage of time between
invocation of ls followed by du, but we’re seeing the size of file and space
used on disk.