knowledge/technology/applications/development/onefetch.md
JMARyA 9639ae7add
All checks were successful
ci/woodpecker/push/validate_schema Pipeline was successful
add onefetch
2025-04-25 14:17:09 +02:00

9.1 KiB

obj repo rev
application https://github.com/o2sh/onefetch 2025-02-07

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]

Option Description
-d, --disabled-fields <FIELD>... Allows you to disable FIELD(s) from appearing in the output
--no-title Hides 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-merges Ignores merge commits
-E, --email Show the email address of each author
--http-url Display repository URL as HTTP
--hide-token Hide token in repository URL
--include-hidden Count 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-time Use ISO 8601 formatted timestamps
--number-separator <SEPARATOR> Which thousands SEPARATOR to use [default: plain] [possible values: plain, comma, space, underscore]
--no-bold Turns 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-palette Hides the color palette
--no-art Hides the ascii art or image if provided
--nerd-fonts Use 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, --languages Prints out supported languages
-p, --package-managers Prints out supported package managers