Open-source project
ad-oliviero/uwufetch avatar
ad-oliviero/uwufetch

UwUfetch prints your system info in a Linux master race font

A meme system info tool for Linux, based on nyan/uwu trend on r/linuxmasterrace.

823 stars51 forksCGPL-3.0

At a glance

What is it?
UwUfetch is a C program that gathers the same kind of system summary as the usual fetch tools and prints it in a uwu themed style, with a distro specific ASCII art or image layer, a shared library other programs can link against, and a build system that already knows about Android, macOS and the BSDs.
Who is it for?
UwUfetch suits someone who wants the familiar system summary in a joke format for a screenshot or a forum post, and it suits a C developer who wants the same gathering code as a linkable library rather than a shell out.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly C, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The same system summary, printed differently

UwUfetch is described as a meme system info tool for almost all Linux and Unix based systems, based on the nyan and uwu trend on r/linuxmasterrace. The substance underneath the joke is a familiar one: gather the hardware and OS details a user would want to show off, and print them as a list. The repository layout shows how little code it is. At the top level there are uwufetch.c and fetch.c, a fetch.h header, a Makefile, a default.config, a man page source, a res/ directory for assets and a release_scripts/ directory. So the binary and the reusable library are separate files, fetch.c being the collection code and uwufetch.c the presentation layer. The audience is someone who wants a screenshot that looks like the linuxmasterrace posts rather than the output of a standard system information tool.

Per distribution art is the part that defines the project

The supported distribution list is the substance of the tool, because the whole idea is that the output looks like your distribution rather than a generic ASCII logo. Full support, meaning both ASCII art and images are provided, covers AmogOwOS, Nyalpine, Nyarch Linuwu, ArcOwO, Nyartix Linuwu, Debinyan, endevaOwO, Fedowa, GentOwO, GnUwU gUwUix, Miwint, Myanjawo, OwOpenSUSE, Pop OwOs, RaspNyan, Swackwawe, sOwOlus, UwUntu and OwOid, plus Nyandroid. Partial support, where either the ASCII art or the image is missing, covers Dewepyn, FemboyOWOS, KDE NeOwOn, nixOwOs, xuwulinux and Wocky Linuwu, plus FweeBSD, OwOpenBSD, macOwOS and iOwOS, plus WinyandOwOws. A partial entry is a partial feature, and the naming is a joke that obscures which real distribution each one maps to, so anyone wanting to know whether their own system is fully covered has to check the list entry by entry.

Building is a clone and three make commands

The build requirements are modest, a C compiler and make, plus an iOS patched SDK if you are building under an iOS device.

shell
git clone https://github.com/TheDarkBug/uwufetch.git
cd uwufetch
make build # add "CFLAGS+=-D__IPHONE__" if you are building for iOS
sudo make install

The Makefile exposes the individual steps, and the list is short enough to read as the build guide.

shell
make build              # builds uwufetch and libfetch
make lib                # builds only libfetch
make debug              # use for debug
make install            # installs uwufetch (needs root permissons)
make clean              # removes all build output
make man                # compiles man page

Note that the clone URL in the README points at TheDarkBug/uwufetch rather than the repository this file describes. The binary name and the library name also differ, with the target named uwufetch and the library libfetch. The Makefile is where the portability work lives, with per platform branches that set the prefix, library, include, etc and man directories, and that add the right defines: D__FREEBSD__ and D__BSD__ for FreeBSD, D__OPENBSD__ and D__BSD__ for OpenBSD, a MinGW cross compiler with D_WIN32 for a Windows target named linux4win, and a PKGPATH define plus a Termux style destination directory when uname reports Android.

libfetch is a static library other C programs can call

The library is the more serious half of the project. It is compiled with the same instructions as the binary, and the README gives a minimal program that includes fetch.h and prints one field.

c
#include <fetch.h>
#include <stdio.h>

int main() {
    printf("%s\n", get_info().cpu_model);
}

You then link against it, and the example shows the result.

bash
$ gcc superfetch.c -lfetch -o superfetch
$ ./superfetch

Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz

So the gathering logic is a separate compilation unit, libfetch, and the meme presentation is a consumer of it. For a developer who wants the hardware detection without the ASCII art, that separation is the useful part, and it means the optional dependencies that improve accuracy, lshw for better GPU information, are a property of the library rather than of the presentation. The Makefile builds both from the same source tree, and there is a dedicated make lib target for the case where you only want the library.

