Skip to main content

Advanced system information tool for local LLM usage

Project description

image

๐Ÿš€ LLM-Neofetch++

Version Python License Platform

Advanced System Information Tool for Local LLM Usage

Show detailed hardware specs optimized for running local AI models


โœจ Features

๐Ÿ” Comprehensive Hardware Detection

  • โœ… CPU: Model, cores, threads, frequency, temperature, usage
  • โœ… GPU: NVIDIA (nvidia-smi/pynvml), AMD (amd-smi/rocm-smi), Intel Arc
  • โœ… VRAM: Total, used, and available video memory
  • โœ… NPU: Intel AI Boost, AMD XDNA, Apple Neural Engine
  • โœ… RAM: Capacity, module speed, and bandwidth estimate
  • โœ… Storage: Disk type (NVMe/SSD/HDD), capacity, speed benchmarks
  • โœ… Battery: Charge level, power status, time remaining (laptops)
  • โœ… Apple Silicon: M1-M4 variants with GPU cores and memory bandwidth
  • โœ… AI Runtimes: CUDA, ROCm, Vulkan, DirectML, Metal versions
  • โœ… Environment: WSL, Docker, and cloud VM (AWS/GCP/Azure) detection

๐ŸŽฏ Smart AI/LLM Features

  • ๐Ÿค– Context-Aware Recommendations: max context length and token/s estimates per model tier, computed from weights + KV cache on your hardware
  • โœ… can-run Check: "will llama3.1:70b fit?" โ€” per-quant verdicts with memory needs, speed estimates, and max context
  • ๐Ÿ”Œ Backend Detection: finds installed Ollama / LM Studio / llama.cpp / vLLM with version and running state
  • ๐Ÿ“ฆ Installed Model Scan: lists your downloaded models with a fits-on-GPU/CPU verdict for each
  • โšก Real Benchmarks: actual tokens/s via Ollama (--bench-llm), memory bandwidth (--bench-mem), disk speed (-b)
  • ๐Ÿ“Š Quantization Guide: GGUF formats explained (Q2_K through Q8_0)
  • ๐ŸŽ“ Fine-Tuning Guide: QLoRA/LoRA VRAM requirements with fit verdicts
  • ๐Ÿ’ก Optimization Tips: Specific advice for your system configuration

๐ŸŽจ Beautiful UI

  • ๐ŸŒˆ Color-coded Output: Easy to read with semantic colors
  • ๐Ÿ“Š Progress Bars: Visual representation of usage and capacity
  • ๐Ÿ”ง Configurable: Customize colors, emoji, detail level
  • ๐Ÿ“ฑ Responsive: Adapts to terminal width

๐Ÿ› ๏ธ Developer Friendly

  • ๐Ÿ“ค Export Formats: JSON, YAML, Markdown
  • ๐Ÿงช Unit Tests: Comprehensive test coverage
  • ๐Ÿ”Œ Modular Design: Easy to extend and customize
  • ๐Ÿ“ Type Hints: Full type annotations
  • ๐Ÿ› Verbose Mode: Detailed logging for debugging

๐Ÿ“ฆ Installation

From Source (Recommended)

# Clone the repository
git clone https://github.com/HFerrahoglu/llm-neofetch-plus.git
cd llm-neofetch-plus

# Install dependencies
pip install -r requirements.txt

# Run directly
python -m llm_neofetch

# Or install globally
pip install -e .
llm-neofetch

Using pip

pip install llm-neofetch-plus
llm-neofetch

๐ŸŽฎ Usage

Basic Usage

# Normal output (default)
llm-neofetch

# Minimal output
llm-neofetch -d 1

# Detailed output with all features
llm-neofetch -d 3

# Interactive mode (choose detail level)
llm-neofetch -i

Will it run?

# Check whether a model fits (per-quant verdicts, speed, max context)
llm-neofetch can-run llama3.1:70b
llm-neofetch can-run qwen2.5:32b --quant Q4_K_M --context 16384
# Exit code: 0 = fits, 2 = does not fit (script-friendly)

Benchmarks

llm-neofetch -b                        # Disk read/write speed
llm-neofetch --bench-mem               # Memory copy bandwidth
llm-neofetch --bench-llm               # Real tokens/s via Ollama
llm-neofetch --bench-llm llama3.2:1b   # ...with a specific model

Monitoring & machine output

llm-neofetch --watch                   # Live CPU/RAM/GPU/LLM-process monitor
llm-neofetch --watch --interval 5      # Slower refresh
llm-neofetch --json                    # Machine-readable JSON to stdout
llm-neofetch diff desktop.json laptop.json   # Compare two systems

Appearance & export

llm-neofetch --theme dracula           # Themes: dracula, nord, solarized, mono
llm-neofetch --compact                 # Less whitespace
llm-neofetch --no-emoji                # Plain icons
llm-neofetch --export report.html      # Full-color HTML report
llm-neofetch --export report.json      # JSON / .yaml / .md also supported

Advanced Usage

# Verbose logging for debugging
llm-neofetch -v

# Custom config file
llm-neofetch --config /path/to/config.yaml

# Combine options
llm-neofetch -d 3 -b --bench-mem --export full_report.html

๐Ÿ“ธ Screenshots

Normal Output

โ”Œโ”€ โšก LLM-Neofetch++ v1.1.0 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Advanced system info for local LLM usage                                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”€โ”€ ๐Ÿ’ป System Information โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  OS             Linux-6.5.0-1-amd64-x86_64-with-glibc2.38
  Kernel         6.5.0 (x86_64)
  Uptime         2d 14h 32m
  Python         3.11.5

โ”€โ”€ ๐Ÿ”ง CPU โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Model          AMD Ryzen 9 7950X 16-Core Processor
  Cores          16 physical / 32 threads
  Frequency      4200 MHz (max 5700 MHz)
  Usage          โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  35.2%

