A neofetch-style CLI tool for GitHub statistics. Display your GitHub profile and stats in a beautiful, colorful terminal interface.
- Neofetch-style display with ASCII art
- Comprehensive GitHub statistics
- Smart SQLite-based caching system for faster subsequent runs
- Persistent configuration with default username support
- Uses GitHub CLI (gh) for authentication - no rate limits!
- Cross-platform support (macOS and Linux)
- First-run initialization with interactive setup
GitHub CLI (gh) must be installed and authenticated:
brew install gh
gh auth loginSee installation instructions at: https://github.com/cli/cli#installation
Then authenticate:
gh auth logingh auth statusYou should see: ✓ Logged in to github.com as YOUR_USERNAME
- Clone this repo
cdinto the repo- Then type the below command
pip install -e .On first run, gitfetch will initialize and ask you to configure your default GitHub username:
gitfetchThis creates:
~/.config/gitfetch/gitfetch.conf- Configuration file~/.config/gitfetch/cache.db- SQLite cache database
Use default username (from config):
gitfetchFetch stats for specific user:
gitfetch usernameBypass cache and fetch fresh data:
gitfetch username --no-cacheClear cache:
gitfetch --clear-cachegh auth loginFollow the prompts to authenticate with GitHub.
Install GitHub CLI:
- macOS:
brew install gh - Linux: See https://github.com/cli/cli#installation
gh auth statusgitfetch/
├── src/
│ └── gitfetch/
│ ├── __init__.py # Package initialization
│ ├── cli.py # Command-line interface
│ ├── fetcher.py # GitHub API data fetching
│ ├── display.py # Display formatting
│ ├── cache.py # SQLite cache management
│ └── config.py # Configuration management
├── tests/
│ ├── test_fetcher.py # Fetcher unit tests
│ ├── test_cache.py # Cache unit tests
│ └── test_config.py # Config unit tests
├── pyproject.toml # Project configuration
└── README.md # This file
Configuration file location: ~/.config/gitfetch/gitfetch.conf
Example configuration:
[DEFAULT]
username = yourusername
cache_expiry_hours = 6Cache database location: ~/.config/gitfetch/cache.db
Using the GitHub CLI (gh) instead of direct API calls provides several benefits:
- ✅ No rate limits - Uses your authenticated GitHub account
- ✅ Automatic authentication - No need to manage tokens
- ✅ Better security - Credentials managed by gh CLI
- ✅ Simpler setup - Just run
gh auth login
- Inspired by the beautiful contribution graph design from Kusa by Ryu0118.
- Inspired by the very cool and extremely fun tool songfetch by fwtwoo.
GPL-2.0