Optional dependencies decide how accurate the output is

The README lists the requisites and they divide into required and optional in a way that maps directly onto output quality. freecolor is needed to get RAM usage on FreeBSD, musl libc is needed on a non-gnu system such as Alpine Linux, and xwininfo is needed to get the screen resolution. The optional ones change what you see rather than whether it runs. viu lets you use images instead of ASCII art, and the README explains the catch: viu supports the kitty and iTerm image protocols, and where the terminal does not support them viu falls back to a Unicode half-block mode in which the images look blocky, which is the case in many terminal emulators such as gnome-terminal and Konsole. lshw, when present, gives better accuracy on GPU information. Images are also currently disabled under iOS, because there is no one command in the code to do it.

The project was archived, then un-archived, and the maintainer says why

The project status section at the top of the README is unusual and worth reading before you judge the maintenance story. The repository was archived on 23 April 2024, with details in issue 257, and as of 27 November 2025 it was un-archived. The Why section gives the personal reason: the author felt sad leaving the project unfinished, as it is the one that taught them the most. The commitment section is the honest part, saying the author is currently busy with university and cannot guarantee being fully active, may not be able to spend much time on it, and there may be periods when they are unavailable, while asking people not to be afraid to contribute because the author will eventually reply, just not as fast as before. New work is directed at the development branch, and pull requests targeting other branches will not be accepted. The last push was on 2026-10-20 and the newest tag is 2.1 from 2023-02-13, so the gap between the release line and the working tree is the thing to keep in mind.

Where the joke stops being a joke

Two limits are obvious. The first is that the output format is the point, and the point is decorative. Nothing in the README describes a plain, machine readable mode, so a script that wanted to parse CPU model or memory size has nothing stable to parse, and a team with a monitoring or inventory need wants a conventional tool rather than this. The second is the distribution coverage, which is the feature and the limitation at once. A user on a distribution that is not in the list, or on a listed one that is only partially supported, gets less than the experience the project is selling, and the naming convention makes it hard to tell at a glance which distributions those are. A smaller thing worth knowing is the config file: the README explains that if a machine has no OEM information filled in, the model line shows a placeholder, and that you can suppress that line by editing .config/uwufetch/config and adding host=false. That tells you the configuration surface is a flat key=value file rather than a documented options set, which is a fair description of a tool built for fun.

Editorial conclusion

UwUfetch suits someone who wants the familiar system summary in a joke format for a screenshot or a forum post, and it suits a C developer who wants the same gathering code as a linkable library rather than a shell out. It is the wrong tool for a script that needs to parse machine readable output, since nothing in the project suggests a non decorative output mode, and it is the wrong choice for a serious system report where a conventional fetch utility would be more appropriate. Before building it, check the supported distribution list, because full support with both ASCII art and images covers a specific set and everything else is partial. The last push was on 2026-10-20, and the newest tagged release is 2.1 from 2023-02-13.

Frequently asked questions

How do I build and install UwUfetch from source?

Clone the repository, change into the uwufetch directory, run make build and then sudo make install. The build needs a C compiler and make, and the iOS build needs a patched SDK with the CFLAGS+=-D__IPHONE__ flag added to the build command.

What does the libfetch library in UwUfetch do?

libfetch is the system information gathering code separated from the meme presentation, built with make lib and linked with -lfetch. The README shows a small C program that includes fetch.h and prints get_info().cpu_model.

Which distributions have full UwUfetch support?

Full support, with both ASCII art and images, covers a specific list including AmogOwOS, Nyalpine, Nyarch Linuwu, ArcOwO, Debinyan, Fedowa, GentOwO, Miwint, OwOpenSUSE, Pop OwOs, RaspNyan, UwUntu and Nyandroid. Several others are listed as partial support, where either the ASCII art or the image is missing.

How do I show images instead of ASCII art in UwUfetch?

Install viu, which supports the kitty and iTerm image protocols and falls back to a Unicode half-block mode in terminals that do not, where the images look blocky. Images are currently disabled under iOS because there is no one command in the code to do it.

Official sources

  1. ad-oliviero/uwufetch on GitHub
  2. Issues
  3. License: GPL-3.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ad-oliviero-uwufetch.svg)](https://hysenlabs.com/projects/ad-oliviero-uwufetch)

Was this useful?