MainspringGuides › System info
macOS Guide

Get Mac System Info From Terminal (system_profiler)

Updated July 2026 · 3 min read

About This Mac shows five lines. The command behind it, system_profiler, knows hundreds — chip, serial number, battery health, connected displays, storage layout, every installed app. When you need a spec for a support ticket, a script, or a second-hand sale listing, Terminal gets it faster than clicking ever will. Everything here is read-only.

The one command that answers most questions

# the essentials: model, chip, memory, serial number
system_profiler SPHardwareDataType

The output includes the model name and identifier, the chip (or processor on Intel Macs), the number of cores, the amount of memory, and the serial number — the exact set of facts AppleCare, an IT department, or a buyer asks for. Copy it straight from Terminal instead of screenshotting About This Mac.

Never run bare system_profiler with no arguments unless you mean it: it collects every report, takes a minute or more, and produces thousands of lines. If you do want the full dump, send it to a file: system_profiler -detailLevel mini > ~/Desktop/specs.txt. The mini detail level also omits personal identifiers like serial numbers — useful when posting output publicly.

Find the report you need

system_profiler organizes everything into datatypes. List them all, then request just the one you want:

# every available report name
system_profiler -listDataTypes

# battery health: cycle count, condition, capacity
system_profiler SPPowerDataType

# displays: resolution, refresh rate, how they're connected
system_profiler SPDisplaysDataType

The names to remember:

You can request several at once — system_profiler SPHardwareDataType SPStorageDataType — and script-friendly output formats exist too: add -json or -xml and parse the result with any tool you like.

Quick companions: sysctl and uname

For single facts inside a script, system_profiler is heavyweight. Two smaller commands return one answer apiece, instantly:

# the chip's marketing name
sysctl -n machdep.cpu.brand_string

# installed memory, in bytes
sysctl -n hw.memsize

# architecture: arm64 (Apple silicon) or x86_64 (Intel)
uname -m

sysctl reads live kernel values — run sysctl -a to browse the whole catalog (it's long; pipe it through grep). uname -m is the standard check in install scripts that behave differently on Apple silicon and Intel. None of these change anything; they only report.

Audit your apps while you're here

# every installed app, with version and architecture
system_profiler SPApplicationsDataType > ~/Desktop/apps.txt

This one takes a minute — it inspects every application on the Mac — which is why sending it to a file beats watching it scroll. The payoff is the Kind field on each entry: Apple Silicon, Universal, or Intel. On an Apple silicon Mac, anything marked Intel runs through Rosetta 2 translation — worth knowing when one app feels inexplicably slower than the rest. Search the file instead of scrolling it: grep -B 3 "Kind: Intel" ~/Desktop/apps.txt lists just the translated apps with their names. Delete the file when you're done — it's a snapshot, not something macOS maintains.

Know it. Then tune it.

Once you know exactly what Mac you have, Mainspring helps you make the most of it — 90+ hidden macOS settings surfaced as labelled, reversible toggles.

Try Mainspring free →

Signed & notarized by Apple · 1-day free trial · $29 once

The version question

The other spec every bug report needs is the exact macOS version and build. That's a different, even smaller command — sw_vers — covered in our guide to checking your macOS version from Terminal.