onefetch

A command-line Git information tool that displays a summary of a repository directly in the terminal — language breakdown, contributors, license, and more.

Screenshot of onefetch

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.onefetch

Usage

# 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 Markdown

Example 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 onefetch as part of your cd hook alongside starship or zoxide to get an at-a-glance repo summary whenever you enter a project directory
  • The --output json flag makes it easy to pull repo metadata into scripts or dashboards
  • Combine with silicon to generate a stylised screenshot of a project summary for READMEs or social posts