onefetch
A command-line Git information tool that displays a summary of a repository directly in the terminal — language breakdown, contributors, license, and more.
onefetch is a command-line tool that displays detailed information about a Git
repository directly in the terminal. Think of it as neofetch but for your
projects — it shows the dominant programming languages, contributor stats,
recent commits, license, repository size, and more, formatted alongside an ASCII
logo for the primary language.
Features
- Language detection — identifies the dominant programming languages in the repository, shown as a colour-coded bar chart
- Contributor stats — lists the top contributors with commit counts
- Repository metadata — shows the project name, description, current branch, HEAD commit, last change date, license, and remote URL
- ASCII art logos — displays a language-specific ASCII art logo (over 100 languages supported) alongside the stats
- Image support — optionally renders the project's logo as an actual image in terminals that support the Kitty, iTerm2, or Sixel protocols
- Configurable output — choose which fields to show or hide, customise colours, and change the text layout
- Fast — written in Rust; analyses even large repositories in milliseconds
Installation
cargo install onefetch
Or via your system package manager:
# Debian / Ubuntu
apt install onefetch
# Fedora
dnf install onefetch
# macOS
brew install onefetch
# Arch Linux
pacman -S onefetch
# Nix
nix-env -iA nixpkgs.onefetchUsage
# Run in the current repository
onefetch
# Run on a specific repository
onefetch /path/to/repo
# Hide specific fields
onefetch --disabled-fields contributors licenses
# Show only specific fields
onefetch --fields languages head commits
# Change the number of languages shown (default 6)
onefetch --languages-count 10
# Change the number of top contributors shown
onefetch --number-of-authors 5
# Show a specific image in place of ASCII art (requires image-capable terminal)
onefetch --image assets/logo.png
# Output as JSON (useful for scripting)
onefetch --output json
# Exclude specific languages from the breakdown
onefetch --exclude-language JSON MarkdownExample Output
Running onefetch in a Rust project produces output like:
Project: my-rust-app
██████████████████████ Description: A fast CLI utility
██████████████████████ Version: 1.2.0
██████████████████████ Rust: rustc 1.82.0
██████████████████████████████ HEAD: abc1234 — feat: add subcommand
██████████████████████████████ Pending: 2 untracked files
██████████████████████ Branches: 3
██████████████████████ Commits: 142
██████████████████████ Last change: 1 hour ago
Repo size: 12.3 MiB
● Rust 94.2% License: MIT
● TOML 3.1% URL: github.com/you/my-rust-app
● Shell 2.7%Configuration
onefetch can be configured via command-line flags or environment variables.
For persistent preferences, wrap it in a shell alias:
# In ~/.zshrc or ~/.bashrc
alias onefetch='onefetch --number-of-authors 3 --languages-count 5'Tips
- Run
onefetchas part of yourcdhook alongsidestarshiporzoxideto get an at-a-glance repo summary whenever you enter a project directory - The
--output jsonflag makes it easy to pull repo metadata into scripts or dashboards - Combine with
siliconto generate a stylised screenshot of a project summary for READMEs or social posts