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
Metadata
Release files for windfetch 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| windfetch-0.0.2.tar.gz | 10.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| windfetch-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.5 kB
Release files / windfetch-0.0.2.tar.gz
| Download URL | windfetch-0.0.2.tar.gz |
|---|---|
| Size | 10.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
859fe70feabeca13946bcf6780b309a9eab797f18c3b9b9ab2f7f9edd69e803f
|
|
BLAKE2b-256 checksum How to use checksums |
74ece5818b73a134bbbc8ca519209341bf2887a242c07da84366af9439be6fa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.6
|
Release files / windfetch-0.0.2-py3-none-any.whl
| Download URL | windfetch-0.0.2-py3-none-any.whl |
|---|---|
| Size | 9.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e740233d0e4760c981beccb228e13fb1f319d369c689186f1fd6030c3482799e
|
|
BLAKE2b-256 checksum How to use checksums |
cab6d9209046b8e15a7e1034b7adfbffce19f97f5f34e531d09bc3feba680b6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.6
|