Skip to main content

An elegant Python system information tool, inspired by `neofetch`

Project description

WindFetch 🌀

中文

An elegant Python system information tool, inspired by neofetch.

✨ Features

🎯 Core Features

  • System Information Display - Comprehensive hardware and software system information.
  • Automatic Logo Matching - Automatically displays the corresponding ASCII Logo based on the system name and aligns the output format.
  • Colorful Output - Beautiful terminal color support.
  • Smart Detection - Automatically detects desktop environment, theme, icons, etc.
  • Highly Customizable - Supports custom logos and configurations.

🎨 Logo System

Default Logo Examples

The project has built-in links providing ASCII Logos for several common systems:

  • Red Hat - Classic Red Hat Logo
  • Ubuntu - Iconic Ubuntu Logo
  • Windows - Colorful Windows Logo (Logo support only, system detection not yet supported)
  • Debian - Debian Swirl Logo
  • CentOS - CentOS Geometric Logo
  • Arch Linux - Iconic Arch Logo
  • Android - Android Robot Logo

Custom Logos

You can create custom logos for any system:

Method 1: JSON Format (Recommended)

{
    "mysystem": "Your ASCII Art Text",
    "ubuntu": "\u001b[38;5;123mCustom Ubuntu Logo\u001b[0m"
}

Method 2: Python Format (Requires enabling unsafe loading)

logo = {
    "mysystem": "Colorful ASCII Art"
}

⚙️ Configuration Management

  • Online Logo download and update
  • Custom Logo support
  • Safe loading control
  • Flexible configuration management

🚀 Quick Start

Installation

pip install windfetch

Basic Usage

windfetch

📋 Displayed Information

WindFetch displays the following system information:

Category Information Content
User Info Username@Hostname
System Info OS, Kernel Version, Uptime
Software Info Package Count, Shell, Terminal
Desktop Env. DE, Theme, Icon Theme
Hardware Info CPU, GPU, Memory Usage, etc.

⚠️ Platform Support Note

Currently only supports Linux systems

  • ✅ Full support for common Linux distributions
  • ❌ Windows system detection not yet adapted
  • ❌ macOS system detection not yet adapted

On unsupported platforms, some system information may display as "Unknown".

⚙️ Configuration

Configuration File Location

~/.windfetch/config.json

Default Configuration

{
    "logo_path": "~/.windfetch/logo.py",
    "custom_logo_path": null,
    "logo_url": "https://windfetch.starwindv.top/api/logo",
    "download_default_logo": true,
    "overwrite_default_logo": true,
    "load_customLogo_unsafe": false,
    "need_update_logo": false
}

Configuration Explanation

  • logo_path - Default Logo file path (not recommended to modify manually)
  • custom_logo_path - Custom Logo file path
  • logo_url - Logo data source URL
  • download_default_logo - Whether to automatically download the default Logo
  • load_customLogo_unsafe - Whether to allow loading custom Logos in Python format

🔧 Custom Logo Guide

Security Recommendations

  1. Prefer JSON format - Safer, no code execution needed.
  2. Use Python format with caution - Only use from trusted sources.
  3. Do not modify the default logo.py - The tool updates it automatically; manual modifications may be overwritten.

Creating a Custom Logo

  1. Create a Logo file in JSON or .py format

  2. Update the configuration file

{
    "custom_logo_path": "/path/to/your/logo.json",
    "load_customLogo_unsafe": true
}

Note: Regardless of whether a .py format custom logo is used, load_customLogo_unsafe must be true to load it correctly.

🛠️ Development

Project Structure

.
├── ExampleLogos/
│   ├── logo.json
│   └── logo.py
├── pyproject.toml
└── src/
    └── windfetch/
        ├── __init__.py
        ├── loader.py
        └── windfetch.py

Dependencies

  • requests - HTTP request handling
  • stv_utils>=0.0.8 - Utility functions and color output
  • psutil - System information retrieval

Security Reminder

  • When enabling load_customLogo_unsafe, ensure the custom Logo file comes from a trusted source.
  • Periodically check if the default Logo file has been modified unexpectedly.

📄 License

This project is licensed under the MIT License.

🤝 Contributing

Issues and Pull Requests are welcome!

📞 Contact

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

windfetch-0.0.2.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

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

windfetch-0.0.2-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file windfetch-0.0.2.tar.gz.

File metadata

  • Download URL: windfetch-0.0.2.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.6

File hashes

Hashes for windfetch-0.0.2.tar.gz
Algorithm Hash digest
SHA256 859fe70feabeca13946bcf6780b309a9eab797f18c3b9b9ab2f7f9edd69e803f
MD5 2fa28df74771cae5538ee632fecb13c8
BLAKE2b-256 74ece5818b73a134bbbc8ca519209341bf2887a242c07da84366af9439be6fa0

See more details on using hashes here.

File details

Details for the file windfetch-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: windfetch-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.6

File hashes

Hashes for windfetch-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e740233d0e4760c981beccb228e13fb1f319d369c689186f1fd6030c3482799e
MD5 3eef81a088ab03cf91a12e9d23d6e74d
BLAKE2b-256 cab6d9209046b8e15a7e1034b7adfbffce19f97f5f34e531d09bc3feba680b6b

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