โ”€โ”€ ๐ŸŽฎ GPU โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  ๐ŸŸข NVIDIA GeForce RTX 4090
     VRAM    โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 12.4/24.0 GB
     Usage   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘  20.0%
     Temp    58ยฐC

โ”€โ”€ ๐ŸŽฏ Model Recommendations โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Model Tier            Examples
  Extra Large (70-72B)  Llama 3.1 70B, Qwen2.5 72B
  Large (30-34B)        Llama 3.1 33B, Qwen2.5 32B, Yi 34B
  Medium (13-14B)       Llama 2 13B, Qwen2.5 14B, Mistral Medium

โ”€โ”€ ๐Ÿ’ก Optimization Tips โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  โœ“  Excellent VRAM - Can run 70B models with Q4 quantization
  โœ“  Fast storage - Quick model loading and context management

โš™๏ธ Configuration

LLM-Neofetch++ uses a YAML configuration file. By default, it looks for (first match wins, merged over built-in defaults):

  1. ~/.config/llm-neofetch/config.yaml
  2. /etc/llm-neofetch/config.yaml
  3. The bundled package config (llm_neofetch/config/config.yaml)

Sample Configuration

# UI Settings
ui:
  box_width: 76
  use_emoji: true
  show_progress_bars: true
  compact_mode: false

# Color Theme โ€” Rich style strings (names, hex codes, or "bold cyan" combos)
colors:
  primary: "blue"
  success: "green"
  warning: "yellow"
  danger: "red"

# Performance Thresholds
thresholds:
  vram:
    excellent: 24  # GB
    good: 12
    moderate: 8

๐Ÿ”ง Development

Project Structure

llm-neofetch-plus/
โ”œโ”€โ”€ llm_neofetch/
โ”‚   โ”œโ”€โ”€ __init__.py          # Package exports
โ”‚   โ”œโ”€โ”€ __main__.py          # `python -m llm_neofetch` entry point
โ”‚   โ”œโ”€โ”€ app.py               # Main application and CLI
โ”‚   โ”œโ”€โ”€ detectors.py         # Hardware detection modules
โ”‚   โ”œโ”€โ”€ environment.py       # Backend/runtime/process/cloud detection
โ”‚   โ”œโ”€โ”€ llm_math.py          # VRAM, KV cache, and speed estimation
โ”‚   โ”œโ”€โ”€ ui.py                # UI rendering and formatting
โ”‚   โ”œโ”€โ”€ defaults.py          # Built-in default configuration
โ”‚   โ””โ”€โ”€ config/
โ”‚       โ””โ”€โ”€ config.yaml      # Bundled configuration file
โ”œโ”€โ”€ tests/
โ”‚   โ””โ”€โ”€ test_all.py          # Unit tests
โ”œโ”€โ”€ requirements.txt         # Python dependencies
โ”œโ”€โ”€ pyproject.toml           # Package setup
โ””โ”€โ”€ README.md                # This file

Running Tests

# Run all tests
python tests/test_all.py

# Run with pytest (if installed)
pytest tests/

# Run with coverage
pytest --cov=src tests/

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐ŸŽฏ Use Cases

For AI/ML Developers

  • Quickly assess if your hardware can run specific models
  • Get token/s estimates before downloading large models
  • Understand which quantization format to use
  • Optimize your LLM stack configuration

For System Administrators

  • Monitor system resources for AI workloads
  • Export reports for documentation
  • Benchmark storage performance for model loading
  • Track GPU utilization and temperatures

For Researchers

  • Document hardware specs in papers
  • Compare performance across different systems
  • Generate reproducible system reports
  • Share hardware configurations

๐Ÿš€ Roadmap

  • Cloud/VM environment detection (AWS, GCP, Azure, WSL, Docker)
  • LLM benchmarking (real tokens/s via Ollama, memory bandwidth)
  • Backend integration (Ollama, LM Studio, llama.cpp, vLLM detection)
  • Context-aware model recommendations (KV cache math)
  • Docker container support (distribution)
  • Web dashboard (optional)
  • Historical tracking and graphs
  • Automatic model download suggestions

๐Ÿค Acknowledgments

  • Built with psutil for cross-platform system info
  • Inspired by neofetch
  • Community feedback from r/LocalLLaMA

๐Ÿ“„ License

MIT License - see LICENSE file for details


๐ŸŒŸ Star History

If you find this tool useful, please consider giving it a star โญ


๐Ÿ“ž Support


Made with โค๏ธ for the Local LLM Community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llm_neofetch_plus-1.2.0.tar.gz (50.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llm_neofetch_plus-1.2.0-py3-none-any.whl (46.3 kB view details)

Uploaded Python 3

File details

Details for the file llm_neofetch_plus-1.2.0.tar.gz.

File metadata

  • Download URL: llm_neofetch_plus-1.2.0.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for llm_neofetch_plus-1.2.0.tar.gz
Algorithm Hash digest
SHA256 003b4adfb0972b4631c10c054117f3e0401c6572e8ef58085a2b35a1f9db56ea
MD5 bde8a726126df8add6288761e0d21ef1
BLAKE2b-256 4250a1861f802dfc85bb2bbc927a4e485e49d1f5d9f89f6cad2b2bec36552a4c

See more details on using hashes here.

File details

Details for the file llm_neofetch_plus-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for llm_neofetch_plus-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aa2359dbf80f529a6e2b147d685587f6489cd4f9b5055bc07927f6921b41eebc
MD5 e4bede0c8b1d46f4757b24cc5379da8e
BLAKE2b-256 9fc562d985ae1f34afa91de666e5b015b185dd8b31918caaa7a29a16c86a8f79

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page