To check your MacBook’s specs from Terminal, run one command:
system_profiler SPHardwareDataType
It prints the model, chip, CPU core split, and memory in under a second. The one thing it does not tell you is the model year. For that, there is a second one-liner below that reads the full marketing name, like “MacBook Air (15-inch, M3, 2024)”, straight from the hardware.
The quick way: About This Mac
If you just want a glance, click the Apple menu () in the top-left corner and choose About This Mac. The window shows the model name with its size and year, the chip, the memory, the serial number, and the macOS version. Click More Info… to open the About page in System Settings, which adds storage.
That is fine for a quick look. Terminal is better when you want to copy the specs into a sale listing or a support ticket, check a Mac over SSH, or see things the window hides, like the GPU core count.
Full hardware overview with system_profiler
Here is the real output from my test Mac, a MacBook Air M3 on macOS Tahoe 26.6.2. I replaced the serial number and IDs with placeholders:
system_profiler SPHardwareDataType
Hardware:
Hardware Overview:
Model Name: MacBook Air
Model Identifier: Mac15,13
Model Number: MXD23xx/A
Chip: Apple M3
Total Number of Cores: 8 (4 Performance and 4 Efficiency)
Memory: 16 GB
System Firmware Version: 18000.161.10
OS Loader Version: 18000.161.10
Serial Number (system): XXXXXXXXXX
Hardware UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Provisioning UDID: XXXXXXXX-XXXXXXXXXXXXXXXX
Activation Lock Status: Enabled
What the lines mean:
| Line | What it tells you |
|---|---|
| Model Name | The product family (MacBook Air, MacBook Pro) |
| Model Identifier | Apple’s internal code, e.g. Mac15,13. Useful for looking up the exact model |
| Model Number | The order number. The two letters before /A are the country code |
| Chip | Apple Silicon chip (M1, M2, M3…) or the Intel CPU |
| Total Number of Cores | CPU cores, split into Performance and Efficiency on Apple Silicon |
| Memory | Installed RAM. On Apple Silicon it cannot be upgraded later |
On my Mac the command also printed one odd line before the report:
2026-11-13 10:05:26.335 system_profiler[…] hw.cpufamily: 0xfa33415e
That is debug noise written to standard error, not part of the report. It does not mean anything is wrong. Add 2>/dev/null to hide it:
system_profiler SPHardwareDataType 2>/dev/null
Find the model year (the line system_profiler skips)
system_profiler gives you Model Name: MacBook Air but no size or year. This is the question most people actually have (“is this the 2022 or the 2024 one?”). The full name is stored in the device tree, and ioreg can read it:
ioreg -l -p IODeviceTree | awk -F'"' '/"product-name"/{print $4; exit}'
MacBook Air (15-inch, M3, 2024)
This was the most useful thing I found while testing. It works offline, needs no admin password, and gives the size and year that system_profiler leaves out.
You may see older guides that look up the model in a file called SIMachineAttributes.plist inside /System/Library/PrivateFrameworks/ServerInformation.framework. That file still exists on macOS Tahoe, but on my Mac it had no entry for any Mac15 model at all. The newest models it knows are Intel-era. So that trick fails on Apple Silicon Macs. Use ioreg instead.
GPU cores, display, and storage
The GPU core count is not in the hardware overview. It lives in the displays section:
system_profiler SPDisplaysDataType 2>/dev/null
Graphics/Displays:
Apple M3:
Chipset Model: Apple M3
Type: GPU
Bus: Built-In
Total Number of Cores: 10
Vendor: Apple (0x106b)
Metal Support: Metal 4
Displays:
Color LCD:
Display Type: Built-in Liquid Retina Display
Resolution: 2880 x 1864 Retina
Main Display: Yes
The second Total Number of Cores: 10 is the GPU. Some chips are sold with different GPU core counts, so this line is how you tell which version you have.
For storage, diskutil gives the size the way Apple advertises it:
diskutil info / | grep -E "Disk Size|Solid State"
Disk Size: 494.4 GB (494384795648 Bytes) (exactly 965595304 512-Byte-Units)
Solid State: Yes
This is a “512 GB” Mac. You see 494.4 GB because the main container excludes some space Apple reserves for system partitions such as recovery. df -h / showed 460Gi for the same disk, because df counts in binary gibibytes (1 GiB = 1.074 GB). Neither number means the drive is faulty. To see what is filling it, see how to find large files on Mac.
A one-line spec summary to copy
When you only need the headline numbers, filter both sections at once:
system_profiler SPHardwareDataType SPDisplaysDataType 2>/dev/null | grep -E "Model Name|Chip:|Total Number of Cores|Memory:|Resolution"
Model Name: MacBook Air
Chip: Apple M3
Total Number of Cores: 8 (4 Performance and 4 Efficiency)
Memory: 16 GB
Total Number of Cores: 10
Resolution: 2880 x 1864 Retina
The first core line is the CPU, the second is the GPU. Add the macOS version with sw_vers (more in how to check your macOS version in Terminal):
sw_vers
ProductName: macOS
ProductVersion: 26.6.2
BuildVersion: 25G83
Share specs without leaking your serial number
The default report includes your serial number, hardware UUID, and provisioning UDID. You should not paste those into a public forum. The mini detail level drops them:
system_profiler -detailLevel mini SPHardwareDataType 2>/dev/null
On my Mac this printed the same report but stopped after OS Loader Version. The serial, both IDs, and Activation Lock status were gone. That makes it a safe version to share.
If you want the specs in a script, use sysctl. It is instant and prints raw values:
sysctl -n machdep.cpu.brand_string hw.ncpu hw.perflevel0.logicalcpu hw.perflevel1.logicalcpu hw.model
Apple M3
8
4
4
Mac15,13
Those are the chip name, total CPU cores, Performance cores, Efficiency cores, and model identifier. The perflevel keys are Apple Silicon only. Memory comes back in bytes, so divide it:
sysctl -n hw.memsize | awk '{print $1/1073741824 " GB"}'
16 GB
system_profiler can also print JSON with -json. By default the JSON includes serial_number, platform_UUID, and provisioning_UDID. Combine it with -detailLevel mini and those fields disappear, just like in the text report.
Common questions
Can I check MacBook specs by serial number?
Yes. Apple’s Check Coverage page (checkcoverage.apple.com) shows the model name for a serial number. I did not test that page for this guide. On the Mac itself, the ioreg one-liner above gives the same model name without typing the serial anywhere.
Why does the full system_profiler report take so long?
Running system_profiler with no data type collects about 50 sections, including USB, Bluetooth, and network scans. Even system_profiler -detailLevel mini took 14 seconds on my M3. Asking for one section, like SPHardwareDataType, finished in about 0.3 seconds. Run system_profiler -listDataTypes to see all section names.
How do I see how much RAM is actually in use?
The specs above show installed memory. For live usage, see how to check RAM usage on Mac from Terminal.
Does this work on Intel Macs?
system_profiler, ioreg, sw_vers, and diskutil exist on Intel Macs too. The output differs: Intel Macs show Processor Name and Processor Speed instead of Chip, and there is no Performance/Efficiency split, so the hw.perflevel sysctl keys are missing. I only tested on Apple Silicon.
Is it safe to share the Model Identifier?
Yes. Mac15,13 is the same for every Mac of that model. It is the serial number, hardware UUID, and provisioning UDID that are unique to your machine.