NerdFetch: system information for a POSIX shell, with Nerd font glyphs
A POSIX *nix fetch script using Nerdfonts
At a glance
- What is it?
- NerdFetch is a single shell script that prints the usual system information with Nerd font icons instead of ASCII art, and it runs on anything with a POSIX.1-2001 shell, from Debian to macOS to a router running OpenWrt. It suits people who want a neofetch-style banner on terminals that can render glyphs, and it is deliberately a single file with no build step.
- Who is it for?
- NerdFetch is the right choice for a terminal that can render Nerd font glyphs and a user who wants a compact system banner without installing a Python or binary program, because the whole tool is one POSIX shell script that you can read before you run it.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 99 days ago.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What NerdFetch is: one script, one file, no build
NerdFetch is described as a POSIX.1-2001 *nix fetch script using Nerdfonts, and the subtitle in the README names the platforms it aims at: Linux of version 2.6 or later, macOS and OSX, Android, and the BSDs, among others.
The repository is three entries: a LICENSE file, the README, and the script itself named nerdfetch. There is no package structure, no build system, no dependency manifest and no compiled artefact. The feature list says it in three words: strong cross-OS compatibility, not bloated, and portable as a POSIX-1.2001 shell.
That constraint is what makes it different from the tools it resembles. A script that sticks to POSIX.1-2001 rather than bash can run under a Bourne shell, under dash, under the KornShell, under a BusyBox ash on a router, and under the shell that ships inside a Termux installation on Android. The cost is that none of the convenient extensions are available, so the script has to gather its information with portable tools and do its own text handling.
The licence is MIT, and the project is packaged for a wide range of distributions. The releases move in small increments: v8.5.5 on 2026-07-16, v8.5.4 on 2026-03-15 and v8.5.2 on 2026-02-07, with the last push to the repository on 2026-07-16 and the repository not archived.
There is also a packaging status badge pointing at Repology, which tracks how many distributions ship the package, and the project's home page is its AUR package entry.
Installing through the package managers
Because the script is packaged for most of the Linux world, the sensible install is through a package manager, and the README lists four.
On Arch Linux, through the AUR:
yay -S nerdfetch # -git
nerdfetchwith the note to replace yay with whatever AUR helper you use, and the trailing comment pointing out the git variant of the package.
On macOS, through Homebrew:
brew install nerdfetch
nerdfetchOn Nix:
nix-shell -p nerdfetch
nerdfetchOn Gentoo, through the GURU overlay, which has to be added first according to the Gentoo wiki, with the GURU overlay not needed on LiGurOS:
emerge nerdfetch
nerdfetchEach of these gives you a managed installation that your system's update mechanism knows about, which matters for a single-file program precisely because nobody would otherwise track it.
The README's table of contents in the repository links to the AUR package, the Homebrew formula, the Nix package search and the Gentoo overlay, so the packaging is maintained across ecosystems rather than being an accident of one distribution.
Manual install and the run-once mode
For a machine that is not one of those, the README gives a manual route that is worth reading carefully, because it downloads and executes a remote file.
sudo curl -fsSL https://raw.githubusercontent.com/ThatOneCalculator/NerdFetch/main/nerdfetch -o /usr/bin/nerdfetch
sudo chmod +x /usr/bin/nerdfetch
nerdfetchThe script is fetched over HTTPS from the repository's main branch and written to /usr/bin, then made executable. Note what that means: the file you run is whatever is on the main branch at the moment you fetch it, not a tagged release, and the flag -f makes curl fail rather than write a partial file, which is the sensible default here.
There is a second variant for Android, where Termux keeps its own prefix rather than /usr/bin:
curl -fsSL https://raw.githubusercontent.com/ThatOneCalculator/NerdFetch/main/nerdfetch -o /data/data/com.termux/files/usr/bin/nerdfetch
chmod a+x /data/data/com.termux/files/usr/bin/nerdfetch
nerdfetchThe permission flag is different, a+x rather than +x, and no sudo is used because the Termux prefix belongs to the user.
And there is a run-once mode, with the README warning in bold that this will not install the program:
curl -fsSL https://raw.githubusercontent.com/ThatOneCalculator/NerdFetch/main/nerdfetch | shThis is the pattern to be careful with. Piping a remote script into a shell executes it with your privileges and without leaving a file you can inspect, and here the content is whatever main happens to hold. It is convenient for a quick look at the output on a machine you do not want to modify, and it is the opposite of what you want for anything long-lived.
Font switching: Nerdfonts, Cozette, Phosphor and Emojis
The whole point of the tool is the glyphs, so the font handling is the feature that decides whether it looks right or looks like a row of boxes.
The README lists the dependencies as any Nerdfonts font, or Cozette, or Phosphor, and the font itself is a separate installation from the script. That separation is worth understanding: NerdFetch does not bundle or install a font, and a terminal whose font lacks the relevant codepoints will render the icons as replacement characters however good the script is.
Four options are documented. Nerdfonts is used by default. The -c flag switches to Cozette, the -p flag to Phosphor, and the -e flag to Emojis.
That is a smaller switch surface than most tools of this kind offer, and it is a deliberate narrowing: three icon sets, one of them the default, with the choice made by a single letter on the command line. Cozette and Phosphor are both notable for being narrow, deliberately constructed fonts rather than patched system fonts, which is why they are offered as alternatives to the general Nerdfonts distribution.
The README shows the result under each of them, which is the fastest way to know which to pick: the Nerdfonts screenshot, the Phosphor Bold screenshot and the Cozette screenshot sit side by side at the top of the document.
The compatibility matrix: which systems and which shells
The README is unusually thorough here, and the lists are the best evidence that the portability claim is real rather than aspirational.
The operating systems tested run to twenty-eight entries: Debian based Linux, Ubuntu based Linux, Arch based Linux, Gentoo based Linux, RedHat based Linux, OpenSUSE based Linux, Bedrock Linux, Alpine Linux, KISS Linux, Void Linux, Exherbo Linux, NixOS Linux, Solus Linux, yiffOS Linux, Slackware Linux, BirbOS Linux, CRUX Linux, Clear Linux, Tiny Core Linux, NuTyX Linux, macOS and Mac OSX, Android through Termux, FreeBSD, OpenBSD, NetBSD and OpenWrt.
The inclusion of Tiny Core, Bedrock, KISS and CRUX is the meaningful part, since those are small or unusual systems where a script with bash-only constructs would simply fail. OpenWrt and the BSDs are the other interesting group, since they are where BusyBox-style shells live.
The shells tested are: the Bourne Again SHell, bash; the Z Shell, zsh; the Almquist Shell, ash, and the Debian Almquist Shell, dash; the KornShell, ksh, and the MirBSD KornShell, mksh; the Oil Shell, osh; Yet Another Shell, yash; and the Bourne RUsty SHell, brush, from version 0.4.0.
There is one known issue, and the README lists it plainly: nsh is currently unsupported, with a link to the issue tracker. For a script whose entire premise is portability, an unsupported shell is reported rather than quietly ignored, which is the behaviour you want from a project like this.
Where NerdFetch is the wrong choice
The first wrong case is a terminal without a patched font. If the console renders the icons as empty boxes, the tool has failed at its only job, and no flag fixes that. The fix is a font, not a different script.
The second wrong case is anything that needs machine-readable values. This is a display script. It prints a banner, and while the underlying commands it runs are portable, the output format is designed to be read by a person, so parsing it for a monitoring system or a status bar is fragile.
The third wrong case is a machine you do not control and would rather not run remote code on. Both manual install paths fetch a script from the main branch, and the run-once path pipes it straight into a shell. In a locked-down environment, copying the single file across by hand and reading it first is the reasonable move, and because the repository is one file that is easy to do.
The fourth wrong case is Windows, which the dependency list rules out directly with anything but Windows.
The realistic alternative is neofetch or one of its many successors, including fastfetch, which cover more platforms and produce more machine-readable output, and the difference in approach is that NerdFetch stays a single POSIX shell script with no runtime, no package to install and no compile step, at the cost of the richer output those tools can produce. For a phone in Termux, a router, or a minimal distribution where installing a binary is unwelcome, that trade is worth making; for a workstation where you want a rich and constantly improving system summary, it is not.
Editorial conclusion
NerdFetch is the right choice for a terminal that can render Nerd font glyphs and a user who wants a compact system banner without installing a Python or binary program, because the whole tool is one POSIX shell script that you can read before you run it. It is the wrong choice on a console without a patched font, where the icons become unreadable boxes, and it is the wrong choice for anything that needs accurate or scriptable values, since it is a display script rather than a reporting tool. Verify first that your terminal font is a Nerdfont, Cozette or Phosphor, that your shell is one of the tested ones if you rely on the exotic ones, and that the manual curl install path writes to a location your system expects for executables.
Frequently asked questions
How do I install NerdFetch?
Through a package manager where one exists: yay -S nerdfetch on Arch, brew install nerdfetch on macOS, nix-shell -p nerdfetch on Nix, and emerge nerdfetch on Gentoo with the GURU overlay added. The README also gives a manual curl install into /usr/bin with chmod +x, a Termux variant that writes into the Termux prefix with chmod a+x, and a run-once mode that pipes the script into sh without installing it.
What does NerdFetch need to run?
The dependencies are any Nerdfonts font, or Cozette, or Phosphor, a POSIX.1-2001 or higher compliant shell, and anything but Windows. The font is a separate installation, since the script does not bundle one.
How do I switch the icon font in NerdFetch?
Nerdfonts is used by default, -c selects Cozette, -p selects Phosphor and -e selects Emojis.
Which shells and systems have been tested?
The shells tested are bash, zsh, ash and dash, ksh and mksh, osh, yash and brush from version 0.4.0, with nsh currently unsupported. The tested systems range from mainstream distributions to Bedrock, KISS, Tiny Core, Clear and CRUX Linux, plus macOS, Android through Termux, FreeBSD, OpenBSD, NetBSD and OpenWrt.
Can I run NerdFetch without installing it?
Yes. The README gives a run-once command that pipes the fetched script into sh, and it notes in bold that this will not install the program.
Under what licence is NerdFetch released?
MIT, with the licence file in the repository root, which holds only a LICENSE file, the README and the script itself. The latest release is v8.5.5, published on 2026-07-16.
Official sources
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.
[](https://hysenlabs.com/projects/thatonecalculator-nerdfetch)Was this useful?