explaingit

o2sh/onefetch

11,782RustAudience · developerComplexity · 1/5Setup · easy

TLDR

Onefetch is a command-line tool that prints a summary of any local Git repository in your terminal, showing programming language breakdown and project statistics, all offline with no external services.

Mindmap

mindmap
  root((onefetch))
    What It Does
      Git repo summary
      Language statistics
      Terminal display
    Data Sources
      Local repo files
      Git history
      No internet needed
    Output Options
      Terminal colored view
      JSON export
      YAML export
    Installation
      Homebrew on Mac
      winget on Windows
      APT on Ubuntu
    Audience
      Developers
      Open source explorers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Get an instant language breakdown and project overview of any Git repo immediately after cloning it.

USE CASE 2

Add onefetch to shell startup scripts so entering a project directory automatically shows its stats.

USE CASE 3

Export repository statistics as JSON or YAML to feed into a project dashboard or automated reporting pipeline.

USE CASE 4

Explore an unfamiliar open-source codebase at a glance before spending time reading its documentation.

Tech stack

Rust

Getting it running

Difficulty · easy Time to first run · 5min

In plain English

Onefetch is a command-line tool that shows a summary of a Git repository directly in your terminal. Point it at any local repo and it prints information about the project alongside statistics about the code, such as which programming languages are used and other details it can gather from the Git history. The tool runs entirely offline. It does not call any external services or require an internet connection. Everything it shows comes from the repository files and Git data already on your machine. The README describes a focus on speed and the ability to customize what gets displayed. Installation is handled through standard package managers. On a Mac you can use brew, on Windows you can use winget, and on Linux there are options for Ubuntu, Arch, and openSUSE depending on which distribution you run. You can also download a binary directly from the releases page if none of those package managers fit your setup. Using it is straightforward: either navigate to a repository directory and type onefetch, or pass the path to the repository as an argument. The output can be adjusted through command-line flags that let you change text styling, skip certain information lines, exclude specific files or directories, or export the data as JSON or YAML instead of the default terminal view. Onefetch recognizes more than 100 programming languages. If a language is missing, the project accepts contributions. It is written in Rust and available on Linux, macOS, and Windows.

Copy-paste prompts

Prompt 1
I just cloned a large monorepo. Show me the onefetch command to get a language breakdown and exclude the vendor and node_modules directories.
Prompt 2
How do I export onefetch output as JSON so I can pipe it into a shell script that updates a project README with live stats?
Prompt 3
Walk me through installing onefetch on Ubuntu using the package manager option, then running it on a local Python project.
Prompt 4
I want onefetch to run automatically when I cd into any Git repo. Show me the shell function to add to my .zshrc.
Prompt 5
Onefetch doesn't recognize the language in my project. How do I check if it's in the supported list and what file extension it expects?
Open on GitHub → Explain another repo

← o2sh on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.