ghfetch es una herramienta CLI inspirada en Neofetch y Fastfetch que muestra tu perfil de GitHub junto con informacion del sistema, todo con una estetica retro-terminal en tema Gruvbox.
Muestra tu avatar en ASCII, estadisticas del sistema, y un grafico de contribuciones real — todo en una sola pantalla responsive.
░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 👻 OS ·············· Arch Linux
░░▒▒▓▓▓▓▓▓▓▒▒░░░░░░░░░░░░░░░ 👻 Kernel ········· 6.12.10-arch1-1
░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░░░░░░░░ 👻 CPU ············ AMD Ryzen 5 3600
░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░░ 👻 RAM ············ 8.2 GiB / 16 GiB
░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░ 👻 Disk ··········· 120 GiB / 445 GiB
░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░ 👻 Shell ·········· zsh
░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░░░░░░ 👻 Terminal ······· kitty
░░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░░░░░░░ 👻 Res ············ 1920x1080
░░░░░░░░░▒▒▓▓▓▒▒▒░░░░░░░░░░░░ 👻 Uptime ········· 3h 42m
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 👻 Arch ··········· x86_64
73 contribuciones Menos █ █ █ █ Mas
░░░░░░░░░░░░░░░▒░░░░░░░░░▒░░░░▓▓░░
░░░░░░░░░░░░░▒░░░░░░░░░▒▓░░░░░▓▓░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▓▓░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░▒░
fetched in 110ms
- Avatar en ASCII multiplataforma — Descarga tu foto de GitHub y la convierte en arte ASCII con soporte para:
- True Color (24-bit) — Calidad maxima en terminales modernas (kitty, alacritty, wezterm)
- 256 colores — Buena calidad en terminales compatibles
- 16 colores — Compatibilidad maxima
- ASCII puro — Funciona en cualquier terminal, incluso sin soporte de color
- Deteccion automatica — Se adapta a las capacidades de tu terminal
- Deteccion automatica — Lee tu usuario desde
git config github.userogh auth status - Info del sistema mejorada — SO (con deteccion de distribucion Linux), kernel, CPU, GPU, RAM, disco, paquetes, shell, terminal, DE, WM, resolucion, uptime, arquitectura
- Informacion del perfil de GitHub — Bio, ubicacion, empresa, blog, Twitter, seguidores, siguiendo, repos, gists, fecha de creacion
- Top repositorios — Muestra tus 5 repositorios mas populares con estrellas y lenguaje
- Grafico de contribuciones — Calendario ASCII del ano actual con datos reales de GitHub
- Layout responsive — Avatar a la izquierda, info y contribuciones apiladas a la derecha
- Tema Gruvbox Dark — Paleta de colores cohesiva con iconos fantasma por categoria
- Rapido — ~100ms cacheado, ~800ms primera ejecucion
- Multiplataforma — Linux, macOS, Windows
- Configurable — Archivo TOML con todas las opciones
git clone https://github.com/hustavojhon/ghfetch.git
cd ghfetch
bash install.shEl instalador detecta tu usuario de GitHub automaticamente, te pide un token (opcional) y configura todo.
git clone https://github.com/hustavojhon/ghfetch.git
cd ghfetch
cargo build --release
cp target/release/ghfetch ~/.local/bin/- Rust 1.95+
- Git (para deteccion automatica de usuario)
ghfetch # Tu perfil (detectado automaticamente)
ghfetch -u torvalds # Perfil de otro usuario
ghfetch -w 50 # Avatar mas grande
ghfetch --no-avatar # Solo info del sistema
ghfetch --no-contributions # Ocultar grafico
ghfetch --no-profile # Ocultar info del perfil
ghfetch --no-repos # Ocultar top repos
ghfetch --nerd-font-icons # Iconos Nerd Font en vez de emojis
ghfetch --ascii-avatar # Forzar avatar ASCII puro
ghfetch --color-256 # Forzar modo 256 colores
ghfetch --truecolor # Forzar modo true color| Flag | Corta | Descripcion |
|---|---|---|
--username |
-u |
Usuario de GitHub (auto-detectado si no se especifica) |
--config |
-c |
Ruta al archivo de configuracion |
--no-avatar |
Oculta el avatar ASCII | |
--no-system |
Oculta info del sistema | |
--no-contributions |
Oculta grafico de contribuciones | |
--no-profile |
Oculta informacion del perfil de GitHub | |
--no-repos |
Oculta top repositorios | |
--avatar-width |
-w |
Ancho del avatar en caracteres |
--nerd-font-icons |
Usa glifos Nerd Font | |
--ascii-avatar |
Fuerza avatar ASCII puro (funciona en cualquier terminal) | |
--color-256 |
Fuerza modo 256 colores | |
--truecolor |
Fuerza modo true color (24-bit) |
ghfetch intenta detectar tu usuario de GitHub en este orden:
- Flag
-u(maxima prioridad) - Variable de entorno
GHFETCH_USERNAME git config --global github.usergh auth status(GitHub CLI)- Archivo de configuracion
~/.config/ghfetch/config.toml
Si nada funciona, ghfetch te pide que configures uno.
Para guardar tu usuario permanentemente:
git config --global github.user TU_USUARIOArchivo ~/.config/ghfetch/config.toml:
username = ""
[display]
show_avatar = true
show_system_info = true
show_contributions = true
show_profile_info = false
show_top_repos = true
nerd_font_icons = false
max_contrib_weeks = 53
# Modo de renderizado del avatar: "auto", "truecolor", "256", "16", "ascii"
# auto: detecta automaticamente las capacidades de la terminal
# truecolor: 24-bit RGB (mejor calidad)
# 256: paleta de 256 colores (buena compatibilidad)
# 16: 16 colores basicos (maxima compatibilidad)
# ascii: caracteres ASCII (funciona en cualquier terminal)
avatar_mode = "auto"
[profile]
# Controla que informacion del perfil mostrar (cuando show_profile_info = true)
show_bio = true
show_location = true
show_company = true
show_blog = true
show_twitter = true
show_created_at = true
show_followers = true
show_following = true
show_public_repos = true
show_public_gists = true
show_hireable = true
[cache]
avatar_ttl_hours = 24
profile_ttl_hours = 1
contributions_ttl_hours = 2
cache_dir = ".cache/ghfetch"
[icons]
ghost = "👻"
[icons.overrides]
# os = ""
# cpu = ""
# ram = ""| Variable | Proposito |
|---|---|
GITHUB_TOKEN |
Token de acceso personal (5000 req/h) |
GHFETCH_USERNAME |
Usuario por defecto |
GHFETCH_CONFIG |
Ruta al archivo de configuracion |
COLORTERM |
Deteccion de soporte true color |
TERM |
Deteccion de capacidades de terminal |
ghfetch detecta automaticamente las capacidades de tu terminal y ajusta el renderizado del avatar:
| Terminal | Modo | Calidad |
|---|---|---|
| kitty, alacritty, wezterm | True Color (24-bit) | Excelente |
| iTerm2, Terminal.app (macOS) | True Color (24-bit) | Excelente |
| Windows Terminal | True Color (24-bit) | Excelente |
| xterm-256color | 256 colores | Buena |
| Terminales basicas | 16 colores | Aceptable |
| Sin soporte de color | ASCII puro | Funcional |
Puedes forzar un modo especifico con las flags --ascii-avatar, --color-256, o --truecolor.
src/
├── main.rs # Punto de entrada, CLI, orquestacion
├── theme.rs # Paleta Gruvbox, utilidades ANSI, iconos
├── config.rs # Carga de archivo TOML, defaults
├── cache.rs # Cache en disco con TTL por clave
├── terminal.rs # Deteccion de capacidades de terminal
├── system.rs # Informacion del sistema multiplataforma
├── github.rs # Cliente REST + GraphQL para GitHub
├── avatar.rs # Descarga, resize y conversion a ASCII (multi-modo)
├── greetings.rs # Saludo dinamico (desactivado por defecto)
├── contributions.rs # Renderizado del grafico de contribuciones
└── renderer.rs # Motor de layout responsive
| Crate | Uso |
|---|---|
clap |
Parseo de argumentos CLI |
toml + serde |
Archivos de configuracion |
ureq |
Cliente HTTP para API de GitHub |
image |
Procesamiento de avatar |
sysinfo |
Informacion del sistema |
chrono |
Fechas y horas |
terminal_size |
Deteccion de tamano de terminal |
dirs |
Directorios XDG |
- Primera ejecucion: ~800ms (descarga avatar + API)
- Ejecucion cacheada: ~110ms
- Binario: ~3.6 MB
Estrategia de cache:
- Avatar: 24h
- Perfil: 1h
- Contribuciones: 2h
- Directorio:
~/.cache/ghfetch/
- Temas adicionales (Nord, Catppuccin, Tokyo Night)
- Modo
--watchcon actualizacion en vivo - Salida JSON para scripting
- Soporte de imagenes inline (iTerm2/Kitty)
- Paquetes para AUR, Homebrew, Scoop
- Estadisticas de lenguajes desde GitHub
- Deteccion de distribuciones Linux
- Soporte multi-modo para avatar (truecolor, 256, 16, ASCII)
- Hace un fork
- Crea una rama (
git checkout -b feature/nueva-cosa) - Hace tus cambios
- Ejecuta
cargo buildycargo clippy - Envia un pull request
MIT © Gustavo Jhon