A comprehensive hardware analysis tool that connects to remote systems via SSH and generates detailed hardware reports including upgrade recommendations for AI workloads.
- SSH-based remote probing - Connect to any system via SSH using IP addresses or SSH config aliases
- Comprehensive hardware detection - CPU, GPU, RAM, motherboard, storage, networking, USB devices
- AI workload focus - Specialized recommendations for machine learning and AI applications
- Structured reporting - Detailed markdown reports with upgrade pathways and cost analysis
- Security assessment - TPM status, patching information, and firewall configuration
- Virtualization detection - Identifies VMs and hypervisor configurations
- Clone this repository:
git clone <repository-url>
cd Hardware-Probe-Agent-Template- Run the setup script:
./setup.shThis will:
- Create a virtual environment using
uv(or fallback topython -m venv) - Install all dependencies
- Make scripts executable
Manual installation (if you prefer):
pip install -r requirements.txt
chmod +x src/main.py src/hardware_probe_agent.py src/report_generator.pyProbe a system using SSH config:
./run.sh 10.0.0.4Probe with specific username:
./run.sh 192.168.1.100 -u adminProbe with specific SSH key:
./run.sh myserver -k ~/.ssh/id_rsaAlternatively, activate the virtual environment and run directly:
source venv/bin/activate
python src/main.py 10.0.0.4Custom output directory:
./run.sh 10.0.0.4 -o /tmp/reportsUse default output directory:
./run.sh 10.0.0.4
# Reports saved to ./output/Generate only raw data (no formatted report):
./run.sh 10.0.0.4 --raw-onlyGenerate report from existing raw data:
./run.sh --report-only raw_data_host_20240815_181234.jsonThe agent works best with SSH key-based authentication. Ensure your SSH config (~/.ssh/config) is properly configured:
Host myserver
HostName 10.0.0.4
User daniel
IdentityFile ~/.ssh/id_rsa
Port 22
Then simply use:
./run.sh myserverThe agent generates two types of output in the output/ directory:
- Raw Data (
raw_data_<host>_<timestamp>.json) - Complete probe results in JSON format - Formatted Report (
hardware_report_<host>_<timestamp>.md) - Human-readable markdown report
All reports are saved to the output/ directory by default. You can specify a different location with the -o flag.
Generated reports include:
- OS and kernel information
- System uptime
- High-level system description
- Motherboard details
- RAM configuration
- CPU specifications
- GPU information and AI suitability
- Storage analysis
- Network configuration
- USB devices
- Security status (TPM, firewall, patching)
- Cost-effective upgrade recommendations
- Component compatibility analysis
- Part numbers and pricing
- AI workload optimization focus
- OS-level performance tuning suggestions
- Driver and acceleration setup
- Container and virtualization recommendations
- Backup solution recommendations
- Storage capacity planning
- System suitability analysis
- Investment priorities
- Performance bottleneck identification
- Python 3.6+
- SSH access to target systems
paramikolibrary for SSH connectivity
For best results, target systems should have:
- SSH server running
- Standard Linux utilities (
lscpu,lspci,dmidecode, etc.) - Sudo access for hardware detection (optional but recommended)
Modify config.py to customize:
- SSH connection settings
- Hardware probe commands
- GPU and memory recommendations
- Report formatting options
Based on the user's network setup (10.0.0.0/24):
# Probe Proxmox host
./run.sh 10.0.0.2
# Probe Home Assistant
./run.sh 10.0.0.3
# Probe Ubuntu server
./run.sh 10.0.0.4
# Probe Synology NAS
./run.sh 10.0.0.50#!/bin/bash
# Probe multiple systems
for host in 10.0.0.2 10.0.0.3 10.0.0.4; do
./run.sh $host
done- Verify SSH key authentication is working:
ssh <host> - Check SSH config syntax:
ssh -F ~/.ssh/config <host> - Ensure target system allows SSH connections
- Some hardware detection requires sudo access
- The agent gracefully handles permission denials
- Consider adding your user to appropriate groups on target systems
- The agent handles missing utilities gracefully
- Install additional tools on target systems for more detailed reports:
lm-sensorsfor temperature monitoringsmartmontoolsfor disk healthdmidecodefor detailed hardware info