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 pathlogo_url- Logo data source URLdownload_default_logo- Whether to automatically download the default Logoload_customLogo_unsafe- Whether to allow loading custom Logos in Python format
🔧 Custom Logo Guide
Security Recommendations
- Prefer JSON format - Safer, no code execution needed.
- Use Python format with caution - Only use from trusted sources.
- Do not modify the default logo.py - The tool updates it automatically; manual modifications may be overwritten.
Creating a Custom Logo
-
Create a Logo file in JSON or .py format
-
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 handlingstv_utils>=0.0.8- Utility functions and color outputpsutil- 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
- Author: StarWindv
- Email: starwindv.stv@gmail.com
- Project Homepage: https://github.com/StarWindv/windfetch
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
859fe70feabeca13946bcf6780b309a9eab797f18c3b9b9ab2f7f9edd69e803f
|
|
| MD5 |
2fa28df74771cae5538ee632fecb13c8
|
|
| BLAKE2b-256 |
74ece5818b73a134bbbc8ca519209341bf2887a242c07da84366af9439be6fa0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e740233d0e4760c981beccb228e13fb1f319d369c689186f1fd6030c3482799e
|
|
| MD5 |
3eef81a088ab03cf91a12e9d23d6e74d
|
|
| BLAKE2b-256 |
cab6d9209046b8e15a7e1034b7adfbffce19f97f5f34e531d09bc3feba680b6b
|