onefetch

Onefetch is a command-line Git information tool written in Rust that displays project information and code statistics for a local Git repository directly to your terminal. The tool is completely offline - no network access is required.

By default, the repo’s information is displayed alongside the dominant language’s logo, but you can further configure onefetch to instead use an image - on supported terminals -, a text input or nothing at all.

It automatically detects open source licenses from texts and provides the user with valuable information like code distribution, pending changes, number of dependencies (by package manager), top contributors (by number of commits), size on disk, creation date, LOC (lines of code), etc.

Onefetch can be configured via command-line flags to display exactly what you want, the way you want it to: you can customize ASCII/Text formatting, disable info lines, ignore files & directories, output in multiple formats, etc.

Usage

Usage: onefetch [OPTIONS] [INPUT]

OptionDescription
-d, --disabled-fields <FIELD>...Allows you to disable FIELD(s) from appearing in the output
--no-titleHides the title
--number-of-authors <NUM>Maximum NUM of authors to be shown [default: 3]
--number-of-languages <NUM>Maximum NUM of languages to be shown [default: 6]
--number-of-file-churns <NUM>Maximum NUM of file churns to be shown [default: 3]
--churn-pool-size <NUM>Minimum NUM of commits from HEAD used to compute the churn summary. By default, the value is non-deterministic due to time-based computation and will be displayed under the info title “Churn (NUM)“
-e, --exclude <EXCLUDE>...Ignore all files & directories matching EXCLUDE
--no-bots[=<REGEX>]Exclude bot commits. Use <REGEX> to override the default pattern
--no-mergesIgnores merge commits
-E, --emailShow the email address of each author
--http-urlDisplay repository URL as HTTP
--hide-tokenHide token in repository URL
--include-hiddenCount hidden files and directories
-T, --type <TYPE>...Filters output by language type [default: programming markup] [possible values: programming, markup, prose, data]
-t, --text-colors <X>...Changes the text colors (X X X…). Goes in order of title, ~, underline, subtitle, colon, and info
-z, --iso-timeUse ISO 8601 formatted timestamps
--number-separator <SEPARATOR>Which thousands SEPARATOR to use [default: plain] [possible values: plain, comma, space, underscore]
--no-boldTurns off bold formatting
--ascii-input <STRING>Takes a non-empty STRING as input to replace the ASCII logo
-c, --ascii-colors <X>...Colors (X X X…) to print the ascii art
-a, --ascii-language <LANGUAGE>Which LANGUAGE’s ascii art to print
--true-color <WHEN>Specify when to use true color [default: auto] [possible values: auto, never, always]
-i, --image <IMAGE>Path to the IMAGE file
--image-protocol <PROTOCOL>Which image PROTOCOL to use [possible values: kitty, sixel, iterm]
--color-resolution <VALUE>VALUE of color resolution to use with SIXEL backend [default: 16] [possible values: 16, 32, 64, 128, 256]
--no-color-paletteHides the color palette
--no-artHides the ascii art or image if provided
--nerd-fontsUse Nerd Font icons. Replaces language chips with Nerd Font icons
-o, --output <FORMAT>Outputs Onefetch in a specific format [possible values: json, yaml]
--generate <SHELL>If provided, outputs the completion file for given SHELL [possible values: bash, elvish, fish, powershell, zsh]
-l, --languagesPrints out supported languages
-p, --package-managersPrints out supported package managers