Skip to content

Platform Support Matrix

SystemInspector exposes capability metadata at runtime:

js
const si = require('@ambicuity/systeminspector');

console.log(await si.capabilities());
console.log(await si.capability('dockerContainers'));

Legend:

SymbolMeaning
Supported with built-in OS APIs or common platform commands
⚠️Partial support, hardware-dependent, or requires optional tools/permissions
Unsupported or not currently implemented
FunctionLinuxmacOSWindowsFreeBSD/OpenBSD/NetBSDSunOSAndroid
cpu, mem, osInfo, time, currentLoad
cpuTemperature⚠️⚠️⚠️⚠️⚠️⚠️
system, bios, baseboard, chassis⚠️⚠️⚠️⚠️
fsSize, blockDevices, diskLayout⚠️⚠️⚠️
fsStats, disksIO⚠️
networkInterfaces, networkStats, networkConnections⚠️
wifiNetworks, wifiInterfaces, wifiConnections⚠️⚠️⚠️⚠️
processes, processLoad, services, users⚠️⚠️
dockerInfo, dockerImages, dockerContainers, dockerContainerStats, dockerContainerProcesses, dockerVolumes, dockerAll⚠️⚠️⚠️
vboxInfo⚠️⚠️⚠️
usb, audio, bluetoothDevices, printer, graphics⚠️⚠️⚠️⚠️⚠️⚠️

Common optional tools include dmidecode, lscpu, sensors, smartctl, lsblk, lspci, lsusb, nmcli, iw, iwlist, lpstat, Docker, VirtualBox, PowerShell, system_profiler, ioreg, and netsh.

Use systeminspector doctor when opening issues or sharing machine diagnostics. Add --json for automation and info --redact for privacy-safe reports.

Fixture-tested parsers

The matrix above is hand-curated from documented platform capabilities. A subset of code paths is additionally validated by pure parsers tested against authentic command captures that ship in test/fixtures/<platform>/<tool>/. Those guarantees travel with the package — every PR re-runs them on the CI matrix without needing the source platform present.

Tool / outputPlatformParserFixtureUsed by
lscpuLinuxparseLscpulinux/lscpu/ubuntu-22.txtcpu
df -k (GNU)LinuxparseDflinux/df/sample.txtfsSize
df -kP (POSIX)macOSparseDfDarwindarwin/df/df-kP.txtfsSize ✓ wired
diskutil listmacOSparseDiskutilListdarwin/diskutil/list.txtblockDevices (parser ready, integration pending)
ifconfig <iface>macOS / BSDparseIfconfigDarwindarwin/ifconfig/{en0,lo0}.txtnetworkInterfaces (pending)
route -n get defaultmacOSparseRouteDarwindarwin/route/default.txtnetworkGatewayDefault (pending)
netstat -rnmacOSparseNetstatRoutesdarwin/netstat/rn-inet.txtnetwork diagnostics
networksetup -listallhardwareportsmacOSparseNetworksetupHardwarePortsdarwin/networksetup/listallhardwareports.txtnetworkInterfaces MAC enrichment
networksetup -getairportnetworkmacOSparseNetworksetupAirportNetworkdarwin/networksetup/getairportnetwork-en0.txtwifiConnections
networksetup -getairportpowermacOSparseNetworksetupAirportPowerdarwin/networksetup/getairportpower-en0.txtwifiInterfaces
ps -axo pid,user,pcpu,pmem,commandmacOSparsePsAxoDarwindarwin/ps/axo.txtprocesses
ps (4-col GNU)LinuxparsePsListlinux/ps/sample.txtprocesses
system_profiler SPDisplaysDataTypemacOSparseSystemProfilerSPDisplaysdarwin/system_profiler/SPDisplaysDataType.txtgraphics
system_profiler SPMemoryDataTypemacOSparseSystemProfilerSPMemorydarwin/system_profiler/SPMemoryDataType.txtmemLayout
netstatLinuxparseNetstatConnectionslinux/netstat/sample.txtnetworkConnections
docker psanyparseDockerPslinux/docker/ps.txtdockerContainers

Linux-only and Windows-only parsers are deferred to follow-up branches that capture authentic outputs from those hosts. Contributions of additional fixtures (with PII redaction) are welcome — see the per-domain files under test/parsers/ for the pattern.

Inspector AI
SystemInspector AI initialized. How can I help you query your hardware?