A Python-based tool to collect and display detailed system information, including hardware, software, and network details. The tool features an interactive GUI and can generate reports in multiple formats (text, HTML, JSON) for easy analysis and integration with other tools.
-
Interactive GUI: Modern, tabbed interface with real-time system monitoring
- System overview with detailed specifications
- CPU usage with per-core monitoring
- Memory and swap usage with visual indicators
- Disk information in a sortable table
- Network interface details and I/O statistics
-
Comprehensive System Information: Collects detailed information about:
- System (OS, version, hostname, etc.)
- CPU (cores, usage, frequency)
- Memory (RAM and swap usage)
- Disk (partitions, usage, file systems)
- Network (interfaces, IP addresses, I/O statistics)
- System uptime and boot time
-
Multiple Output Formats:
- Interactive GUI (default) with export options
- Human-readable text format
- HTML report with a clean, responsive design
- JSON format for programmatic use
- CSV format for spreadsheet applications
- PDF format for documentation and sharing
-
Cross-Platform: Works on Windows, macOS, and Linux
- Python 3.7+
- Required packages (automatically installed via
requirements.txt):psutil- For system information gatheringplatformdirs- For consistent cross-platform pathsreportlab- For PDF report generationfpdf2- Alternative PDF generationpandas- For data handling and CSV export
Note for Linux Users: On some Linux distributions, you might need to install
python3-tkfor the GUI to work:# For Ubuntu/Debian sudo apt-get install python3-tk
-
Clone the repository:
git clone https://github.com/Areyxc/SystemInfoGenerator.git cd SystemInfoGenerator -
Install the required packages:
pip install -r requirements.txt
# Launch the interactive GUI (default)
python system_info.py
# Or specify the GUI explicitly
python system_info.py --output guiusage: system_info.py [-h] [--output {text,html,json,gui}] [--file FILE]
Generate system information reports.
optional arguments:
-h, --help show this help message and exit
--output {text,html,json,csv,pdf,gui}, -o {text,html,json,csv,pdf,gui}
Output format (default: gui)
--file FILE, -f FILE Output file path (default: auto-generated filename)
The interactive GUI provides a user-friendly way to explore system information:
- Tabbed Interface: Easily navigate between different system categories
- Visual Indicators: Progress bars for CPU, RAM, and swap usage
- Sortable Tables: Disk and network information in sortable tables
- Export Options: Save reports in multiple formats (Text, HTML, JSON, CSV, PDF)
- Responsive Design: Adapts to different window sizes
-
Launch the GUI (default):
python system_info.py
-
Generate an HTML report:
python system_info.py --output html --file system_report.html
-
Generate a JSON report and print to console:
python system_info.py --output json
-
Save a text report with a custom filename:
python system_info.py --output text --file my_system_info.txt
-
Generate a CSV report for spreadsheet analysis:
python system_info.py --output csv --file system_report.csv
-
Generate a PDF document:
python system_info.py --output pdf --file system_report.pdf
-
Generate a report without opening the GUI:
# This will generate a text report without showing the GUI python system_info.py --output text --file report.txt
The GUI provides a comprehensive view of your system's status with multiple tabs:
- System: General system information and uptime
- CPU: Core usage and frequency information
- Memory: RAM and swap usage with progress bars
- Disks: Detailed disk information in a sortable table
- Network: Network interfaces and I/O statistics
==================================================
SYSTEM INFORMATION REPORT - 2025-10-29 02:28:45
==================================================
SYSTEM INFORMATION
------------------------------
System: Windows
Node Name: DESKTOP-ABC123
Release: 10
Version: 10.0.19045
Machine: AMD64
Processor: Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
Python Version: 3.11.9
CPU INFORMATION
------------------------------
Physical Cores: 8
Total Cores: 16
CPU Usage: 12.3%
CPU Frequency: 3600.0 MHz
MEMORY INFORMATION
------------------------------
Total RAM: 31.92 GB
Available RAM: 18.56 GB
Used RAM: 13.36 GB (41.9%)
Total Swap: 36.00 GB
Used Swap: 2.45 GB (6.8%)
...
Generates a responsive HTML page with the same information in a more visually appealing format, perfect for sharing or documentation.
Generates a comma-separated values file that can be opened in spreadsheet applications like Microsoft Excel or Google Sheets. The CSV format is ideal for data analysis and processing.
Creates a professional-looking PDF document with formatted tables and system information. The PDF is perfect for documentation, reports, or sharing system specifications in a portable format.
{
"timestamp": "2025-10-29 02:28:45",
"system": {
"system": "Windows",
"node_name": "DESKTOP-ABC123",
"release": "10",
"version": "10.0.19045",
"machine": "AMD64",
"processor": "Intel64 Family 6 Model 158 Stepping 10, GenuineIntel",
"python_version": "3.11.9"
},
"cpu": {
"physical_cores": 8,
"total_cores": 16,
"cpu_percent": [12.3, 8.5, 15.2, ...],
"cpu_freq": {
"current": 3600.0,
"max": 4500.0
}
},
...
}This is solely made by Group 5 for project purposes to be passed to our professor.
- Belza, John Jaylyn
- Constantino, Alvin Jr.
- Sabangan, Ybo
- Santiago, James Aries
- Silvestre, Jesse Lei
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Add logging for audits
- Integrate matplotlib for charts (e.g., CPU pie)
- Add system tray integration for quick access
- Add dark/light theme support
- On some Linux distributions, you might need to install additional packages for the GUI to work properly
- The first launch might be slightly slower as it collects all system information
