System Diagnosis is a small Electron desktop app and Node.js CLI for collecting local system health reports. It scans the Windows or Linux computer running the tool, and it can scan connected Android devices through adb.
- Node.js 18 or newer
- Windows PowerShell for Windows local scans
- Standard Linux tools such as
df,lsblk,systemctl,journalctl, and optionalsmartctl - Android platform-tools for Android scans
Install dependencies:
npm installRun the app during development:
npm.cmd run guiThe scan profile selector includes:
Quick: core identity, CPU, memory, storage, network, and baseline platform checksFull: quick checks plus normal platform health checksExtended - Windows Events + Hardware: full checks plus Windows Event Viewer history, Reliability Monitor records, application crash history, Windows Update health, Service Control Manager events, driver setup/runtime events, targeted hardware event providers, and a hardware inventory snapshot
After a scan, select any check in the results list to inspect readable details. Event-heavy checks show event cards, repeated event IDs, crash sources, extracted application/module names where available, advice, and the raw structured evidence.
Build the portable Windows app:
npm.cmd run package:winThe build output is written to dist\System Diagnosis-win32-x64\System Diagnosis.exe.
node .\system_diagnosis.js --help
node .\system_diagnosis.js list
node .\system_diagnosis.js scan --target local
node .\system_diagnosis.js scan --target local --profile quick
node .\system_diagnosis.js scan --target local --profile full
node .\system_diagnosis.js scan --target local --profile extended
node .\system_diagnosis.js scan --target android --serial DEVICE_SERIALNPM aliases:
npm.cmd run list
npm.cmd run scan:quick
npm.cmd run scan:full
npm.cmd run scan:extendedRunning the CLI without arguments opens a small device-selection prompt.
Reports are written to logs by default:
diagnosis_<target>_<timestamp>.txtdiagnosis_<target>_<timestamp>.json
The text report is for quick review. The JSON report keeps the full structured evidence for automation, follow-up analysis, or UI work.
Local Windows/Linux checks include system identity, CPU load, memory pressure, storage capacity, network basics, and platform-specific health checks.
Windows adds Device Manager errors, physical disk health, SMART prediction data where available, battery state, Defender state, critical event logs, and ACPI thermal sensors. The extended Windows profile adds the deeper event and hardware history listed in the desktop app section.
Linux adds disk inventory, optional SMART health through smartctl, battery data, failed systemd services, thermal zones, optional lm-sensors, and kernel warning logs.
Android checks include ADB connectivity, build/device identity, battery, storage, memory, CPU load, network state, thermal zones, package inventory, recent error logs, and sensor-service output.
Some hardware checks depend on what the operating system exposes without administrator or root permissions. Vendor-only diagnostics, destructive write tests, battery calibration, deep memory testing, and firmware flashing are intentionally not run by this tool.
Generated directories and reports are ignored by Git:
node_modulesdistlogs- generated inventory CSV files
Use npm.cmd run check before committing code changes.
Copyright (C) 2026 Felix Kilian
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This project is licensed under the GNU General Public License v3.0 or later. See LICENSE.